| ... | @@ -2408,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2408,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2408 | } | 2408 | } |
| 2409 | | 2409 | |
| 2410 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | 2410 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2411 | @setEvalBranchQuota(20_000); | 2411 | @setEvalBranchQuota(20_200); |
| 2412 | const pt = cg.pt; | 2412 | const pt = cg.pt; |
| 2413 | const zcu = pt.zcu; | 2413 | const zcu = pt.zcu; |
| 2414 | const ip = &zcu.intern_pool; | 2414 | const ip = &zcu.intern_pool; |
| ... | @@ -2444,9 +2444,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2444,9 +2444,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2444 | try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); | 2444 | try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); |
| 2445 | switch (air_tags[@intFromEnum(inst)]) { | 2445 | switch (air_tags[@intFromEnum(inst)]) { |
| 2446 | // zig fmt: off | 2446 | // zig fmt: off |
| 2447 | .bitcast => try cg.airBitCast(inst), | | |
| 2448 | | | |
| 2449 | .splat => try cg.airSplat(inst), | | |
| 2450 | .select => try cg.airSelect(inst), | 2447 | .select => try cg.airSelect(inst), |
| 2451 | .shuffle => try cg.airShuffle(inst), | 2448 | .shuffle => try cg.airShuffle(inst), |
| 2452 | .reduce => try cg.airReduce(inst), | 2449 | .reduce => try cg.airReduce(inst), |
| ... | @@ -14818,6 +14815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14818,6 +14815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14818 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ | 14815 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ |
| 14819 | .src_constraints = .{ .{ .exact_int = 1 }, .{ .exact_int = 1 }, .any }, | 14816 | .src_constraints = .{ .{ .exact_int = 1 }, .{ .exact_int = 1 }, .any }, |
| 14820 | .patterns = &.{ | 14817 | .patterns = &.{ |
| | 14818 | .{ .src = .{ .mut_mem, .{ .imm = 0 }, .none } }, |
| 14821 | .{ .src = .{ .to_mut_gpr, .{ .imm = 0 }, .none } }, | 14819 | .{ .src = .{ .to_mut_gpr, .{ .imm = 0 }, .none } }, |
| 14822 | }, | 14820 | }, |
| 14823 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 14821 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| ... | @@ -58735,6 +58733,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58735,6 +58733,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58735 | }, .{ | 58733 | }, .{ |
| 58736 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, | 58734 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 58737 | .patterns = &.{ | 58735 | .patterns = &.{ |
| | 58736 | .{ .src = .{ .mut_mem, .none, .none } }, |
| 58738 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | 58737 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 58739 | }, | 58738 | }, |
| 58740 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 58739 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| ... | @@ -63194,7 +63193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -63194,7 +63193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 63194 | } }, | 63193 | } }, |
| 63195 | }, .{ | 63194 | }, .{ |
| 63196 | .required_features = .{ .sse, null, null, null }, | 63195 | .required_features = .{ .sse, null, null, null }, |
| 63197 | .src_constraints = .{ .{ .vec = .xword }, .any, .any }, | 63196 | .src_constraints = .{ .{ .unsigned_int_vec = .xword }, .any, .any }, |
| 63198 | .patterns = &.{ | 63197 | .patterns = &.{ |
| 63199 | .{ .src = .{ .to_mut_xmm, .none, .none } }, | 63198 | .{ .src = .{ .to_mut_xmm, .none, .none } }, |
| 63200 | }, | 63199 | }, |
| ... | @@ -63348,14 +63347,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -63348,14 +63347,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 63348 | } }) catch |err| switch (err) { | 63347 | } }) catch |err| switch (err) { |
| 63349 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ | 63348 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 63350 | @tagName(air_tag), | 63349 | @tagName(air_tag), |
| 63351 | cg.typeOf(ty_op.operand).fmt(pt), | 63350 | ty_op.ty.toType().fmt(pt), |
| 63352 | ops[0].tracking(cg), | 63351 | ops[0].tracking(cg), |
| 63353 | }), | 63352 | }), |
| 63354 | else => |e| return e, | 63353 | else => |e| return e, |
| 63355 | }; | 63354 | }; |
| 63356 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | 63355 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 63357 | }, | 63356 | }, |
| 63358 | | 63357 | .bitcast => try cg.airBitCast(inst), |
| 63359 | .block => { | 63358 | .block => { |
| 63360 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | 63359 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 63361 | const extra = cg.air.extraData(Air.Block, ty_pl.payload); | 63360 | const extra = cg.air.extraData(Air.Block, ty_pl.payload); |
| ... | @@ -71582,7077 +71581,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -71582,7077 +71581,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 71582 | }; | 71581 | }; |
| 71583 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | 71582 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 71584 | }, | 71583 | }, |
| 71585 | | 71584 | .sqrt => |air_tag| if (use_old) try cg.airSqrt(inst) else { |
| 71586 | .cmp_vector, .cmp_vector_optimized => |air_tag| if (use_old) try cg.airCmpVector(inst) else fallback: { | 71585 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 71587 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | 71586 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 71588 | const extra = cg.air.extraData(Air.VectorCmp, ty_pl.payload).data; | | |
| 71589 | switch (extra.compareOperator()) { | | |
| 71590 | .eq, .neq => {}, | | |
| 71591 | .lt, .lte, .gte, .gt => if (cg.floatBits(cg.typeOf(extra.lhs).childType(zcu)) == null) | | |
| 71592 | break :fallback try cg.airCmpVector(inst), | | |
| 71593 | } | | |
| 71594 | var ops = try cg.tempsFromOperands(inst, .{ extra.lhs, extra.rhs }); | | |
| 71595 | var res: [1]Temp = undefined; | | |
| 71596 | (err: switch (extra.compareOperator()) { | | |
| 71597 | .lt, .lte, .gte, .gt => |cmp_op| { | | |
| 71598 | switch (cmp_op) { | | |
| 71599 | else => unreachable, | | |
| 71600 | .lt, .lte => {}, | | |
| 71601 | .gt, .gte => std.mem.swap(Temp, &ops[0], &ops[1]), | | |
| 71602 | } | | |
| 71603 | break :err cg.select(&res, &.{ty_pl.ty.toType()}, &ops, switch (@as(Condition, switch (cmp_op) { | | |
| 71604 | else => unreachable, | | |
| 71605 | .lt, .gt => .l, | | |
| 71606 | .lte, .gte => .le, | | |
| 71607 | })) { | | |
| 71608 | else => unreachable, | | |
| 71609 | inline .l, .le => |cc| comptime &.{ .{ | | |
| 71610 | .required_features = .{ .f16c, null, null, null }, | | |
| 71611 | .src_constraints = .{ | | |
| 71612 | .{ .scalar_float = .{ .of = .word, .is = .word } }, | | |
| 71613 | .{ .scalar_float = .{ .of = .word, .is = .word } }, | | |
| 71614 | .any, | | |
| 71615 | }, | | |
| 71616 | .patterns = &.{ | | |
| 71617 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 71618 | }, | | |
| 71619 | .extra_temps = .{ | | |
| 71620 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, | | |
| 71621 | .unused, | | |
| 71622 | .unused, | | |
| 71623 | .unused, | | |
| 71624 | .unused, | | |
| 71625 | .unused, | | |
| 71626 | .unused, | | |
| 71627 | .unused, | | |
| 71628 | .unused, | | |
| 71629 | .unused, | | |
| 71630 | .unused, | | |
| 71631 | }, | | |
| 71632 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71633 | .ref = .src0, | | |
| 71634 | .rc = .sse, | | |
| 71635 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71636 | } }, .unused }, | | |
| 71637 | .each = .{ .once = &.{ | | |
| 71638 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | | |
| 71639 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, | | |
| 71640 | .{ ._, .v_ss, .cmp, .dst0x, .dst0x, .tmp0d, .vp(switch (cc) { | | |
| 71641 | else => unreachable, | | |
| 71642 | .l => .lt, | | |
| 71643 | .le => .le, | | |
| 71644 | }) }, | | |
| 71645 | } }, | | |
| 71646 | }, .{ | | |
| 71647 | .required_features = .{ .f16c, null, null, null }, | | |
| 71648 | .src_constraints = .{ | | |
| 71649 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, | | |
| 71650 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, | | |
| 71651 | .any, | | |
| 71652 | }, | | |
| 71653 | .patterns = &.{ | | |
| 71654 | .{ .src = .{ .mem, .mem, .none } }, | | |
| 71655 | .{ .src = .{ .sse, .mem, .none } }, | | |
| 71656 | .{ .src = .{ .mem, .sse, .none } }, | | |
| 71657 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 71658 | }, | | |
| 71659 | .extra_temps = .{ | | |
| 71660 | .{ .kind = .{ .rc = .sse } }, | | |
| 71661 | .unused, | | |
| 71662 | .unused, | | |
| 71663 | .unused, | | |
| 71664 | .unused, | | |
| 71665 | .unused, | | |
| 71666 | .unused, | | |
| 71667 | .unused, | | |
| 71668 | .unused, | | |
| 71669 | .unused, | | |
| 71670 | .unused, | | |
| 71671 | }, | | |
| 71672 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71673 | .ref = .src0, | | |
| 71674 | .rc = .sse, | | |
| 71675 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71676 | } }, .unused }, | | |
| 71677 | .each = .{ .once = &.{ | | |
| 71678 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | | |
| 71679 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, | | |
| 71680 | .{ ._, .v_ps, .cmp, .dst0x, .dst0x, .tmp0x, .vp(switch (cc) { | | |
| 71681 | else => unreachable, | | |
| 71682 | .l => .lt, | | |
| 71683 | .le => .le, | | |
| 71684 | }) }, | | |
| 71685 | } }, | | |
| 71686 | }, .{ | | |
| 71687 | .required_features = .{ .f16c, null, null, null }, | | |
| 71688 | .src_constraints = .{ | | |
| 71689 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 71690 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 71691 | .any, | | |
| 71692 | }, | | |
| 71693 | .patterns = &.{ | | |
| 71694 | .{ .src = .{ .mem, .mem, .none } }, | | |
| 71695 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 71696 | .{ .src = .{ .mem, .to_sse, .none } }, | | |
| 71697 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 71698 | }, | | |
| 71699 | .extra_temps = .{ | | |
| 71700 | .{ .kind = .{ .rc = .sse } }, | | |
| 71701 | .unused, | | |
| 71702 | .unused, | | |
| 71703 | .unused, | | |
| 71704 | .unused, | | |
| 71705 | .unused, | | |
| 71706 | .unused, | | |
| 71707 | .unused, | | |
| 71708 | .unused, | | |
| 71709 | .unused, | | |
| 71710 | .unused, | | |
| 71711 | }, | | |
| 71712 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71713 | .ref = .src0, | | |
| 71714 | .rc = .sse, | | |
| 71715 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71716 | } }, .unused }, | | |
| 71717 | .each = .{ .once = &.{ | | |
| 71718 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, | | |
| 71719 | .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, | | |
| 71720 | .{ ._, .v_ps, .cmp, .dst0y, .dst0y, .tmp0y, .vp(switch (cc) { | | |
| 71721 | else => unreachable, | | |
| 71722 | .l => .lt, | | |
| 71723 | .le => .le, | | |
| 71724 | }) }, | | |
| 71725 | } }, | | |
| 71726 | }, .{ | | |
| 71727 | .required_features = .{ .avx, null, null, null }, | | |
| 71728 | .src_constraints = .{ | | |
| 71729 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 71730 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 71731 | .any, | | |
| 71732 | }, | | |
| 71733 | .patterns = &.{ | | |
| 71734 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 71735 | }, | | |
| 71736 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71737 | .ref = .src0, | | |
| 71738 | .rc = .sse, | | |
| 71739 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71740 | } }, .unused }, | | |
| 71741 | .each = .{ .once = &.{ | | |
| 71742 | .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { | | |
| 71743 | else => unreachable, | | |
| 71744 | .l => .gt, | | |
| 71745 | .le => .ge, | | |
| 71746 | }) }, | | |
| 71747 | } }, | | |
| 71748 | }, .{ | | |
| 71749 | .required_features = .{ .avx, null, null, null }, | | |
| 71750 | .src_constraints = .{ | | |
| 71751 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 71752 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 71753 | .any, | | |
| 71754 | }, | | |
| 71755 | .patterns = &.{ | | |
| 71756 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 71757 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 71758 | }, | | |
| 71759 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71760 | .ref = .src0, | | |
| 71761 | .rc = .sse, | | |
| 71762 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71763 | } }, .unused }, | | |
| 71764 | .each = .{ .once = &.{ | | |
| 71765 | .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { | | |
| 71766 | else => unreachable, | | |
| 71767 | .l => .lt, | | |
| 71768 | .le => .le, | | |
| 71769 | }) }, | | |
| 71770 | } }, | | |
| 71771 | }, .{ | | |
| 71772 | .required_features = .{ .sse, null, null, null }, | | |
| 71773 | .src_constraints = .{ | | |
| 71774 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 71775 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 71776 | .any, | | |
| 71777 | }, | | |
| 71778 | .patterns = &.{ | | |
| 71779 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 71780 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 71781 | }, | | |
| 71782 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 71783 | .ref = .src0, | | |
| 71784 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71785 | } }, .unused }, | | |
| 71786 | .each = .{ .once = &.{ | | |
| 71787 | .{ ._, ._ss, .cmp, .dst0x, .src1d, .sp(switch (cc) { | | |
| 71788 | else => unreachable, | | |
| 71789 | .l => .lt, | | |
| 71790 | .le => .le, | | |
| 71791 | }), ._ }, | | |
| 71792 | } }, | | |
| 71793 | }, .{ | | |
| 71794 | .required_features = .{ .avx, null, null, null }, | | |
| 71795 | .src_constraints = .{ | | |
| 71796 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 71797 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 71798 | .any, | | |
| 71799 | }, | | |
| 71800 | .patterns = &.{ | | |
| 71801 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 71802 | }, | | |
| 71803 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71804 | .ref = .src0, | | |
| 71805 | .rc = .sse, | | |
| 71806 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71807 | } }, .unused }, | | |
| 71808 | .each = .{ .once = &.{ | | |
| 71809 | .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { | | |
| 71810 | else => unreachable, | | |
| 71811 | .l => .gt, | | |
| 71812 | .le => .ge, | | |
| 71813 | }) }, | | |
| 71814 | } }, | | |
| 71815 | }, .{ | | |
| 71816 | .required_features = .{ .avx, null, null, null }, | | |
| 71817 | .src_constraints = .{ | | |
| 71818 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 71819 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 71820 | .any, | | |
| 71821 | }, | | |
| 71822 | .patterns = &.{ | | |
| 71823 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 71824 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 71825 | }, | | |
| 71826 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71827 | .ref = .src0, | | |
| 71828 | .rc = .sse, | | |
| 71829 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71830 | } }, .unused }, | | |
| 71831 | .each = .{ .once = &.{ | | |
| 71832 | .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { | | |
| 71833 | else => unreachable, | | |
| 71834 | .l => .lt, | | |
| 71835 | .le => .le, | | |
| 71836 | }) }, | | |
| 71837 | } }, | | |
| 71838 | }, .{ | | |
| 71839 | .required_features = .{ .sse, null, null, null }, | | |
| 71840 | .src_constraints = .{ | | |
| 71841 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 71842 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 71843 | .any, | | |
| 71844 | }, | | |
| 71845 | .patterns = &.{ | | |
| 71846 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 71847 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 71848 | }, | | |
| 71849 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 71850 | .ref = .src0, | | |
| 71851 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71852 | } }, .unused }, | | |
| 71853 | .each = .{ .once = &.{ | | |
| 71854 | .{ ._, ._ps, .cmp, .dst0x, .src1x, .sp(switch (cc) { | | |
| 71855 | else => unreachable, | | |
| 71856 | .l => .lt, | | |
| 71857 | .le => .le, | | |
| 71858 | }), ._ }, | | |
| 71859 | } }, | | |
| 71860 | }, .{ | | |
| 71861 | .required_features = .{ .avx, null, null, null }, | | |
| 71862 | .src_constraints = .{ | | |
| 71863 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 71864 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 71865 | .any, | | |
| 71866 | }, | | |
| 71867 | .patterns = &.{ | | |
| 71868 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 71869 | }, | | |
| 71870 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71871 | .ref = .src0, | | |
| 71872 | .rc = .sse, | | |
| 71873 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71874 | } }, .unused }, | | |
| 71875 | .each = .{ .once = &.{ | | |
| 71876 | .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { | | |
| 71877 | else => unreachable, | | |
| 71878 | .l => .gt, | | |
| 71879 | .le => .ge, | | |
| 71880 | }) }, | | |
| 71881 | } }, | | |
| 71882 | }, .{ | | |
| 71883 | .required_features = .{ .avx, null, null, null }, | | |
| 71884 | .src_constraints = .{ | | |
| 71885 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 71886 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 71887 | .any, | | |
| 71888 | }, | | |
| 71889 | .patterns = &.{ | | |
| 71890 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 71891 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 71892 | }, | | |
| 71893 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71894 | .ref = .src0, | | |
| 71895 | .rc = .sse, | | |
| 71896 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 71897 | } }, .unused }, | | |
| 71898 | .each = .{ .once = &.{ | | |
| 71899 | .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { | | |
| 71900 | else => unreachable, | | |
| 71901 | .l => .lt, | | |
| 71902 | .le => .le, | | |
| 71903 | }) }, | | |
| 71904 | } }, | | |
| 71905 | }, .{ | | |
| 71906 | .required_features = .{ .avx, null, null, null }, | | |
| 71907 | .src_constraints = .{ | | |
| 71908 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 71909 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 71910 | .any, | | |
| 71911 | }, | | |
| 71912 | .patterns = &.{ | | |
| 71913 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 71914 | }, | | |
| 71915 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71916 | .ref = .src0, | | |
| 71917 | .rc = .sse, | | |
| 71918 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 71919 | } }, .unused }, | | |
| 71920 | .each = .{ .once = &.{ | | |
| 71921 | .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { | | |
| 71922 | else => unreachable, | | |
| 71923 | .l => .gt, | | |
| 71924 | .le => .ge, | | |
| 71925 | }) }, | | |
| 71926 | } }, | | |
| 71927 | }, .{ | | |
| 71928 | .required_features = .{ .avx, null, null, null }, | | |
| 71929 | .src_constraints = .{ | | |
| 71930 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 71931 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 71932 | .any, | | |
| 71933 | }, | | |
| 71934 | .patterns = &.{ | | |
| 71935 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 71936 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 71937 | }, | | |
| 71938 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71939 | .ref = .src0, | | |
| 71940 | .rc = .sse, | | |
| 71941 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 71942 | } }, .unused }, | | |
| 71943 | .each = .{ .once = &.{ | | |
| 71944 | .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { | | |
| 71945 | else => unreachable, | | |
| 71946 | .l => .lt, | | |
| 71947 | .le => .le, | | |
| 71948 | }) }, | | |
| 71949 | } }, | | |
| 71950 | }, .{ | | |
| 71951 | .required_features = .{ .sse2, null, null, null }, | | |
| 71952 | .src_constraints = .{ | | |
| 71953 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 71954 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 71955 | .any, | | |
| 71956 | }, | | |
| 71957 | .patterns = &.{ | | |
| 71958 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 71959 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 71960 | }, | | |
| 71961 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 71962 | .ref = .src0, | | |
| 71963 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 71964 | } }, .unused }, | | |
| 71965 | .each = .{ .once = &.{ | | |
| 71966 | .{ ._, ._sd, .cmp, .dst0x, .src1q, .sp(switch (cc) { | | |
| 71967 | else => unreachable, | | |
| 71968 | .l => .lt, | | |
| 71969 | .le => .le, | | |
| 71970 | }), ._ }, | | |
| 71971 | } }, | | |
| 71972 | }, .{ | | |
| 71973 | .required_features = .{ .avx, null, null, null }, | | |
| 71974 | .src_constraints = .{ | | |
| 71975 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 71976 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 71977 | .any, | | |
| 71978 | }, | | |
| 71979 | .patterns = &.{ | | |
| 71980 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 71981 | }, | | |
| 71982 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 71983 | .ref = .src0, | | |
| 71984 | .rc = .sse, | | |
| 71985 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 71986 | } }, .unused }, | | |
| 71987 | .each = .{ .once = &.{ | | |
| 71988 | .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { | | |
| 71989 | else => unreachable, | | |
| 71990 | .l => .gt, | | |
| 71991 | .le => .ge, | | |
| 71992 | }) }, | | |
| 71993 | } }, | | |
| 71994 | }, .{ | | |
| 71995 | .required_features = .{ .avx, null, null, null }, | | |
| 71996 | .src_constraints = .{ | | |
| 71997 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 71998 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 71999 | .any, | | |
| 72000 | }, | | |
| 72001 | .patterns = &.{ | | |
| 72002 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 72003 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 72004 | }, | | |
| 72005 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 72006 | .ref = .src0, | | |
| 72007 | .rc = .sse, | | |
| 72008 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 72009 | } }, .unused }, | | |
| 72010 | .each = .{ .once = &.{ | | |
| 72011 | .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { | | |
| 72012 | else => unreachable, | | |
| 72013 | .l => .lt, | | |
| 72014 | .le => .le, | | |
| 72015 | }) }, | | |
| 72016 | } }, | | |
| 72017 | }, .{ | | |
| 72018 | .required_features = .{ .sse2, null, null, null }, | | |
| 72019 | .src_constraints = .{ | | |
| 72020 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 72021 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 72022 | .any, | | |
| 72023 | }, | | |
| 72024 | .patterns = &.{ | | |
| 72025 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 72026 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 72027 | }, | | |
| 72028 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 72029 | .ref = .src0, | | |
| 72030 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 72031 | } }, .unused }, | | |
| 72032 | .each = .{ .once = &.{ | | |
| 72033 | .{ ._, ._pd, .cmp, .dst0x, .src1x, .sp(switch (cc) { | | |
| 72034 | else => unreachable, | | |
| 72035 | .l => .lt, | | |
| 72036 | .le => .le, | | |
| 72037 | }), ._ }, | | |
| 72038 | } }, | | |
| 72039 | }, .{ | | |
| 72040 | .required_features = .{ .avx, null, null, null }, | | |
| 72041 | .src_constraints = .{ | | |
| 72042 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 72043 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 72044 | .any, | | |
| 72045 | }, | | |
| 72046 | .patterns = &.{ | | |
| 72047 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 72048 | }, | | |
| 72049 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 72050 | .ref = .src0, | | |
| 72051 | .rc = .sse, | | |
| 72052 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 72053 | } }, .unused }, | | |
| 72054 | .each = .{ .once = &.{ | | |
| 72055 | .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { | | |
| 72056 | else => unreachable, | | |
| 72057 | .l => .gt, | | |
| 72058 | .le => .ge, | | |
| 72059 | }) }, | | |
| 72060 | } }, | | |
| 72061 | }, .{ | | |
| 72062 | .required_features = .{ .avx, null, null, null }, | | |
| 72063 | .src_constraints = .{ | | |
| 72064 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 72065 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 72066 | .any, | | |
| 72067 | }, | | |
| 72068 | .patterns = &.{ | | |
| 72069 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 72070 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 72071 | }, | | |
| 72072 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 72073 | .ref = .src0, | | |
| 72074 | .rc = .sse, | | |
| 72075 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 72076 | } }, .unused }, | | |
| 72077 | .each = .{ .once = &.{ | | |
| 72078 | .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { | | |
| 72079 | else => unreachable, | | |
| 72080 | .l => .lt, | | |
| 72081 | .le => .le, | | |
| 72082 | }) }, | | |
| 72083 | } }, | | |
| 72084 | }, .{ | | |
| 72085 | .required_features = .{ .f16c, .slow_incdec, null, null }, | | |
| 72086 | .src_constraints = .{ | | |
| 72087 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 72088 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 72089 | .any, | | |
| 72090 | }, | | |
| 72091 | .patterns = &.{ | | |
| 72092 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72093 | }, | | |
| 72094 | .extra_temps = .{ | | |
| 72095 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 72096 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 72097 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 72098 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 72099 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72100 | .unused, | | |
| 72101 | .unused, | | |
| 72102 | .unused, | | |
| 72103 | .unused, | | |
| 72104 | .unused, | | |
| 72105 | .unused, | | |
| 72106 | }, | | |
| 72107 | .dst_temps = .{ .mem, .unused }, | | |
| 72108 | .clobbers = .{ .eflags = true }, | | |
| 72109 | .each = .{ .once = &.{ | | |
| 72110 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 72111 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 72112 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 72113 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 72114 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { | | |
| 72115 | else => unreachable, | | |
| 72116 | .l => .lt, | | |
| 72117 | .le => .le, | | |
| 72118 | }) }, | | |
| 72119 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 72120 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 72121 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 72122 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 72123 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 72124 | } }, | | |
| 72125 | }, .{ | | |
| 72126 | .required_features = .{ .f16c, null, null, null }, | | |
| 72127 | .src_constraints = .{ | | |
| 72128 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 72129 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 72130 | .any, | | |
| 72131 | }, | | |
| 72132 | .patterns = &.{ | | |
| 72133 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72134 | }, | | |
| 72135 | .extra_temps = .{ | | |
| 72136 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 72137 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 72138 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 72139 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 72140 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72141 | .unused, | | |
| 72142 | .unused, | | |
| 72143 | .unused, | | |
| 72144 | .unused, | | |
| 72145 | .unused, | | |
| 72146 | .unused, | | |
| 72147 | }, | | |
| 72148 | .dst_temps = .{ .mem, .unused }, | | |
| 72149 | .clobbers = .{ .eflags = true }, | | |
| 72150 | .each = .{ .once = &.{ | | |
| 72151 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 72152 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 72153 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 72154 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 72155 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { | | |
| 72156 | else => unreachable, | | |
| 72157 | .l => .lt, | | |
| 72158 | .le => .le, | | |
| 72159 | }) }, | | |
| 72160 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 72161 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 72162 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | | |
| 72163 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 72164 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 72165 | } }, | | |
| 72166 | }, .{ | | |
| 72167 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 72168 | .src_constraints = .{ | | |
| 72169 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72170 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72171 | .any, | | |
| 72172 | }, | | |
| 72173 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 72174 | .patterns = &.{ | | |
| 72175 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72176 | }, | | |
| 72177 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72178 | .extra_temps = .{ | | |
| 72179 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72180 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72181 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72182 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72183 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72184 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72185 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 72186 | .unused, | | |
| 72187 | .unused, | | |
| 72188 | .unused, | | |
| 72189 | .unused, | | |
| 72190 | }, | | |
| 72191 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 72192 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72193 | .each = .{ .once = &.{ | | |
| 72194 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 72195 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72196 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, | | |
| 72197 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 72198 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 72199 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 72200 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 72201 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 72202 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 72203 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72204 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 72205 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 72206 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, | | |
| 72207 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72208 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72209 | } }, | | |
| 72210 | }, .{ | | |
| 72211 | .required_features = .{ .avx, null, null, null }, | | |
| 72212 | .src_constraints = .{ | | |
| 72213 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72214 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72215 | .any, | | |
| 72216 | }, | | |
| 72217 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 72218 | .patterns = &.{ | | |
| 72219 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72220 | }, | | |
| 72221 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72222 | .extra_temps = .{ | | |
| 72223 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72224 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72225 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72226 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72227 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72228 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72229 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 72230 | .unused, | | |
| 72231 | .unused, | | |
| 72232 | .unused, | | |
| 72233 | .unused, | | |
| 72234 | }, | | |
| 72235 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 72236 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72237 | .each = .{ .once = &.{ | | |
| 72238 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 72239 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72240 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, | | |
| 72241 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 72242 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 72243 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 72244 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 72245 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 72246 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 72247 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72248 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 72249 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 72250 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 72251 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72252 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72253 | } }, | | |
| 72254 | }, .{ | | |
| 72255 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 72256 | .src_constraints = .{ | | |
| 72257 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72258 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72259 | .any, | | |
| 72260 | }, | | |
| 72261 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 72262 | .patterns = &.{ | | |
| 72263 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72264 | }, | | |
| 72265 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72266 | .extra_temps = .{ | | |
| 72267 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72268 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72269 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72270 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72271 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72272 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72273 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 72274 | .unused, | | |
| 72275 | .unused, | | |
| 72276 | .unused, | | |
| 72277 | .unused, | | |
| 72278 | }, | | |
| 72279 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 72280 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72281 | .each = .{ .once = &.{ | | |
| 72282 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 72283 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72284 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | | |
| 72285 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 72286 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72287 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72288 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 72289 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 72290 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 72291 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 72292 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72293 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 72294 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 72295 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, | | |
| 72296 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72297 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72298 | } }, | | |
| 72299 | }, .{ | | |
| 72300 | .required_features = .{ .sse2, null, null, null }, | | |
| 72301 | .src_constraints = .{ | | |
| 72302 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72303 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72304 | .any, | | |
| 72305 | }, | | |
| 72306 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 72307 | .patterns = &.{ | | |
| 72308 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72309 | }, | | |
| 72310 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72311 | .extra_temps = .{ | | |
| 72312 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72313 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72314 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72315 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72316 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72317 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72318 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 72319 | .unused, | | |
| 72320 | .unused, | | |
| 72321 | .unused, | | |
| 72322 | .unused, | | |
| 72323 | }, | | |
| 72324 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 72325 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72326 | .each = .{ .once = &.{ | | |
| 72327 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 72328 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72329 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | | |
| 72330 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 72331 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72332 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72333 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 72334 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 72335 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 72336 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 72337 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72338 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 72339 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 72340 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 72341 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72342 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72343 | } }, | | |
| 72344 | }, .{ | | |
| 72345 | .required_features = .{ .sse, .slow_incdec, null, null }, | | |
| 72346 | .src_constraints = .{ | | |
| 72347 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72348 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72349 | .any, | | |
| 72350 | }, | | |
| 72351 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 72352 | .patterns = &.{ | | |
| 72353 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72354 | }, | | |
| 72355 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72356 | .extra_temps = .{ | | |
| 72357 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72358 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72359 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72360 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72361 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72362 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72363 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 72364 | .{ .type = .f32, .kind = .mem }, | | |
| 72365 | .unused, | | |
| 72366 | .unused, | | |
| 72367 | .unused, | | |
| 72368 | }, | | |
| 72369 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 72370 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72371 | .each = .{ .once = &.{ | | |
| 72372 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 72373 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72374 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 72375 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 72376 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, | | |
| 72377 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 72378 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 72379 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, | | |
| 72380 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 72381 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 72382 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 72383 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 72384 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72385 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 72386 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 72387 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, | | |
| 72388 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72389 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72390 | } }, | | |
| 72391 | }, .{ | | |
| 72392 | .required_features = .{ .sse, null, null, null }, | | |
| 72393 | .src_constraints = .{ | | |
| 72394 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72395 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72396 | .any, | | |
| 72397 | }, | | |
| 72398 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 72399 | .patterns = &.{ | | |
| 72400 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72401 | }, | | |
| 72402 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72403 | .extra_temps = .{ | | |
| 72404 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72405 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72406 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72407 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72408 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72409 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72410 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 72411 | .{ .type = .f32, .kind = .mem }, | | |
| 72412 | .unused, | | |
| 72413 | .unused, | | |
| 72414 | .unused, | | |
| 72415 | }, | | |
| 72416 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 72417 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72418 | .each = .{ .once = &.{ | | |
| 72419 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 72420 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72421 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 72422 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 72423 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, | | |
| 72424 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 72425 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 72426 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, | | |
| 72427 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 72428 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 72429 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 72430 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 72431 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72432 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 72433 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 72434 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 72435 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72436 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72437 | } }, | | |
| 72438 | }, .{ | | |
| 72439 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, | | |
| 72440 | .src_constraints = .{ | | |
| 72441 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72442 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72443 | .any, | | |
| 72444 | }, | | |
| 72445 | .patterns = &.{ | | |
| 72446 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72447 | }, | | |
| 72448 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72449 | .extra_temps = .{ | | |
| 72450 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72451 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 72452 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72453 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72454 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72455 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72456 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72457 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 72458 | .unused, | | |
| 72459 | .unused, | | |
| 72460 | .unused, | | |
| 72461 | }, | | |
| 72462 | .dst_temps = .{ .mem, .unused }, | | |
| 72463 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72464 | .each = .{ .once = &.{ | | |
| 72465 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72466 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72467 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, | | |
| 72468 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 72469 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 72470 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 72471 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 72472 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 72473 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 72474 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 72475 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 72476 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 72477 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, | | |
| 72478 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72479 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 72480 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72481 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 72482 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 72483 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72484 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72485 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72486 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72487 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 72488 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 72489 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 72490 | } }, | | |
| 72491 | }, .{ | | |
| 72492 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 72493 | .src_constraints = .{ | | |
| 72494 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72495 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72496 | .any, | | |
| 72497 | }, | | |
| 72498 | .patterns = &.{ | | |
| 72499 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72500 | }, | | |
| 72501 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72502 | .extra_temps = .{ | | |
| 72503 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72504 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 72505 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72506 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72507 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72508 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72509 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72510 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 72511 | .unused, | | |
| 72512 | .unused, | | |
| 72513 | .unused, | | |
| 72514 | }, | | |
| 72515 | .dst_temps = .{ .mem, .unused }, | | |
| 72516 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72517 | .each = .{ .once = &.{ | | |
| 72518 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72519 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72520 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, | | |
| 72521 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 72522 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 72523 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 72524 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 72525 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 72526 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 72527 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 72528 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 72529 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 72530 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 72531 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72532 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 72533 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72534 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 72535 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 72536 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72537 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72538 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72539 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72540 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 72541 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 72542 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 72543 | } }, | | |
| 72544 | }, .{ | | |
| 72545 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, | | |
| 72546 | .src_constraints = .{ | | |
| 72547 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72548 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72549 | .any, | | |
| 72550 | }, | | |
| 72551 | .patterns = &.{ | | |
| 72552 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72553 | }, | | |
| 72554 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72555 | .extra_temps = .{ | | |
| 72556 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72557 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 72558 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72559 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72560 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72561 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72562 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72563 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 72564 | .unused, | | |
| 72565 | .unused, | | |
| 72566 | .unused, | | |
| 72567 | }, | | |
| 72568 | .dst_temps = .{ .mem, .unused }, | | |
| 72569 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72570 | .each = .{ .once = &.{ | | |
| 72571 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72572 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72573 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 72574 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72575 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, | | |
| 72576 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72577 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 72578 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 72579 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 72580 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 72581 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 72582 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 72583 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 72584 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, | | |
| 72585 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72586 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 72587 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72588 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 72589 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 72590 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72591 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72592 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72593 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72594 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 72595 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 72596 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 72597 | } }, | | |
| 72598 | }, .{ | | |
| 72599 | .required_features = .{ .@"64bit", .sse2, null, null }, | | |
| 72600 | .src_constraints = .{ | | |
| 72601 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72602 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72603 | .any, | | |
| 72604 | }, | | |
| 72605 | .patterns = &.{ | | |
| 72606 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72607 | }, | | |
| 72608 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72609 | .extra_temps = .{ | | |
| 72610 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72611 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 72612 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72613 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72614 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72615 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72616 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72617 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 72618 | .unused, | | |
| 72619 | .unused, | | |
| 72620 | .unused, | | |
| 72621 | }, | | |
| 72622 | .dst_temps = .{ .mem, .unused }, | | |
| 72623 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72624 | .each = .{ .once = &.{ | | |
| 72625 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72626 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72627 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 72628 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72629 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, | | |
| 72630 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 72631 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 72632 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 72633 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 72634 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 72635 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 72636 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 72637 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 72638 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 72639 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72640 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 72641 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72642 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 72643 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 72644 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72645 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72646 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72647 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72648 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 72649 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 72650 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 72651 | } }, | | |
| 72652 | }, .{ | | |
| 72653 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, | | |
| 72654 | .src_constraints = .{ | | |
| 72655 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72656 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72657 | .any, | | |
| 72658 | }, | | |
| 72659 | .patterns = &.{ | | |
| 72660 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72661 | }, | | |
| 72662 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72663 | .extra_temps = .{ | | |
| 72664 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72665 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 72666 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72667 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72668 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72669 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72670 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72671 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 72672 | .{ .type = .f32, .kind = .mem }, | | |
| 72673 | .unused, | | |
| 72674 | .unused, | | |
| 72675 | }, | | |
| 72676 | .dst_temps = .{ .mem, .unused }, | | |
| 72677 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72678 | .each = .{ .once = &.{ | | |
| 72679 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72680 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72681 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 72682 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 72683 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, | | |
| 72684 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 72685 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 72686 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, | | |
| 72687 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 72688 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 72689 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 72690 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 72691 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 72692 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 72693 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 72694 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, | | |
| 72695 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72696 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 72697 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72698 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 72699 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 72700 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72701 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72702 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72703 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72704 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 72705 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 72706 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 72707 | } }, | | |
| 72708 | }, .{ | | |
| 72709 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 72710 | .src_constraints = .{ | | |
| 72711 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72712 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 72713 | .any, | | |
| 72714 | }, | | |
| 72715 | .patterns = &.{ | | |
| 72716 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72717 | }, | | |
| 72718 | .call_frame = .{ .alignment = .@"16" }, | | |
| 72719 | .extra_temps = .{ | | |
| 72720 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 72721 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 72722 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 72723 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 72724 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 72725 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 72726 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 72727 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 72728 | .{ .type = .f32, .kind = .mem }, | | |
| 72729 | .unused, | | |
| 72730 | .unused, | | |
| 72731 | }, | | |
| 72732 | .dst_temps = .{ .mem, .unused }, | | |
| 72733 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 72734 | .each = .{ .once = &.{ | | |
| 72735 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 72736 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72737 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 72738 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 72739 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, | | |
| 72740 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 72741 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 72742 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, | | |
| 72743 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 72744 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 72745 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 72746 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 72747 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 72748 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 72749 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 72750 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 72751 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72752 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 72753 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 72754 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 72755 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 72756 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 72757 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 72758 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 72759 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 72760 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 72761 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 72762 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 72763 | } }, | | |
| 72764 | }, .{ | | |
| 72765 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 72766 | .src_constraints = .{ | | |
| 72767 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72768 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72769 | .any, | | |
| 72770 | }, | | |
| 72771 | .patterns = &.{ | | |
| 72772 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72773 | }, | | |
| 72774 | .extra_temps = .{ | | |
| 72775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 72776 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 72777 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 72778 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72779 | .unused, | | |
| 72780 | .unused, | | |
| 72781 | .unused, | | |
| 72782 | .unused, | | |
| 72783 | .unused, | | |
| 72784 | .unused, | | |
| 72785 | .unused, | | |
| 72786 | }, | | |
| 72787 | .dst_temps = .{ .mem, .unused }, | | |
| 72788 | .clobbers = .{ .eflags = true }, | | |
| 72789 | .each = .{ .once = &.{ | | |
| 72790 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 72791 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 72792 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 72793 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 72794 | else => unreachable, | | |
| 72795 | .l => .lt, | | |
| 72796 | .le => .le, | | |
| 72797 | }) }, | | |
| 72798 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, | | |
| 72799 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 72800 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 72801 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 72802 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 72803 | } }, | | |
| 72804 | }, .{ | | |
| 72805 | .required_features = .{ .avx, null, null, null }, | | |
| 72806 | .src_constraints = .{ | | |
| 72807 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72808 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72809 | .any, | | |
| 72810 | }, | | |
| 72811 | .patterns = &.{ | | |
| 72812 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72813 | }, | | |
| 72814 | .extra_temps = .{ | | |
| 72815 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 72816 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 72817 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 72818 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72819 | .unused, | | |
| 72820 | .unused, | | |
| 72821 | .unused, | | |
| 72822 | .unused, | | |
| 72823 | .unused, | | |
| 72824 | .unused, | | |
| 72825 | .unused, | | |
| 72826 | }, | | |
| 72827 | .dst_temps = .{ .mem, .unused }, | | |
| 72828 | .clobbers = .{ .eflags = true }, | | |
| 72829 | .each = .{ .once = &.{ | | |
| 72830 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 72831 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 72832 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 72833 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 72834 | else => unreachable, | | |
| 72835 | .l => .lt, | | |
| 72836 | .le => .le, | | |
| 72837 | }) }, | | |
| 72838 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, | | |
| 72839 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 72840 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, | | |
| 72841 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 72842 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 72843 | } }, | | |
| 72844 | }, .{ | | |
| 72845 | .required_features = .{ .sse2, null, null, null }, | | |
| 72846 | .src_constraints = .{ | | |
| 72847 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72848 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72849 | .any, | | |
| 72850 | }, | | |
| 72851 | .patterns = &.{ | | |
| 72852 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72853 | }, | | |
| 72854 | .extra_temps = .{ | | |
| 72855 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 72856 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 72857 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 72858 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 72859 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72860 | .unused, | | |
| 72861 | .unused, | | |
| 72862 | .unused, | | |
| 72863 | .unused, | | |
| 72864 | .unused, | | |
| 72865 | .unused, | | |
| 72866 | }, | | |
| 72867 | .dst_temps = .{ .mem, .unused }, | | |
| 72868 | .clobbers = .{ .eflags = true }, | | |
| 72869 | .each = .{ .once = &.{ | | |
| 72870 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 72871 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 72872 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 72873 | .{ ._, ._ps, .mova, .tmp3x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, | | |
| 72874 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 72875 | else => unreachable, | | |
| 72876 | .l => .lt, | | |
| 72877 | .le => .le, | | |
| 72878 | }), ._ }, | | |
| 72879 | .{ ._, ._ps, .cmp, .tmp3x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { | | |
| 72880 | else => unreachable, | | |
| 72881 | .l => .lt, | | |
| 72882 | .le => .le, | | |
| 72883 | }), ._ }, | | |
| 72884 | .{ ._, .p_w, .ackssd, .tmp2x, .tmp3x, ._, ._ }, | | |
| 72885 | .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ }, | | |
| 72886 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | | |
| 72887 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 72888 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 72889 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 72890 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 72891 | } }, | | |
| 72892 | }, .{ | | |
| 72893 | .required_features = .{ .sse, null, null, null }, | | |
| 72894 | .src_constraints = .{ | | |
| 72895 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72896 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 72897 | .any, | | |
| 72898 | }, | | |
| 72899 | .patterns = &.{ | | |
| 72900 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72901 | }, | | |
| 72902 | .extra_temps = .{ | | |
| 72903 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 72904 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 72905 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 72906 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72907 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72908 | .unused, | | |
| 72909 | .unused, | | |
| 72910 | .unused, | | |
| 72911 | .unused, | | |
| 72912 | .unused, | | |
| 72913 | .unused, | | |
| 72914 | }, | | |
| 72915 | .dst_temps = .{ .mem, .unused }, | | |
| 72916 | .clobbers = .{ .eflags = true }, | | |
| 72917 | .each = .{ .once = &.{ | | |
| 72918 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 72919 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 72920 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 72921 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 72922 | else => unreachable, | | |
| 72923 | .l => .lt, | | |
| 72924 | .le => .le, | | |
| 72925 | }), ._ }, | | |
| 72926 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, | | |
| 72927 | .{ ._, ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, | | |
| 72928 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { | | |
| 72929 | else => unreachable, | | |
| 72930 | .l => .lt, | | |
| 72931 | .le => .le, | | |
| 72932 | }), ._ }, | | |
| 72933 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | | |
| 72934 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, | | |
| 72935 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, | | |
| 72936 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 72937 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 72938 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 72939 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 72940 | } }, | | |
| 72941 | }, .{ | | |
| 72942 | .required_features = .{ .sse, null, null, null }, | | |
| 72943 | .src_constraints = .{ | | |
| 72944 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 72945 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 72946 | .any, | | |
| 72947 | }, | | |
| 72948 | .patterns = &.{ | | |
| 72949 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 72950 | }, | | |
| 72951 | .extra_temps = .{ | | |
| 72952 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 72953 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 72954 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 72955 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72956 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 72957 | .unused, | | |
| 72958 | .unused, | | |
| 72959 | .unused, | | |
| 72960 | .unused, | | |
| 72961 | .unused, | | |
| 72962 | .unused, | | |
| 72963 | }, | | |
| 72964 | .dst_temps = .{ .mem, .unused }, | | |
| 72965 | .clobbers = .{ .eflags = true }, | | |
| 72966 | .each = .{ .once = &.{ | | |
| 72967 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 72968 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 72969 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 72970 | .{ .@"0:", ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, -16), ._, ._ }, | | |
| 72971 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, -16), .sp(switch (cc) { | | |
| 72972 | else => unreachable, | | |
| 72973 | .l => .lt, | | |
| 72974 | .le => .le, | | |
| 72975 | }), ._ }, | | |
| 72976 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | | |
| 72977 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, | | |
| 72978 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, | | |
| 72979 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 72980 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 72981 | .{ .@"1:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 72982 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 72983 | else => unreachable, | | |
| 72984 | .l => .lt, | | |
| 72985 | .le => .le, | | |
| 72986 | }), ._ }, | | |
| 72987 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, | | |
| 72988 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 72989 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 72990 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 72991 | } }, | | |
| 72992 | }, .{ | | |
| 72993 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 72994 | .src_constraints = .{ | | |
| 72995 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 72996 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 72997 | .any, | | |
| 72998 | }, | | |
| 72999 | .patterns = &.{ | | |
| 73000 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73001 | }, | | |
| 73002 | .extra_temps = .{ | | |
| 73003 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73004 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 73005 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 73006 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 73007 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73008 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73009 | .unused, | | |
| 73010 | .unused, | | |
| 73011 | .unused, | | |
| 73012 | .unused, | | |
| 73013 | .unused, | | |
| 73014 | }, | | |
| 73015 | .dst_temps = .{ .mem, .unused }, | | |
| 73016 | .clobbers = .{ .eflags = true }, | | |
| 73017 | .each = .{ .once = &.{ | | |
| 73018 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73019 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 73020 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 73021 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, | | |
| 73022 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 73023 | else => unreachable, | | |
| 73024 | .l => .lt, | | |
| 73025 | .le => .le, | | |
| 73026 | }) }, | | |
| 73027 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { | | |
| 73028 | else => unreachable, | | |
| 73029 | .l => .lt, | | |
| 73030 | .le => .le, | | |
| 73031 | }) }, | | |
| 73032 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 73033 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, | | |
| 73034 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | | |
| 73035 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, | | |
| 73036 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 73037 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 73038 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, | | |
| 73039 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73040 | } }, | | |
| 73041 | }, .{ | | |
| 73042 | .required_features = .{ .avx, null, null, null }, | | |
| 73043 | .src_constraints = .{ | | |
| 73044 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 73045 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 73046 | .any, | | |
| 73047 | }, | | |
| 73048 | .patterns = &.{ | | |
| 73049 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73050 | }, | | |
| 73051 | .extra_temps = .{ | | |
| 73052 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73053 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 73054 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 73055 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 73056 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73057 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73058 | .unused, | | |
| 73059 | .unused, | | |
| 73060 | .unused, | | |
| 73061 | .unused, | | |
| 73062 | .unused, | | |
| 73063 | }, | | |
| 73064 | .dst_temps = .{ .mem, .unused }, | | |
| 73065 | .clobbers = .{ .eflags = true }, | | |
| 73066 | .each = .{ .once = &.{ | | |
| 73067 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73068 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 73069 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 73070 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, | | |
| 73071 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 73072 | else => unreachable, | | |
| 73073 | .l => .lt, | | |
| 73074 | .le => .le, | | |
| 73075 | }) }, | | |
| 73076 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { | | |
| 73077 | else => unreachable, | | |
| 73078 | .l => .lt, | | |
| 73079 | .le => .le, | | |
| 73080 | }) }, | | |
| 73081 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 73082 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, | | |
| 73083 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | | |
| 73084 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, | | |
| 73085 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 73086 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, | | |
| 73087 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, | | |
| 73088 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73089 | } }, | | |
| 73090 | }, .{ | | |
| 73091 | .required_features = .{ .avx, null, null, null }, | | |
| 73092 | .src_constraints = .{ | | |
| 73093 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 73094 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 73095 | .any, | | |
| 73096 | }, | | |
| 73097 | .patterns = &.{ | | |
| 73098 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73099 | }, | | |
| 73100 | .extra_temps = .{ | | |
| 73101 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73102 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73103 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73104 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 73105 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73106 | .unused, | | |
| 73107 | .unused, | | |
| 73108 | .unused, | | |
| 73109 | .unused, | | |
| 73110 | .unused, | | |
| 73111 | .unused, | | |
| 73112 | }, | | |
| 73113 | .dst_temps = .{ .mem, .unused }, | | |
| 73114 | .clobbers = .{ .eflags = true }, | | |
| 73115 | .each = .{ .once = &.{ | | |
| 73116 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73117 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73118 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73119 | .{ .@"0:", .v_pd, .mova, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 73120 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 73121 | else => unreachable, | | |
| 73122 | .l => .lt, | | |
| 73123 | .le => .le, | | |
| 73124 | }) }, | | |
| 73125 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp3y, ._, ._ }, | | |
| 73126 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 73127 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 73128 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 73129 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73130 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73131 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 73132 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 73133 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 73134 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73135 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 73136 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73137 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73138 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73139 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73140 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73141 | } }, | | |
| 73142 | }, .{ | | |
| 73143 | .required_features = .{ .sse2, null, null, null }, | | |
| 73144 | .src_constraints = .{ | | |
| 73145 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 73146 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 73147 | .any, | | |
| 73148 | }, | | |
| 73149 | .patterns = &.{ | | |
| 73150 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73151 | }, | | |
| 73152 | .extra_temps = .{ | | |
| 73153 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73154 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73155 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73156 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | | |
| 73157 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73158 | .unused, | | |
| 73159 | .unused, | | |
| 73160 | .unused, | | |
| 73161 | .unused, | | |
| 73162 | .unused, | | |
| 73163 | .unused, | | |
| 73164 | }, | | |
| 73165 | .dst_temps = .{ .mem, .unused }, | | |
| 73166 | .clobbers = .{ .eflags = true }, | | |
| 73167 | .each = .{ .once = &.{ | | |
| 73168 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73169 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73170 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73171 | .{ .@"0:", ._pd, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73172 | .{ ._, ._pd, .cmp, .tmp3x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 73173 | else => unreachable, | | |
| 73174 | .l => .lt, | | |
| 73175 | .le => .le, | | |
| 73176 | }), ._ }, | | |
| 73177 | .{ ._, ._pd, .movmsk, .tmp4d, .tmp3x, ._, ._ }, | | |
| 73178 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 73179 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 73180 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 73181 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73182 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73183 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 73184 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 73185 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 73186 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73187 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73188 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73189 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73190 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73191 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73192 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73193 | } }, | | |
| 73194 | }, .{ | | |
| 73195 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, | | |
| 73196 | .src_constraints = .{ | | |
| 73197 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 73198 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 73199 | .any, | | |
| 73200 | }, | | |
| 73201 | .patterns = &.{ | | |
| 73202 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 73203 | }, | | |
| 73204 | .extra_temps = .{ | | |
| 73205 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73206 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73207 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73208 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73209 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 73210 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 73211 | .unused, | | |
| 73212 | .unused, | | |
| 73213 | .unused, | | |
| 73214 | .unused, | | |
| 73215 | .unused, | | |
| 73216 | }, | | |
| 73217 | .dst_temps = .{ .mem, .unused }, | | |
| 73218 | .clobbers = .{ .eflags = true }, | | |
| 73219 | .each = .{ .once = &.{ | | |
| 73220 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73221 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73222 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73223 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 73224 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73225 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73226 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, | | |
| 73227 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, | | |
| 73228 | .{ ._, .fromCond(switch (cc) { | | |
| 73229 | else => unreachable, | | |
| 73230 | .l => .a, | | |
| 73231 | .le => .ae, | | |
| 73232 | }), .set, .tmp3b, ._, ._, ._ }, | | |
| 73233 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 73234 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 73235 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 73236 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73237 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73238 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 73239 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 73240 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 73241 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73242 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 73243 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73244 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73245 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73246 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73247 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73248 | } }, | | |
| 73249 | }, .{ | | |
| 73250 | .required_features = .{ .x87, .cmov, null, null }, | | |
| 73251 | .src_constraints = .{ | | |
| 73252 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 73253 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 73254 | .any, | | |
| 73255 | }, | | |
| 73256 | .patterns = &.{ | | |
| 73257 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 73258 | }, | | |
| 73259 | .extra_temps = .{ | | |
| 73260 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73261 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73262 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73263 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73264 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 73265 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 73266 | .unused, | | |
| 73267 | .unused, | | |
| 73268 | .unused, | | |
| 73269 | .unused, | | |
| 73270 | .unused, | | |
| 73271 | }, | | |
| 73272 | .dst_temps = .{ .mem, .unused }, | | |
| 73273 | .clobbers = .{ .eflags = true }, | | |
| 73274 | .each = .{ .once = &.{ | | |
| 73275 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73276 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73277 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73278 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 73279 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73280 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73281 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, | | |
| 73282 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, | | |
| 73283 | .{ ._, .fromCond(switch (cc) { | | |
| 73284 | else => unreachable, | | |
| 73285 | .l => .a, | | |
| 73286 | .le => .ae, | | |
| 73287 | }), .set, .tmp3b, ._, ._, ._ }, | | |
| 73288 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 73289 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 73290 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73291 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73292 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73293 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 73294 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 73295 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 73296 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73297 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 73298 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73299 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73300 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73301 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73302 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73303 | } }, | | |
| 73304 | }, .{ | | |
| 73305 | .required_features = .{ .x87, null, null, null }, | | |
| 73306 | .src_constraints = .{ | | |
| 73307 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 73308 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 73309 | .any, | | |
| 73310 | }, | | |
| 73311 | .patterns = &.{ | | |
| 73312 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 73313 | }, | | |
| 73314 | .extra_temps = .{ | | |
| 73315 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73316 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73317 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73318 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73319 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 73320 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 73321 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 73322 | .unused, | | |
| 73323 | .unused, | | |
| 73324 | .unused, | | |
| 73325 | .unused, | | |
| 73326 | }, | | |
| 73327 | .dst_temps = .{ .mem, .unused }, | | |
| 73328 | .clobbers = .{ .eflags = true }, | | |
| 73329 | .each = .{ .once = &.{ | | |
| 73330 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73331 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73332 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73333 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 73334 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73335 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73336 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 73337 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, | | |
| 73338 | switch (cc) { | | |
| 73339 | else => unreachable, | | |
| 73340 | .l => .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_001), ._, ._ }, | | |
| 73341 | .le => .{ ._, ._r, .sh, .tmp6h, .ui(1), ._, ._ }, | | |
| 73342 | }, | | |
| 73343 | .{ ._, .fromCond(switch (cc) { | | |
| 73344 | else => unreachable, | | |
| 73345 | .l => .z, | | |
| 73346 | .le => .nc, | | |
| 73347 | }), .set, .tmp3b, ._, ._, ._ }, | | |
| 73348 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 73349 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 73350 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73351 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73352 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73353 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 73354 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 73355 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 73356 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73357 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 73358 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73359 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73360 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73361 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73362 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73363 | } }, | | |
| 73364 | }, .{ | | |
| 73365 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, | | |
| 73366 | .src_constraints = .{ | | |
| 73367 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 73368 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 73369 | .any, | | |
| 73370 | }, | | |
| 73371 | .patterns = &.{ | | |
| 73372 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 73373 | }, | | |
| 73374 | .extra_temps = .{ | | |
| 73375 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73376 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73377 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73378 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73379 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 73380 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 73381 | .unused, | | |
| 73382 | .unused, | | |
| 73383 | .unused, | | |
| 73384 | .unused, | | |
| 73385 | .unused, | | |
| 73386 | }, | | |
| 73387 | .dst_temps = .{ .mem, .unused }, | | |
| 73388 | .clobbers = .{ .eflags = true }, | | |
| 73389 | .each = .{ .once = &.{ | | |
| 73390 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73391 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73392 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73393 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 73394 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73395 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73396 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, | | |
| 73397 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, | | |
| 73398 | .{ ._, .fromCond(switch (cc) { | | |
| 73399 | else => unreachable, | | |
| 73400 | .l => .a, | | |
| 73401 | .le => .ae, | | |
| 73402 | }), .set, .tmp3b, ._, ._, ._ }, | | |
| 73403 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 73404 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 73405 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 73406 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73407 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73408 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 73409 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 73410 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 73411 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73412 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73413 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73414 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73415 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73416 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73417 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73418 | } }, | | |
| 73419 | }, .{ | | |
| 73420 | .required_features = .{ .x87, .cmov, null, null }, | | |
| 73421 | .src_constraints = .{ | | |
| 73422 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 73423 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 73424 | .any, | | |
| 73425 | }, | | |
| 73426 | .patterns = &.{ | | |
| 73427 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 73428 | }, | | |
| 73429 | .extra_temps = .{ | | |
| 73430 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73431 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73432 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73433 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73434 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 73435 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 73436 | .unused, | | |
| 73437 | .unused, | | |
| 73438 | .unused, | | |
| 73439 | .unused, | | |
| 73440 | .unused, | | |
| 73441 | }, | | |
| 73442 | .dst_temps = .{ .mem, .unused }, | | |
| 73443 | .clobbers = .{ .eflags = true }, | | |
| 73444 | .each = .{ .once = &.{ | | |
| 73445 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73446 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73447 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73448 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 73449 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73450 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73451 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, | | |
| 73452 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, | | |
| 73453 | .{ ._, .fromCond(switch (cc) { | | |
| 73454 | else => unreachable, | | |
| 73455 | .l => .a, | | |
| 73456 | .le => .ae, | | |
| 73457 | }), .set, .tmp3b, ._, ._, ._ }, | | |
| 73458 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 73459 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 73460 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73461 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73462 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73463 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 73464 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 73465 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 73466 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73467 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73468 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73469 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73470 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73471 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73472 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73473 | } }, | | |
| 73474 | }, .{ | | |
| 73475 | .required_features = .{ .x87, null, null, null }, | | |
| 73476 | .src_constraints = .{ | | |
| 73477 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 73478 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 73479 | .any, | | |
| 73480 | }, | | |
| 73481 | .patterns = &.{ | | |
| 73482 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 73483 | }, | | |
| 73484 | .extra_temps = .{ | | |
| 73485 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73486 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 73487 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73488 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 73489 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 73490 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 73491 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 73492 | .unused, | | |
| 73493 | .unused, | | |
| 73494 | .unused, | | |
| 73495 | .unused, | | |
| 73496 | }, | | |
| 73497 | .dst_temps = .{ .mem, .unused }, | | |
| 73498 | .clobbers = .{ .eflags = true }, | | |
| 73499 | .each = .{ .once = &.{ | | |
| 73500 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73501 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73502 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73503 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 73504 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73505 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 73506 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 73507 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, | | |
| 73508 | switch (cc) { | | |
| 73509 | else => unreachable, | | |
| 73510 | .l => .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_001), ._, ._ }, | | |
| 73511 | .le => .{ ._, ._r, .sh, .tmp6h, .ui(1), ._, ._ }, | | |
| 73512 | }, | | |
| 73513 | .{ ._, .fromCond(switch (cc) { | | |
| 73514 | else => unreachable, | | |
| 73515 | .l => .z, | | |
| 73516 | .le => .nc, | | |
| 73517 | }), .set, .tmp3b, ._, ._, ._ }, | | |
| 73518 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 73519 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 73520 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73521 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73522 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73523 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 73524 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 73525 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 73526 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73527 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73528 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73529 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 73530 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73531 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 73532 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 73533 | } }, | | |
| 73534 | }, .{ | | |
| 73535 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 73536 | .src_constraints = .{ | | |
| 73537 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73538 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73539 | .any, | | |
| 73540 | }, | | |
| 73541 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 73542 | .patterns = &.{ | | |
| 73543 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73544 | }, | | |
| 73545 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73546 | .extra_temps = .{ | | |
| 73547 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73548 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73549 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73550 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73551 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73552 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73553 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73554 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 73555 | .unused, | | |
| 73556 | .unused, | | |
| 73557 | .unused, | | |
| 73558 | }, | | |
| 73559 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 73560 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73561 | .each = .{ .once = &.{ | | |
| 73562 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 73563 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73564 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73565 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73566 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73567 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 73568 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 73569 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 73570 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 73571 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73572 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 73573 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 73574 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 73575 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73576 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73577 | } }, | | |
| 73578 | }, .{ | | |
| 73579 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 73580 | .src_constraints = .{ | | |
| 73581 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73582 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73583 | .any, | | |
| 73584 | }, | | |
| 73585 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 73586 | .patterns = &.{ | | |
| 73587 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73588 | }, | | |
| 73589 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73590 | .extra_temps = .{ | | |
| 73591 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73592 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73593 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73594 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73595 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73596 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73597 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73598 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 73599 | .unused, | | |
| 73600 | .unused, | | |
| 73601 | .unused, | | |
| 73602 | }, | | |
| 73603 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 73604 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73605 | .each = .{ .once = &.{ | | |
| 73606 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 73607 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73608 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73609 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73610 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73611 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 73612 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 73613 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 73614 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 73615 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73616 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 73617 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 73618 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73619 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73620 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73621 | } }, | | |
| 73622 | }, .{ | | |
| 73623 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 73624 | .src_constraints = .{ | | |
| 73625 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73626 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73627 | .any, | | |
| 73628 | }, | | |
| 73629 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 73630 | .patterns = &.{ | | |
| 73631 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73632 | }, | | |
| 73633 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73634 | .extra_temps = .{ | | |
| 73635 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73636 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73637 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73638 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73639 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73640 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73641 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73642 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 73643 | .unused, | | |
| 73644 | .unused, | | |
| 73645 | .unused, | | |
| 73646 | }, | | |
| 73647 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 73648 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73649 | .each = .{ .once = &.{ | | |
| 73650 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 73651 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73652 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73653 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73654 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73655 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 73656 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 73657 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 73658 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 73659 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73660 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 73661 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 73662 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 73663 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73664 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73665 | } }, | | |
| 73666 | }, .{ | | |
| 73667 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 73668 | .src_constraints = .{ | | |
| 73669 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73670 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73671 | .any, | | |
| 73672 | }, | | |
| 73673 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 73674 | .patterns = &.{ | | |
| 73675 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73676 | }, | | |
| 73677 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73678 | .extra_temps = .{ | | |
| 73679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73680 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73681 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73682 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73683 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73684 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73685 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73686 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 73687 | .unused, | | |
| 73688 | .unused, | | |
| 73689 | .unused, | | |
| 73690 | }, | | |
| 73691 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 73692 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73693 | .each = .{ .once = &.{ | | |
| 73694 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 73695 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73696 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73697 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73698 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73699 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 73700 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 73701 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 73702 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 73703 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73704 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 73705 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 73706 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73707 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73708 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73709 | } }, | | |
| 73710 | }, .{ | | |
| 73711 | .required_features = .{ .sse, .slow_incdec, null, null }, | | |
| 73712 | .src_constraints = .{ | | |
| 73713 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73714 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73715 | .any, | | |
| 73716 | }, | | |
| 73717 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 73718 | .patterns = &.{ | | |
| 73719 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73720 | }, | | |
| 73721 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73722 | .extra_temps = .{ | | |
| 73723 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73724 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73725 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73726 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73727 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73728 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73729 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73730 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 73731 | .unused, | | |
| 73732 | .unused, | | |
| 73733 | .unused, | | |
| 73734 | }, | | |
| 73735 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 73736 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73737 | .each = .{ .once = &.{ | | |
| 73738 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 73739 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73740 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73741 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73742 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73743 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 73744 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 73745 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 73746 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 73747 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73748 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 73749 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 73750 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 73751 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73752 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73753 | } }, | | |
| 73754 | }, .{ | | |
| 73755 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 73756 | .src_constraints = .{ | | |
| 73757 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73758 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73759 | .any, | | |
| 73760 | }, | | |
| 73761 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 73762 | .patterns = &.{ | | |
| 73763 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73764 | }, | | |
| 73765 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73766 | .extra_temps = .{ | | |
| 73767 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73768 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73769 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73770 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73771 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73772 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73773 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73774 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 73775 | .unused, | | |
| 73776 | .unused, | | |
| 73777 | .unused, | | |
| 73778 | }, | | |
| 73779 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 73780 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73781 | .each = .{ .once = &.{ | | |
| 73782 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 73783 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73784 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73785 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73786 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73787 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 73788 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 73789 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 73790 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 73791 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73792 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 73793 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 73794 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73795 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73796 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73797 | } }, | | |
| 73798 | }, .{ | | |
| 73799 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, | | |
| 73800 | .src_constraints = .{ | | |
| 73801 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73802 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73803 | .any, | | |
| 73804 | }, | | |
| 73805 | .patterns = &.{ | | |
| 73806 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73807 | }, | | |
| 73808 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73809 | .extra_temps = .{ | | |
| 73810 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73811 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73812 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 73813 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73814 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73815 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73816 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73817 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73818 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 73819 | .unused, | | |
| 73820 | .unused, | | |
| 73821 | }, | | |
| 73822 | .dst_temps = .{ .mem, .unused }, | | |
| 73823 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73824 | .each = .{ .once = &.{ | | |
| 73825 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73826 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73827 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73828 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73829 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73830 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 73831 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 73832 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 73833 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 73834 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 73835 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 73836 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 73837 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 73838 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 73839 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73840 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73841 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 73842 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 73843 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73844 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73845 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73846 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 73847 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73848 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 73849 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 73850 | } }, | | |
| 73851 | }, .{ | | |
| 73852 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 73853 | .src_constraints = .{ | | |
| 73854 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73855 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73856 | .any, | | |
| 73857 | }, | | |
| 73858 | .patterns = &.{ | | |
| 73859 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73860 | }, | | |
| 73861 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73862 | .extra_temps = .{ | | |
| 73863 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73864 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73865 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 73866 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73867 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73868 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73869 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73870 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73871 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 73872 | .unused, | | |
| 73873 | .unused, | | |
| 73874 | }, | | |
| 73875 | .dst_temps = .{ .mem, .unused }, | | |
| 73876 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73877 | .each = .{ .once = &.{ | | |
| 73878 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73879 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73880 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73881 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73882 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73883 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 73884 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 73885 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 73886 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 73887 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 73888 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 73889 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 73890 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73891 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 73892 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73893 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73894 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 73895 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 73896 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73897 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73898 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73899 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 73900 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73901 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 73902 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 73903 | } }, | | |
| 73904 | }, .{ | | |
| 73905 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, | | |
| 73906 | .src_constraints = .{ | | |
| 73907 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73908 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73909 | .any, | | |
| 73910 | }, | | |
| 73911 | .patterns = &.{ | | |
| 73912 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73913 | }, | | |
| 73914 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73915 | .extra_temps = .{ | | |
| 73916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73917 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73918 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 73919 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73920 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73921 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73922 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73923 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73924 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 73925 | .unused, | | |
| 73926 | .unused, | | |
| 73927 | }, | | |
| 73928 | .dst_temps = .{ .mem, .unused }, | | |
| 73929 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73930 | .each = .{ .once = &.{ | | |
| 73931 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73932 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73933 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73934 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73935 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73936 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 73937 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 73938 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 73939 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 73940 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 73941 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 73942 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 73943 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 73944 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 73945 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73946 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 73947 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 73948 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 73949 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73950 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 73951 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 73952 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 73953 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 73954 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 73955 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 73956 | } }, | | |
| 73957 | }, .{ | | |
| 73958 | .required_features = .{ .@"64bit", .sse2, null, null }, | | |
| 73959 | .src_constraints = .{ | | |
| 73960 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73961 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 73962 | .any, | | |
| 73963 | }, | | |
| 73964 | .patterns = &.{ | | |
| 73965 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 73966 | }, | | |
| 73967 | .call_frame = .{ .alignment = .@"16" }, | | |
| 73968 | .extra_temps = .{ | | |
| 73969 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 73970 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 73971 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 73972 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 73973 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 73974 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 73975 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 73976 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 73977 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 73978 | .unused, | | |
| 73979 | .unused, | | |
| 73980 | }, | | |
| 73981 | .dst_temps = .{ .mem, .unused }, | | |
| 73982 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 73983 | .each = .{ .once = &.{ | | |
| 73984 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 73985 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 73986 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 73987 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 73988 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 73989 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 73990 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 73991 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 73992 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 73993 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 73994 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 73995 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 73996 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 73997 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 73998 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 73999 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 74000 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 74001 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 74002 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 74003 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74004 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74005 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 74006 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 74007 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 74008 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 74009 | } }, | | |
| 74010 | }, .{ | | |
| 74011 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, | | |
| 74012 | .src_constraints = .{ | | |
| 74013 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 74014 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 74015 | .any, | | |
| 74016 | }, | | |
| 74017 | .patterns = &.{ | | |
| 74018 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74019 | }, | | |
| 74020 | .call_frame = .{ .alignment = .@"16" }, | | |
| 74021 | .extra_temps = .{ | | |
| 74022 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74023 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74024 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 74025 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 74026 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 74027 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 74028 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 74029 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 74030 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 74031 | .unused, | | |
| 74032 | .unused, | | |
| 74033 | }, | | |
| 74034 | .dst_temps = .{ .mem, .unused }, | | |
| 74035 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 74036 | .each = .{ .once = &.{ | | |
| 74037 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74038 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74039 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 74040 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74041 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 74042 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 74043 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 74044 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 74045 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 74046 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 74047 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 74048 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 74049 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 74050 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 74051 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 74052 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 74053 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 74054 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 74055 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 74056 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74057 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74058 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 74059 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 74060 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 74061 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 74062 | } }, | | |
| 74063 | }, .{ | | |
| 74064 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 74065 | .src_constraints = .{ | | |
| 74066 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 74067 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 74068 | .any, | | |
| 74069 | }, | | |
| 74070 | .patterns = &.{ | | |
| 74071 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74072 | }, | | |
| 74073 | .call_frame = .{ .alignment = .@"16" }, | | |
| 74074 | .extra_temps = .{ | | |
| 74075 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74076 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74077 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 74078 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 74079 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 74080 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 74081 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 74082 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 74083 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 74084 | .unused, | | |
| 74085 | .unused, | | |
| 74086 | }, | | |
| 74087 | .dst_temps = .{ .mem, .unused }, | | |
| 74088 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 74089 | .each = .{ .once = &.{ | | |
| 74090 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74091 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74092 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 74093 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74094 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 74095 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 74096 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 74097 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 74098 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 74099 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 74100 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 74101 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 74102 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 74103 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 74104 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 74105 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 74106 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 74107 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 74108 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 74109 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74110 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74111 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 74112 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 74113 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 74114 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 74115 | } }, | | |
| 74116 | } }, | | |
| 74117 | }); | | |
| 74118 | }, | | |
| 74119 | .eq, .neq => |cmp_op| cg.select(&res, &.{ty_pl.ty.toType()}, &ops, switch (@as(Condition, switch (cmp_op) { | | |
| 74120 | else => unreachable, | | |
| 74121 | .eq => .e, | | |
| 74122 | .neq => .ne, | | |
| 74123 | })) { | | |
| 74124 | else => unreachable, | | |
| 74125 | inline .e, .ne => |cc| comptime &.{ .{ | | |
| 74126 | .src_constraints = .{ .{ .bool_vec = .byte }, .{ .bool_vec = .byte }, .any }, | | |
| 74127 | .patterns = &.{ | | |
| 74128 | .{ .src = .{ .mut_mem, .imm8, .none } }, | | |
| 74129 | .{ .src = .{ .imm8, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74130 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | | |
| 74131 | .{ .src = .{ .imm8, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74132 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, | | |
| 74133 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74134 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, | | |
| 74135 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74136 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, | | |
| 74137 | }, | | |
| 74138 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 74139 | .clobbers = .{ .eflags = true }, | | |
| 74140 | .each = .{ .once = switch (cc) { | | |
| 74141 | else => unreachable, | | |
| 74142 | .e => &.{ | | |
| 74143 | .{ ._, ._, .xor, .dst0b, .src1b, ._, ._ }, | | |
| 74144 | .{ ._, ._, .not, .dst0b, ._, ._, ._ }, | | |
| 74145 | }, | | |
| 74146 | .ne => &.{ | | |
| 74147 | .{ ._, ._, .xor, .dst0b, .src1b, ._, ._ }, | | |
| 74148 | }, | | |
| 74149 | } }, | | |
| 74150 | }, .{ | | |
| 74151 | .src_constraints = .{ .{ .bool_vec = .word }, .{ .bool_vec = .word }, .any }, | | |
| 74152 | .patterns = &.{ | | |
| 74153 | .{ .src = .{ .mut_mem, .imm16, .none } }, | | |
| 74154 | .{ .src = .{ .imm16, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74155 | .{ .src = .{ .to_mut_gpr, .imm16, .none } }, | | |
| 74156 | .{ .src = .{ .imm16, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74157 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, | | |
| 74158 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74159 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, | | |
| 74160 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74161 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, | | |
| 74162 | }, | | |
| 74163 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 74164 | .clobbers = .{ .eflags = true }, | | |
| 74165 | .each = .{ .once = switch (cc) { | | |
| 74166 | else => unreachable, | | |
| 74167 | .e => &.{ | | |
| 74168 | .{ ._, ._, .xor, .dst0w, .src1w, ._, ._ }, | | |
| 74169 | .{ ._, ._, .not, .dst0w, ._, ._, ._ }, | | |
| 74170 | }, | | |
| 74171 | .ne => &.{ | | |
| 74172 | .{ ._, ._, .xor, .dst0w, .src1w, ._, ._ }, | | |
| 74173 | }, | | |
| 74174 | } }, | | |
| 74175 | }, .{ | | |
| 74176 | .src_constraints = .{ .{ .bool_vec = .dword }, .{ .bool_vec = .dword }, .any }, | | |
| 74177 | .patterns = &.{ | | |
| 74178 | .{ .src = .{ .mut_mem, .imm32, .none } }, | | |
| 74179 | .{ .src = .{ .imm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74180 | .{ .src = .{ .to_mut_gpr, .imm32, .none } }, | | |
| 74181 | .{ .src = .{ .imm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74182 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, | | |
| 74183 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74184 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, | | |
| 74185 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74186 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, | | |
| 74187 | }, | | |
| 74188 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 74189 | .clobbers = .{ .eflags = true }, | | |
| 74190 | .each = .{ .once = switch (cc) { | | |
| 74191 | else => unreachable, | | |
| 74192 | .e => &.{ | | |
| 74193 | .{ ._, ._, .xor, .dst0d, .src1d, ._, ._ }, | | |
| 74194 | .{ ._, ._, .not, .dst0d, ._, ._, ._ }, | | |
| 74195 | }, | | |
| 74196 | .ne => &.{ | | |
| 74197 | .{ ._, ._, .xor, .dst0d, .src1d, ._, ._ }, | | |
| 74198 | }, | | |
| 74199 | } }, | | |
| 74200 | }, .{ | | |
| 74201 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 74202 | .src_constraints = .{ .{ .bool_vec = .qword }, .{ .bool_vec = .qword }, .any }, | | |
| 74203 | .patterns = &.{ | | |
| 74204 | .{ .src = .{ .mut_mem, .simm32, .none } }, | | |
| 74205 | .{ .src = .{ .simm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74206 | .{ .src = .{ .to_mut_gpr, .simm32, .none } }, | | |
| 74207 | .{ .src = .{ .simm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74208 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, | | |
| 74209 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 74210 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, | | |
| 74211 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 74212 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, | | |
| 74213 | }, | | |
| 74214 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 74215 | .clobbers = .{ .eflags = true }, | | |
| 74216 | .each = .{ .once = switch (cc) { | | |
| 74217 | else => unreachable, | | |
| 74218 | .e => &.{ | | |
| 74219 | .{ ._, ._, .xor, .dst0q, .src1q, ._, ._ }, | | |
| 74220 | .{ ._, ._, .not, .dst0q, ._, ._, ._ }, | | |
| 74221 | }, | | |
| 74222 | .ne => &.{ | | |
| 74223 | .{ ._, ._, .xor, .dst0q, .src1q, ._, ._ }, | | |
| 74224 | }, | | |
| 74225 | } }, | | |
| 74226 | }, .{ | | |
| 74227 | .src_constraints = .{ .any_bool_vec, .any_bool_vec, .any }, | | |
| 74228 | .patterns = &.{ | | |
| 74229 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74230 | }, | | |
| 74231 | .extra_temps = .{ | | |
| 74232 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74233 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 74234 | .unused, | | |
| 74235 | .unused, | | |
| 74236 | .unused, | | |
| 74237 | .unused, | | |
| 74238 | .unused, | | |
| 74239 | .unused, | | |
| 74240 | .unused, | | |
| 74241 | .unused, | | |
| 74242 | .unused, | | |
| 74243 | }, | | |
| 74244 | .dst_temps = .{ .mem, .unused }, | | |
| 74245 | .clobbers = .{ .eflags = true }, | | |
| 74246 | .each = .{ .once = switch (cc) { | | |
| 74247 | else => unreachable, | | |
| 74248 | .e => &.{ | | |
| 74249 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74250 | .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ }, | | |
| 74251 | .{ ._, ._, .xor, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ }, | | |
| 74252 | .{ ._, ._, .not, .tmp1p, ._, ._, ._ }, | | |
| 74253 | .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ }, | | |
| 74254 | .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ }, | | |
| 74255 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74256 | }, | | |
| 74257 | .ne => &.{ | | |
| 74258 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74259 | .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ }, | | |
| 74260 | .{ ._, ._, .xor, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ }, | | |
| 74261 | .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ }, | | |
| 74262 | .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ }, | | |
| 74263 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74264 | }, | | |
| 74265 | } }, | | |
| 74266 | }, .{ | | |
| 74267 | .required_features = .{ .avx, null, null, null }, | | |
| 74268 | .src_constraints = .{ | | |
| 74269 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, | | |
| 74270 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, | | |
| 74271 | .any, | | |
| 74272 | }, | | |
| 74273 | .patterns = &.{ | | |
| 74274 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74275 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74276 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74277 | }, | | |
| 74278 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74279 | .kind = .all, | | |
| 74280 | .inverted = switch (cc) { | | |
| 74281 | else => unreachable, | | |
| 74282 | .e => false, | | |
| 74283 | .ne => true, | | |
| 74284 | }, | | |
| 74285 | .scalar = .byte, | | |
| 74286 | } } }, .unused }, | | |
| 74287 | .each = .{ .once = &.{ | | |
| 74288 | .{ ._, .vp_b, .cmpeq, .dst0x, .src0x, .src1x, ._ }, | | |
| 74289 | } }, | | |
| 74290 | }, .{ | | |
| 74291 | .required_features = .{ .avx, null, null, null }, | | |
| 74292 | .src_constraints = .{ | | |
| 74293 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, | | |
| 74294 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, | | |
| 74295 | .any, | | |
| 74296 | }, | | |
| 74297 | .patterns = &.{ | | |
| 74298 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74299 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74300 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74301 | }, | | |
| 74302 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74303 | .kind = .all, | | |
| 74304 | .inverted = switch (cc) { | | |
| 74305 | else => unreachable, | | |
| 74306 | .e => false, | | |
| 74307 | .ne => true, | | |
| 74308 | }, | | |
| 74309 | .scalar = .word, | | |
| 74310 | } } }, .unused }, | | |
| 74311 | .each = .{ .once = &.{ | | |
| 74312 | .{ ._, .vp_w, .cmpeq, .dst0x, .src0x, .src1x, ._ }, | | |
| 74313 | } }, | | |
| 74314 | }, .{ | | |
| 74315 | .required_features = .{ .avx, null, null, null }, | | |
| 74316 | .src_constraints = .{ | | |
| 74317 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, | | |
| 74318 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, | | |
| 74319 | .any, | | |
| 74320 | }, | | |
| 74321 | .patterns = &.{ | | |
| 74322 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74323 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74324 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74325 | }, | | |
| 74326 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74327 | .kind = .all, | | |
| 74328 | .inverted = switch (cc) { | | |
| 74329 | else => unreachable, | | |
| 74330 | .e => false, | | |
| 74331 | .ne => true, | | |
| 74332 | }, | | |
| 74333 | .scalar = .dword, | | |
| 74334 | } } }, .unused }, | | |
| 74335 | .each = .{ .once = &.{ | | |
| 74336 | .{ ._, .vp_d, .cmpeq, .dst0x, .src0x, .src1x, ._ }, | | |
| 74337 | } }, | | |
| 74338 | }, .{ | | |
| 74339 | .required_features = .{ .avx, null, null, null }, | | |
| 74340 | .src_constraints = .{ | | |
| 74341 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, | | |
| 74342 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, | | |
| 74343 | .any, | | |
| 74344 | }, | | |
| 74345 | .patterns = &.{ | | |
| 74346 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74347 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74348 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74349 | }, | | |
| 74350 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74351 | .kind = .all, | | |
| 74352 | .inverted = switch (cc) { | | |
| 74353 | else => unreachable, | | |
| 74354 | .e => false, | | |
| 74355 | .ne => true, | | |
| 74356 | }, | | |
| 74357 | .scalar = .qword, | | |
| 74358 | } } }, .unused }, | | |
| 74359 | .each = .{ .once = &.{ | | |
| 74360 | .{ ._, .vp_q, .cmpeq, .dst0x, .src0x, .src1x, ._ }, | | |
| 74361 | } }, | | |
| 74362 | }, .{ | | |
| 74363 | .required_features = .{ .sse2, null, null, null }, | | |
| 74364 | .src_constraints = .{ | | |
| 74365 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, | | |
| 74366 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, | | |
| 74367 | .any, | | |
| 74368 | }, | | |
| 74369 | .patterns = &.{ | | |
| 74370 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 74371 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74372 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 74373 | }, | | |
| 74374 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ | | |
| 74375 | .kind = .all, | | |
| 74376 | .inverted = switch (cc) { | | |
| 74377 | else => unreachable, | | |
| 74378 | .e => false, | | |
| 74379 | .ne => true, | | |
| 74380 | }, | | |
| 74381 | .scalar = .byte, | | |
| 74382 | } } }, .unused }, | | |
| 74383 | .each = .{ .once = &.{ | | |
| 74384 | .{ ._, .p_b, .cmpeq, .dst0x, .src1x, ._, ._ }, | | |
| 74385 | } }, | | |
| 74386 | }, .{ | | |
| 74387 | .required_features = .{ .sse2, null, null, null }, | | |
| 74388 | .src_constraints = .{ | | |
| 74389 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, | | |
| 74390 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, | | |
| 74391 | .any, | | |
| 74392 | }, | | |
| 74393 | .patterns = &.{ | | |
| 74394 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 74395 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74396 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 74397 | }, | | |
| 74398 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ | | |
| 74399 | .kind = .all, | | |
| 74400 | .inverted = switch (cc) { | | |
| 74401 | else => unreachable, | | |
| 74402 | .e => false, | | |
| 74403 | .ne => true, | | |
| 74404 | }, | | |
| 74405 | .scalar = .word, | | |
| 74406 | } } }, .unused }, | | |
| 74407 | .each = .{ .once = &.{ | | |
| 74408 | .{ ._, .p_w, .cmpeq, .dst0x, .src1x, ._, ._ }, | | |
| 74409 | } }, | | |
| 74410 | }, .{ | | |
| 74411 | .required_features = .{ .sse2, null, null, null }, | | |
| 74412 | .src_constraints = .{ | | |
| 74413 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, | | |
| 74414 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, | | |
| 74415 | .any, | | |
| 74416 | }, | | |
| 74417 | .patterns = &.{ | | |
| 74418 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 74419 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74420 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 74421 | }, | | |
| 74422 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ | | |
| 74423 | .kind = .all, | | |
| 74424 | .inverted = switch (cc) { | | |
| 74425 | else => unreachable, | | |
| 74426 | .e => false, | | |
| 74427 | .ne => true, | | |
| 74428 | }, | | |
| 74429 | .scalar = .dword, | | |
| 74430 | } } }, .unused }, | | |
| 74431 | .each = .{ .once = &.{ | | |
| 74432 | .{ ._, .p_d, .cmpeq, .dst0x, .src1x, ._, ._ }, | | |
| 74433 | } }, | | |
| 74434 | }, .{ | | |
| 74435 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 74436 | .src_constraints = .{ | | |
| 74437 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, | | |
| 74438 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, | | |
| 74439 | .any, | | |
| 74440 | }, | | |
| 74441 | .patterns = &.{ | | |
| 74442 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 74443 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74444 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 74445 | }, | | |
| 74446 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ | | |
| 74447 | .kind = .all, | | |
| 74448 | .inverted = switch (cc) { | | |
| 74449 | else => unreachable, | | |
| 74450 | .e => false, | | |
| 74451 | .ne => true, | | |
| 74452 | }, | | |
| 74453 | .scalar = .qword, | | |
| 74454 | } } }, .unused }, | | |
| 74455 | .each = .{ .once = &.{ | | |
| 74456 | .{ ._, .p_q, .cmpeq, .dst0x, .src1x, ._, ._ }, | | |
| 74457 | } }, | | |
| 74458 | }, .{ | | |
| 74459 | .required_features = .{ .mmx, null, null, null }, | | |
| 74460 | .src_constraints = .{ | | |
| 74461 | .{ .scalar_int = .{ .of = .qword, .is = .byte } }, | | |
| 74462 | .{ .scalar_int = .{ .of = .qword, .is = .byte } }, | | |
| 74463 | .any, | | |
| 74464 | }, | | |
| 74465 | .patterns = &.{ | | |
| 74466 | .{ .src = .{ .to_mut_mmx, .mem, .none } }, | | |
| 74467 | .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, | | |
| 74468 | .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, | | |
| 74469 | }, | | |
| 74470 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ | | |
| 74471 | .kind = .all, | | |
| 74472 | .inverted = switch (cc) { | | |
| 74473 | else => unreachable, | | |
| 74474 | .e => false, | | |
| 74475 | .ne => true, | | |
| 74476 | }, | | |
| 74477 | .scalar = .byte, | | |
| 74478 | } } }, .unused }, | | |
| 74479 | .each = .{ .once = &.{ | | |
| 74480 | .{ ._, .p_b, .cmpeq, .dst0q, .src1q, ._, ._ }, | | |
| 74481 | } }, | | |
| 74482 | }, .{ | | |
| 74483 | .required_features = .{ .mmx, null, null, null }, | | |
| 74484 | .src_constraints = .{ | | |
| 74485 | .{ .scalar_int = .{ .of = .qword, .is = .word } }, | | |
| 74486 | .{ .scalar_int = .{ .of = .qword, .is = .word } }, | | |
| 74487 | .any, | | |
| 74488 | }, | | |
| 74489 | .patterns = &.{ | | |
| 74490 | .{ .src = .{ .to_mut_mmx, .mem, .none } }, | | |
| 74491 | .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, | | |
| 74492 | .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, | | |
| 74493 | }, | | |
| 74494 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ | | |
| 74495 | .kind = .all, | | |
| 74496 | .inverted = switch (cc) { | | |
| 74497 | else => unreachable, | | |
| 74498 | .e => false, | | |
| 74499 | .ne => true, | | |
| 74500 | }, | | |
| 74501 | .scalar = .word, | | |
| 74502 | } } }, .unused }, | | |
| 74503 | .each = .{ .once = &.{ | | |
| 74504 | .{ ._, .p_w, .cmpeq, .dst0q, .src1q, ._, ._ }, | | |
| 74505 | } }, | | |
| 74506 | }, .{ | | |
| 74507 | .required_features = .{ .mmx, null, null, null }, | | |
| 74508 | .src_constraints = .{ | | |
| 74509 | .{ .scalar_int = .{ .of = .qword, .is = .dword } }, | | |
| 74510 | .{ .scalar_int = .{ .of = .qword, .is = .dword } }, | | |
| 74511 | .any, | | |
| 74512 | }, | | |
| 74513 | .patterns = &.{ | | |
| 74514 | .{ .src = .{ .to_mut_mmx, .mem, .none } }, | | |
| 74515 | .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, | | |
| 74516 | .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, | | |
| 74517 | }, | | |
| 74518 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ | | |
| 74519 | .kind = .all, | | |
| 74520 | .inverted = switch (cc) { | | |
| 74521 | else => unreachable, | | |
| 74522 | .e => false, | | |
| 74523 | .ne => true, | | |
| 74524 | }, | | |
| 74525 | .scalar = .dword, | | |
| 74526 | } } }, .unused }, | | |
| 74527 | .each = .{ .once = &.{ | | |
| 74528 | .{ ._, .p_d, .cmpeq, .dst0q, .src1q, ._, ._ }, | | |
| 74529 | } }, | | |
| 74530 | }, .{ | | |
| 74531 | .required_features = .{ .avx2, null, null, null }, | | |
| 74532 | .src_constraints = .{ | | |
| 74533 | .{ .scalar_int = .{ .of = .yword, .is = .byte } }, | | |
| 74534 | .{ .scalar_int = .{ .of = .yword, .is = .byte } }, | | |
| 74535 | .any, | | |
| 74536 | }, | | |
| 74537 | .patterns = &.{ | | |
| 74538 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74539 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74540 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74541 | }, | | |
| 74542 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74543 | .kind = .all, | | |
| 74544 | .inverted = switch (cc) { | | |
| 74545 | else => unreachable, | | |
| 74546 | .e => false, | | |
| 74547 | .ne => true, | | |
| 74548 | }, | | |
| 74549 | .scalar = .byte, | | |
| 74550 | } } }, .unused }, | | |
| 74551 | .each = .{ .once = &.{ | | |
| 74552 | .{ ._, .vp_b, .cmpeq, .dst0y, .src0y, .src1y, ._ }, | | |
| 74553 | } }, | | |
| 74554 | }, .{ | | |
| 74555 | .required_features = .{ .avx2, null, null, null }, | | |
| 74556 | .src_constraints = .{ | | |
| 74557 | .{ .scalar_int = .{ .of = .yword, .is = .word } }, | | |
| 74558 | .{ .scalar_int = .{ .of = .yword, .is = .word } }, | | |
| 74559 | .any, | | |
| 74560 | }, | | |
| 74561 | .patterns = &.{ | | |
| 74562 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74563 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74564 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74565 | }, | | |
| 74566 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74567 | .kind = .all, | | |
| 74568 | .inverted = switch (cc) { | | |
| 74569 | else => unreachable, | | |
| 74570 | .e => false, | | |
| 74571 | .ne => true, | | |
| 74572 | }, | | |
| 74573 | .scalar = .word, | | |
| 74574 | } } }, .unused }, | | |
| 74575 | .each = .{ .once = &.{ | | |
| 74576 | .{ ._, .vp_w, .cmpeq, .dst0y, .src0y, .src1y, ._ }, | | |
| 74577 | } }, | | |
| 74578 | }, .{ | | |
| 74579 | .required_features = .{ .avx2, null, null, null }, | | |
| 74580 | .src_constraints = .{ | | |
| 74581 | .{ .scalar_int = .{ .of = .yword, .is = .dword } }, | | |
| 74582 | .{ .scalar_int = .{ .of = .yword, .is = .dword } }, | | |
| 74583 | .any, | | |
| 74584 | }, | | |
| 74585 | .patterns = &.{ | | |
| 74586 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74587 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74588 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74589 | }, | | |
| 74590 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74591 | .kind = .all, | | |
| 74592 | .inverted = switch (cc) { | | |
| 74593 | else => unreachable, | | |
| 74594 | .e => false, | | |
| 74595 | .ne => true, | | |
| 74596 | }, | | |
| 74597 | .scalar = .dword, | | |
| 74598 | } } }, .unused }, | | |
| 74599 | .each = .{ .once = &.{ | | |
| 74600 | .{ ._, .vp_d, .cmpeq, .dst0y, .src0y, .src1y, ._ }, | | |
| 74601 | } }, | | |
| 74602 | }, .{ | | |
| 74603 | .required_features = .{ .avx2, null, null, null }, | | |
| 74604 | .src_constraints = .{ | | |
| 74605 | .{ .scalar_int = .{ .of = .yword, .is = .qword } }, | | |
| 74606 | .{ .scalar_int = .{ .of = .yword, .is = .qword } }, | | |
| 74607 | .any, | | |
| 74608 | }, | | |
| 74609 | .patterns = &.{ | | |
| 74610 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 74611 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 74612 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 74613 | }, | | |
| 74614 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ | | |
| 74615 | .kind = .all, | | |
| 74616 | .inverted = switch (cc) { | | |
| 74617 | else => unreachable, | | |
| 74618 | .e => false, | | |
| 74619 | .ne => true, | | |
| 74620 | }, | | |
| 74621 | .scalar = .qword, | | |
| 74622 | } } }, .unused }, | | |
| 74623 | .each = .{ .once = &.{ | | |
| 74624 | .{ ._, .vp_q, .cmpeq, .dst0y, .src0y, .src1y, ._ }, | | |
| 74625 | } }, | | |
| 74626 | }, .{ | | |
| 74627 | .required_features = .{ .avx2, null, null, null }, | | |
| 74628 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 74629 | .patterns = &.{ | | |
| 74630 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74631 | }, | | |
| 74632 | .extra_temps = .{ | | |
| 74633 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74634 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74635 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74636 | .{ .kind = .{ .rc = .sse } }, | | |
| 74637 | .unused, | | |
| 74638 | .unused, | | |
| 74639 | .unused, | | |
| 74640 | .unused, | | |
| 74641 | .unused, | | |
| 74642 | .unused, | | |
| 74643 | .unused, | | |
| 74644 | }, | | |
| 74645 | .dst_temps = .{ .mem, .unused }, | | |
| 74646 | .clobbers = .{ .eflags = true }, | | |
| 74647 | .each = .{ .once = switch (cc) { | | |
| 74648 | else => unreachable, | | |
| 74649 | .e => &.{ | | |
| 74650 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74651 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74652 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74653 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74654 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | | |
| 74655 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, | | |
| 74656 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 74657 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74658 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74659 | }, | | |
| 74660 | .ne => &.{ | | |
| 74661 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74662 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74663 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74664 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74665 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | | |
| 74666 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | | |
| 74667 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, | | |
| 74668 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 74669 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74670 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74671 | }, | | |
| 74672 | } }, | | |
| 74673 | }, .{ | | |
| 74674 | .required_features = .{ .avx2, null, null, null }, | | |
| 74675 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 74676 | .patterns = &.{ | | |
| 74677 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74678 | }, | | |
| 74679 | .extra_temps = .{ | | |
| 74680 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74681 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74682 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | | |
| 74683 | .{ .kind = .{ .rc = .sse } }, | | |
| 74684 | .unused, | | |
| 74685 | .unused, | | |
| 74686 | .unused, | | |
| 74687 | .unused, | | |
| 74688 | .unused, | | |
| 74689 | .unused, | | |
| 74690 | .unused, | | |
| 74691 | }, | | |
| 74692 | .dst_temps = .{ .mem, .unused }, | | |
| 74693 | .clobbers = .{ .eflags = true }, | | |
| 74694 | .each = .{ .once = switch (cc) { | | |
| 74695 | else => unreachable, | | |
| 74696 | .e => &.{ | | |
| 74697 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74698 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74699 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74700 | .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74701 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, | | |
| 74702 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | | |
| 74703 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | | |
| 74704 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 74705 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74706 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74707 | }, | | |
| 74708 | .ne => &.{ | | |
| 74709 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74710 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74711 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74712 | .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74713 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, | | |
| 74714 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | | |
| 74715 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | | |
| 74716 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | | |
| 74717 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 74718 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74719 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74720 | }, | | |
| 74721 | } }, | | |
| 74722 | }, .{ | | |
| 74723 | .required_features = .{ .avx2, null, null, null }, | | |
| 74724 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 74725 | .patterns = &.{ | | |
| 74726 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74727 | }, | | |
| 74728 | .extra_temps = .{ | | |
| 74729 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74730 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74731 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 74732 | .{ .kind = .{ .rc = .sse } }, | | |
| 74733 | .unused, | | |
| 74734 | .unused, | | |
| 74735 | .unused, | | |
| 74736 | .unused, | | |
| 74737 | .unused, | | |
| 74738 | .unused, | | |
| 74739 | .unused, | | |
| 74740 | }, | | |
| 74741 | .dst_temps = .{ .mem, .unused }, | | |
| 74742 | .clobbers = .{ .eflags = true }, | | |
| 74743 | .each = .{ .once = switch (cc) { | | |
| 74744 | else => unreachable, | | |
| 74745 | .e => &.{ | | |
| 74746 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74747 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74748 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74749 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74750 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | | |
| 74751 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 74752 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 74753 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74754 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74755 | }, | | |
| 74756 | .ne => &.{ | | |
| 74757 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74758 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74759 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74760 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74761 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, | | |
| 74762 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | | |
| 74763 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 74764 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 74765 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74766 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74767 | }, | | |
| 74768 | } }, | | |
| 74769 | }, .{ | | |
| 74770 | .required_features = .{ .avx2, null, null, null }, | | |
| 74771 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, | | |
| 74772 | .patterns = &.{ | | |
| 74773 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74774 | }, | | |
| 74775 | .extra_temps = .{ | | |
| 74776 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74777 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 74778 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 74779 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 74780 | .{ .kind = .{ .rc = .sse } }, | | |
| 74781 | .unused, | | |
| 74782 | .unused, | | |
| 74783 | .unused, | | |
| 74784 | .unused, | | |
| 74785 | .unused, | | |
| 74786 | .unused, | | |
| 74787 | }, | | |
| 74788 | .dst_temps = .{ .mem, .unused }, | | |
| 74789 | .clobbers = .{ .eflags = true }, | | |
| 74790 | .each = .{ .once = switch (cc) { | | |
| 74791 | else => unreachable, | | |
| 74792 | .e => &.{ | | |
| 74793 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74794 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74795 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74796 | .{ .@"0:", .v_dqu, .mov, .tmp4y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74797 | .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74798 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ }, | | |
| 74799 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 74800 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 74801 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 74802 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 74803 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 74804 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 74805 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 74806 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 74807 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74808 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74809 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74810 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 74811 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 74812 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 74813 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 74814 | }, | | |
| 74815 | .ne => &.{ | | |
| 74816 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74817 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74818 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74819 | .{ .@"0:", .v_dqu, .mov, .tmp4y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 74820 | .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._ }, | | |
| 74821 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ }, | | |
| 74822 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, | | |
| 74823 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 74824 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 74825 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 74826 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 74827 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 74828 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 74829 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 74830 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 74831 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74832 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 74833 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74834 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 74835 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 74836 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 74837 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 74838 | }, | | |
| 74839 | } }, | | |
| 74840 | }, .{ | | |
| 74841 | .required_features = .{ .avx, null, null, null }, | | |
| 74842 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 74843 | .patterns = &.{ | | |
| 74844 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74845 | }, | | |
| 74846 | .extra_temps = .{ | | |
| 74847 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74848 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74849 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | | |
| 74850 | .{ .kind = .{ .rc = .sse } }, | | |
| 74851 | .unused, | | |
| 74852 | .unused, | | |
| 74853 | .unused, | | |
| 74854 | .unused, | | |
| 74855 | .unused, | | |
| 74856 | .unused, | | |
| 74857 | .unused, | | |
| 74858 | }, | | |
| 74859 | .dst_temps = .{ .mem, .unused }, | | |
| 74860 | .clobbers = .{ .eflags = true }, | | |
| 74861 | .each = .{ .once = switch (cc) { | | |
| 74862 | else => unreachable, | | |
| 74863 | .e => &.{ | | |
| 74864 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74865 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74866 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74867 | .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 74868 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 74869 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | | |
| 74870 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 74871 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74872 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74873 | }, | | |
| 74874 | .ne => &.{ | | |
| 74875 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74876 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74877 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74878 | .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 74879 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 74880 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | | |
| 74881 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | | |
| 74882 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 74883 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74884 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74885 | }, | | |
| 74886 | } }, | | |
| 74887 | }, .{ | | |
| 74888 | .required_features = .{ .avx, null, null, null }, | | |
| 74889 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 74890 | .patterns = &.{ | | |
| 74891 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74892 | }, | | |
| 74893 | .extra_temps = .{ | | |
| 74894 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74895 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 74896 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 74897 | .{ .kind = .{ .rc = .sse } }, | | |
| 74898 | .unused, | | |
| 74899 | .unused, | | |
| 74900 | .unused, | | |
| 74901 | .unused, | | |
| 74902 | .unused, | | |
| 74903 | .unused, | | |
| 74904 | .unused, | | |
| 74905 | }, | | |
| 74906 | .dst_temps = .{ .mem, .unused }, | | |
| 74907 | .clobbers = .{ .eflags = true }, | | |
| 74908 | .each = .{ .once = switch (cc) { | | |
| 74909 | else => unreachable, | | |
| 74910 | .e => &.{ | | |
| 74911 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74912 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74913 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74914 | .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 74915 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, | | |
| 74916 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 74917 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 74918 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 74919 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74920 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74921 | }, | | |
| 74922 | .ne => &.{ | | |
| 74923 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74924 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74925 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74926 | .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 74927 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, | | |
| 74928 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 74929 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | | |
| 74930 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 74931 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 74932 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74933 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74934 | }, | | |
| 74935 | } }, | | |
| 74936 | }, .{ | | |
| 74937 | .required_features = .{ .avx, null, null, null }, | | |
| 74938 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 74939 | .patterns = &.{ | | |
| 74940 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 74941 | }, | | |
| 74942 | .extra_temps = .{ | | |
| 74943 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 74944 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 74945 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 74946 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 74947 | .{ .kind = .{ .rc = .sse } }, | | |
| 74948 | .unused, | | |
| 74949 | .unused, | | |
| 74950 | .unused, | | |
| 74951 | .unused, | | |
| 74952 | .unused, | | |
| 74953 | .unused, | | |
| 74954 | }, | | |
| 74955 | .dst_temps = .{ .mem, .unused }, | | |
| 74956 | .clobbers = .{ .eflags = true }, | | |
| 74957 | .each = .{ .once = switch (cc) { | | |
| 74958 | else => unreachable, | | |
| 74959 | .e => &.{ | | |
| 74960 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74961 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74962 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74963 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74964 | .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 74965 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 74966 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 74967 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 74968 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 74969 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 74970 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 74971 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 74972 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 74973 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 74974 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74975 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 74976 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 74977 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 74978 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 74979 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 74980 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 74981 | }, | | |
| 74982 | .ne => &.{ | | |
| 74983 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 74984 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 74985 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74986 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 74987 | .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 74988 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 74989 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, | | |
| 74990 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 74991 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 74992 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 74993 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 74994 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 74995 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 74996 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 74997 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 74998 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 74999 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75000 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75001 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75002 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75003 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75004 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75005 | }, | | |
| 75006 | } }, | | |
| 75007 | }, .{ | | |
| 75008 | .required_features = .{ .avx, null, null, null }, | | |
| 75009 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, | | |
| 75010 | .patterns = &.{ | | |
| 75011 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75012 | }, | | |
| 75013 | .extra_temps = .{ | | |
| 75014 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75015 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 75016 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75017 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75018 | .{ .kind = .{ .rc = .sse } }, | | |
| 75019 | .unused, | | |
| 75020 | .unused, | | |
| 75021 | .unused, | | |
| 75022 | .unused, | | |
| 75023 | .unused, | | |
| 75024 | .unused, | | |
| 75025 | }, | | |
| 75026 | .dst_temps = .{ .mem, .unused }, | | |
| 75027 | .clobbers = .{ .eflags = true }, | | |
| 75028 | .each = .{ .once = switch (cc) { | | |
| 75029 | else => unreachable, | | |
| 75030 | .e => &.{ | | |
| 75031 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75032 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75033 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75034 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75035 | .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 75036 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 75037 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 75038 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 75039 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75040 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75041 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75042 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 75043 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 75044 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 75045 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75046 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75047 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75048 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75049 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75050 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75051 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75052 | }, | | |
| 75053 | .ne => &.{ | | |
| 75054 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75055 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75056 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75057 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75058 | .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, | | |
| 75059 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 75060 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, | | |
| 75061 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 75062 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 75063 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75064 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75065 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75066 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 75067 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 75068 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 75069 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75070 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75071 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75072 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75073 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75074 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75075 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75076 | }, | | |
| 75077 | } }, | | |
| 75078 | }, .{ | | |
| 75079 | .required_features = .{ .sse2, null, null, null }, | | |
| 75080 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 75081 | .patterns = &.{ | | |
| 75082 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75083 | }, | | |
| 75084 | .extra_temps = .{ | | |
| 75085 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75086 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75087 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | | |
| 75088 | .{ .kind = .{ .rc = .sse } }, | | |
| 75089 | .unused, | | |
| 75090 | .unused, | | |
| 75091 | .unused, | | |
| 75092 | .unused, | | |
| 75093 | .unused, | | |
| 75094 | .unused, | | |
| 75095 | .unused, | | |
| 75096 | }, | | |
| 75097 | .dst_temps = .{ .mem, .unused }, | | |
| 75098 | .clobbers = .{ .eflags = true }, | | |
| 75099 | .each = .{ .once = switch (cc) { | | |
| 75100 | else => unreachable, | | |
| 75101 | .e => &.{ | | |
| 75102 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75103 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75104 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75105 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75106 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 75107 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | | |
| 75108 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75109 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75110 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75111 | }, | | |
| 75112 | .ne => &.{ | | |
| 75113 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75114 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75115 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75116 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75117 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 75118 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, | | |
| 75119 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, | | |
| 75120 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75121 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75122 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75123 | }, | | |
| 75124 | } }, | | |
| 75125 | }, .{ | | |
| 75126 | .required_features = .{ .sse2, null, null, null }, | | |
| 75127 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 75128 | .patterns = &.{ | | |
| 75129 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75130 | }, | | |
| 75131 | .extra_temps = .{ | | |
| 75132 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75133 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75134 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75135 | .{ .kind = .{ .rc = .sse } }, | | |
| 75136 | .unused, | | |
| 75137 | .unused, | | |
| 75138 | .unused, | | |
| 75139 | .unused, | | |
| 75140 | .unused, | | |
| 75141 | .unused, | | |
| 75142 | .unused, | | |
| 75143 | }, | | |
| 75144 | .dst_temps = .{ .mem, .unused }, | | |
| 75145 | .clobbers = .{ .eflags = true }, | | |
| 75146 | .each = .{ .once = switch (cc) { | | |
| 75147 | else => unreachable, | | |
| 75148 | .e => &.{ | | |
| 75149 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75150 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75151 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75152 | .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75153 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, | | |
| 75154 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 75155 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75156 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 75157 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75158 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75159 | }, | | |
| 75160 | .ne => &.{ | | |
| 75161 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75162 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75163 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75164 | .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75165 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, | | |
| 75166 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, | | |
| 75167 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | | |
| 75168 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75169 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 75170 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75172 | }, | | |
| 75173 | } }, | | |
| 75174 | }, .{ | | |
| 75175 | .required_features = .{ .sse2, null, null, null }, | | |
| 75176 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 75177 | .patterns = &.{ | | |
| 75178 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75179 | }, | | |
| 75180 | .extra_temps = .{ | | |
| 75181 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75182 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 75183 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75184 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75185 | .{ .kind = .{ .rc = .sse } }, | | |
| 75186 | .unused, | | |
| 75187 | .unused, | | |
| 75188 | .unused, | | |
| 75189 | .unused, | | |
| 75190 | .unused, | | |
| 75191 | .unused, | | |
| 75192 | }, | | |
| 75193 | .dst_temps = .{ .mem, .unused }, | | |
| 75194 | .clobbers = .{ .eflags = true }, | | |
| 75195 | .each = .{ .once = switch (cc) { | | |
| 75196 | else => unreachable, | | |
| 75197 | .e => &.{ | | |
| 75198 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75199 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75200 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75201 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75202 | .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75203 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 75204 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 75205 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 75206 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 75207 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75208 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75209 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 75210 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 75211 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 75212 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75213 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75214 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75215 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75216 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75217 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75218 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75219 | }, | | |
| 75220 | .ne => &.{ | | |
| 75221 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75222 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75223 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75224 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75225 | .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75226 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 75227 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, | | |
| 75228 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 75229 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 75230 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 75231 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75232 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75233 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 75234 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 75235 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 75236 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75237 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75238 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75239 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75240 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75241 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75242 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75243 | }, | | |
| 75244 | } }, | | |
| 75245 | }, .{ | | |
| 75246 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 75247 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, | | |
| 75248 | .patterns = &.{ | | |
| 75249 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75250 | }, | | |
| 75251 | .extra_temps = .{ | | |
| 75252 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75253 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 75254 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75255 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75256 | .{ .kind = .{ .rc = .sse } }, | | |
| 75257 | .unused, | | |
| 75258 | .unused, | | |
| 75259 | .unused, | | |
| 75260 | .unused, | | |
| 75261 | .unused, | | |
| 75262 | .unused, | | |
| 75263 | }, | | |
| 75264 | .dst_temps = .{ .mem, .unused }, | | |
| 75265 | .clobbers = .{ .eflags = true }, | | |
| 75266 | .each = .{ .once = switch (cc) { | | |
| 75267 | else => unreachable, | | |
| 75268 | .e => &.{ | | |
| 75269 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75270 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75271 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75272 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75273 | .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75274 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 75275 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 75276 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 75277 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75278 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75279 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75280 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 75281 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 75282 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 75283 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75284 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75285 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75286 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75287 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75288 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75289 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75290 | }, | | |
| 75291 | .ne => &.{ | | |
| 75292 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75293 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75294 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75295 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 75296 | .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 75297 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, | | |
| 75298 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, | | |
| 75299 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 75300 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 75301 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75302 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75303 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75304 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 75305 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 75306 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 75307 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75308 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 75309 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75310 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75311 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75312 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75313 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75314 | }, | | |
| 75315 | } }, | | |
| 75316 | }, .{ | | |
| 75317 | .required_features = .{ .sse, .mmx, null, null }, | | |
| 75318 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 75319 | .patterns = &.{ | | |
| 75320 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75321 | }, | | |
| 75322 | .extra_temps = .{ | | |
| 75323 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75324 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75325 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75326 | .{ .kind = .{ .rc = .mmx } }, | | |
| 75327 | .unused, | | |
| 75328 | .unused, | | |
| 75329 | .unused, | | |
| 75330 | .unused, | | |
| 75331 | .unused, | | |
| 75332 | .unused, | | |
| 75333 | .unused, | | |
| 75334 | }, | | |
| 75335 | .dst_temps = .{ .mem, .unused }, | | |
| 75336 | .clobbers = .{ .eflags = true }, | | |
| 75337 | .each = .{ .once = switch (cc) { | | |
| 75338 | else => unreachable, | | |
| 75339 | .e => &.{ | | |
| 75340 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75341 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75342 | .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75343 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75344 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, | | |
| 75345 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75346 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 75347 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75348 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75349 | }, | | |
| 75350 | .ne => &.{ | | |
| 75351 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75352 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75353 | .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75354 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75355 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, | | |
| 75356 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, | | |
| 75357 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75358 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 75359 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75360 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75361 | }, | | |
| 75362 | } }, | | |
| 75363 | }, .{ | | |
| 75364 | .required_features = .{ .sse, .mmx, null, null }, | | |
| 75365 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 75366 | .patterns = &.{ | | |
| 75367 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75368 | }, | | |
| 75369 | .extra_temps = .{ | | |
| 75370 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75371 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75372 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75373 | .{ .kind = .{ .rc = .mmx } }, | | |
| 75374 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75375 | .{ .kind = .{ .rc = .mmx } }, | | |
| 75376 | .unused, | | |
| 75377 | .unused, | | |
| 75378 | .unused, | | |
| 75379 | .unused, | | |
| 75380 | .unused, | | |
| 75381 | }, | | |
| 75382 | .dst_temps = .{ .mem, .unused }, | | |
| 75383 | .clobbers = .{ .eflags = true }, | | |
| 75384 | .each = .{ .once = switch (cc) { | | |
| 75385 | else => unreachable, | | |
| 75386 | .e => &.{ | | |
| 75387 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75388 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75389 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75390 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, | | |
| 75391 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75392 | .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75393 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, | | |
| 75394 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, | | |
| 75395 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 75396 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 75397 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 75398 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75399 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75400 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 75401 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 75402 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 75403 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75404 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75405 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75406 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75407 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75408 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75409 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75410 | }, | | |
| 75411 | .ne => &.{ | | |
| 75412 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75413 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75414 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75415 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, | | |
| 75416 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75417 | .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75418 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, | | |
| 75419 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, | | |
| 75420 | .{ ._, ._, .xor, .tmp4b, .si(0b1111), ._, ._ }, | | |
| 75421 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 75422 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 75423 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 75424 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75425 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75426 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 75427 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 75428 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 75429 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75430 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75431 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75432 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75433 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75434 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75435 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75436 | }, | | |
| 75437 | } }, | | |
| 75438 | }, .{ | | |
| 75439 | .required_features = .{ .sse, .mmx, null, null }, | | |
| 75440 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 75441 | .patterns = &.{ | | |
| 75442 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75443 | }, | | |
| 75444 | .extra_temps = .{ | | |
| 75445 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75446 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 75447 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75448 | .{ .kind = .{ .rc = .mmx } }, | | |
| 75449 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75450 | .{ .kind = .{ .rc = .mmx } }, | | |
| 75451 | .unused, | | |
| 75452 | .unused, | | |
| 75453 | .unused, | | |
| 75454 | .unused, | | |
| 75455 | .unused, | | |
| 75456 | }, | | |
| 75457 | .dst_temps = .{ .mem, .unused }, | | |
| 75458 | .clobbers = .{ .eflags = true }, | | |
| 75459 | .each = .{ .once = switch (cc) { | | |
| 75460 | else => unreachable, | | |
| 75461 | .e => &.{ | | |
| 75462 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75463 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75464 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75465 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, | | |
| 75466 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75467 | .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75468 | .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ }, | | |
| 75469 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, | | |
| 75470 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, | | |
| 75471 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 75472 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 75473 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75474 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75475 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75476 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 75477 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 75478 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 75479 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75480 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75481 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75482 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75483 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75484 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75485 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75486 | }, | | |
| 75487 | .ne => &.{ | | |
| 75488 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75489 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 75490 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75491 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, | | |
| 75492 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75493 | .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75494 | .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ }, | | |
| 75495 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, | | |
| 75496 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, | | |
| 75497 | .{ ._, ._, .xor, .tmp4b, .si(0b11), ._, ._ }, | | |
| 75498 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 75499 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 75500 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 75501 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75502 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 75503 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 75504 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 75505 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 75506 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, | | |
| 75507 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75508 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75509 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 75510 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 75511 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 75512 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 75513 | }, | | |
| 75514 | } }, | | |
| 75515 | }, .{ | | |
| 75516 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 75517 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, | | |
| 75518 | .patterns = &.{ | | |
| 75519 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75520 | }, | | |
| 75521 | .extra_temps = .{ | | |
| 75522 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75523 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75524 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75525 | .unused, | | |
| 75526 | .unused, | | |
| 75527 | .unused, | | |
| 75528 | .unused, | | |
| 75529 | .unused, | | |
| 75530 | .unused, | | |
| 75531 | .unused, | | |
| 75532 | .unused, | | |
| 75533 | }, | | |
| 75534 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75535 | .clobbers = .{ .eflags = true }, | | |
| 75536 | .each = .{ .once = &.{ | | |
| 75537 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, | | |
| 75538 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75539 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75540 | .{ .@"0:", ._, .mov, .tmp2b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, | | |
| 75541 | .{ ._, ._, .cmp, .tmp2b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, | | |
| 75542 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75543 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, | | |
| 75544 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, | | |
| 75545 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75546 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 75547 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75548 | } }, | | |
| 75549 | }, .{ | | |
| 75550 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 75551 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, | | |
| 75552 | .patterns = &.{ | | |
| 75553 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75554 | }, | | |
| 75555 | .extra_temps = .{ | | |
| 75556 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75557 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75558 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | | |
| 75559 | .unused, | | |
| 75560 | .unused, | | |
| 75561 | .unused, | | |
| 75562 | .unused, | | |
| 75563 | .unused, | | |
| 75564 | .unused, | | |
| 75565 | .unused, | | |
| 75566 | .unused, | | |
| 75567 | }, | | |
| 75568 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75569 | .clobbers = .{ .eflags = true }, | | |
| 75570 | .each = .{ .once = &.{ | | |
| 75571 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, | | |
| 75572 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75573 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75574 | .{ .@"0:", ._, .mov, .tmp2w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | | |
| 75575 | .{ ._, ._, .cmp, .tmp2w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, | | |
| 75576 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75577 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, | | |
| 75578 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, | | |
| 75579 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75580 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 75581 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75582 | } }, | | |
| 75583 | }, .{ | | |
| 75584 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 75585 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, | | |
| 75586 | .patterns = &.{ | | |
| 75587 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75588 | }, | | |
| 75589 | .extra_temps = .{ | | |
| 75590 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75591 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75592 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75593 | .unused, | | |
| 75594 | .unused, | | |
| 75595 | .unused, | | |
| 75596 | .unused, | | |
| 75597 | .unused, | | |
| 75598 | .unused, | | |
| 75599 | .unused, | | |
| 75600 | .unused, | | |
| 75601 | }, | | |
| 75602 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75603 | .clobbers = .{ .eflags = true }, | | |
| 75604 | .each = .{ .once = &.{ | | |
| 75605 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, | | |
| 75606 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75607 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75608 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | | |
| 75609 | .{ ._, ._, .cmp, .tmp2d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, | | |
| 75610 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75611 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, | | |
| 75612 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, | | |
| 75613 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75614 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 75615 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75616 | } }, | | |
| 75617 | }, .{ | | |
| 75618 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 75619 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, | | |
| 75620 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, | | |
| 75621 | .patterns = &.{ | | |
| 75622 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75623 | }, | | |
| 75624 | .extra_temps = .{ | | |
| 75625 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75626 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75627 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 75628 | .unused, | | |
| 75629 | .unused, | | |
| 75630 | .unused, | | |
| 75631 | .unused, | | |
| 75632 | .unused, | | |
| 75633 | .unused, | | |
| 75634 | .unused, | | |
| 75635 | .unused, | | |
| 75636 | }, | | |
| 75637 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75638 | .clobbers = .{ .eflags = true }, | | |
| 75639 | .each = .{ .once = &.{ | | |
| 75640 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, | | |
| 75641 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75642 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75643 | .{ .@"0:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75644 | .{ ._, ._, .cmp, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75645 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75646 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, | | |
| 75647 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, | | |
| 75648 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75649 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75650 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75651 | } }, | | |
| 75652 | }, .{ | | |
| 75653 | .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, | | |
| 75654 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, | | |
| 75655 | .patterns = &.{ | | |
| 75656 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75657 | }, | | |
| 75658 | .extra_temps = .{ | | |
| 75659 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 75660 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75661 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75662 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 75663 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 75664 | .unused, | | |
| 75665 | .unused, | | |
| 75666 | .unused, | | |
| 75667 | .unused, | | |
| 75668 | .unused, | | |
| 75669 | .unused, | | |
| 75670 | }, | | |
| 75671 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75672 | .clobbers = .{ .eflags = true }, | | |
| 75673 | .each = .{ .once = &.{ | | |
| 75674 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, | | |
| 75675 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 75676 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75677 | .{ .@"0:", ._, .mov, .tmp2d, .sa(.src0p, .add_elem_limbs), ._, ._ }, | | |
| 75678 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 75679 | .{ .@"1:", ._, .mov, .tmp4p, .memi(.src0p, .tmp0), ._, ._ }, | | |
| 75680 | .{ ._, ._, .xor, .tmp4p, .memi(.src1p, .tmp0), ._, ._ }, | | |
| 75681 | .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ }, | | |
| 75682 | .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ }, | | |
| 75683 | .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ }, | | |
| 75684 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, | | |
| 75685 | .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ }, | | |
| 75686 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75687 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, | | |
| 75688 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, | | |
| 75689 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75690 | .{ ._, ._, .cmp, .tmp1b, .sa(.dst0, .add_len), ._, ._ }, | | |
| 75691 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 75692 | } }, | | |
| 75693 | }, .{ | | |
| 75694 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 75695 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 75696 | .patterns = &.{ | | |
| 75697 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75698 | }, | | |
| 75699 | .extra_temps = .{ | | |
| 75700 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75701 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75702 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75703 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75704 | .unused, | | |
| 75705 | .unused, | | |
| 75706 | .unused, | | |
| 75707 | .unused, | | |
| 75708 | .unused, | | |
| 75709 | .unused, | | |
| 75710 | .unused, | | |
| 75711 | }, | | |
| 75712 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75713 | .clobbers = .{ .eflags = true }, | | |
| 75714 | .each = .{ .once = &.{ | | |
| 75715 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75716 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75717 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75718 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75719 | .{ ._, ._, .mov, .tmp3b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, | | |
| 75720 | .{ ._, ._, .cmp, .tmp3b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, | | |
| 75721 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75722 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, | | |
| 75723 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, | | |
| 75724 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75725 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 75726 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75727 | } }, | | |
| 75728 | }, .{ | | |
| 75729 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 75730 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 75731 | .patterns = &.{ | | |
| 75732 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75733 | }, | | |
| 75734 | .extra_temps = .{ | | |
| 75735 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75736 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75737 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75738 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | | |
| 75739 | .unused, | | |
| 75740 | .unused, | | |
| 75741 | .unused, | | |
| 75742 | .unused, | | |
| 75743 | .unused, | | |
| 75744 | .unused, | | |
| 75745 | .unused, | | |
| 75746 | }, | | |
| 75747 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75748 | .clobbers = .{ .eflags = true }, | | |
| 75749 | .each = .{ .once = &.{ | | |
| 75750 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75751 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75752 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75753 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75754 | .{ ._, ._, .mov, .tmp3w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | | |
| 75755 | .{ ._, ._, .cmp, .tmp3w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, | | |
| 75756 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75757 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, | | |
| 75758 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, | | |
| 75759 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75760 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 75761 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75762 | } }, | | |
| 75763 | }, .{ | | |
| 75764 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 75765 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 75766 | .patterns = &.{ | | |
| 75767 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75768 | }, | | |
| 75769 | .extra_temps = .{ | | |
| 75770 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75771 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75772 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75773 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75774 | .unused, | | |
| 75775 | .unused, | | |
| 75776 | .unused, | | |
| 75777 | .unused, | | |
| 75778 | .unused, | | |
| 75779 | .unused, | | |
| 75780 | .unused, | | |
| 75781 | }, | | |
| 75782 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75783 | .clobbers = .{ .eflags = true }, | | |
| 75784 | .each = .{ .once = &.{ | | |
| 75785 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75786 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75787 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75788 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75789 | .{ ._, ._, .mov, .tmp3d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | | |
| 75790 | .{ ._, ._, .cmp, .tmp3d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, | | |
| 75791 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75792 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, | | |
| 75793 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, | | |
| 75794 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75795 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 75796 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75797 | } }, | | |
| 75798 | }, .{ | | |
| 75799 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 75800 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, | | |
| 75801 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 75802 | .patterns = &.{ | | |
| 75803 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75804 | }, | | |
| 75805 | .extra_temps = .{ | | |
| 75806 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75807 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75808 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75809 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 75810 | .unused, | | |
| 75811 | .unused, | | |
| 75812 | .unused, | | |
| 75813 | .unused, | | |
| 75814 | .unused, | | |
| 75815 | .unused, | | |
| 75816 | .unused, | | |
| 75817 | }, | | |
| 75818 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75819 | .clobbers = .{ .eflags = true }, | | |
| 75820 | .each = .{ .once = &.{ | | |
| 75821 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75822 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75823 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75824 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75825 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 75826 | .{ ._, ._, .cmp, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 75827 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75828 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, | | |
| 75829 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, | | |
| 75830 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75831 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 75832 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75833 | } }, | | |
| 75834 | }, .{ | | |
| 75835 | .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, | | |
| 75836 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 75837 | .patterns = &.{ | | |
| 75838 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75839 | }, | | |
| 75840 | .extra_temps = .{ | | |
| 75841 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 75842 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75843 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75844 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 75845 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 75846 | .unused, | | |
| 75847 | .unused, | | |
| 75848 | .unused, | | |
| 75849 | .unused, | | |
| 75850 | .unused, | | |
| 75851 | .unused, | | |
| 75852 | }, | | |
| 75853 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75854 | .clobbers = .{ .eflags = true }, | | |
| 75855 | .each = .{ .once = &.{ | | |
| 75856 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75857 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 75858 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75859 | .{ .@"0:", ._, .mov, .tmp2d, .sa(.src0p, .add_elem_limbs), ._, ._ }, | | |
| 75860 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 75861 | .{ .@"1:", ._, .mov, .tmp4p, .memi(.src0p, .tmp0), ._, ._ }, | | |
| 75862 | .{ ._, ._, .xor, .tmp4p, .memi(.src1p, .tmp0), ._, ._ }, | | |
| 75863 | .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ }, | | |
| 75864 | .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ }, | | |
| 75865 | .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ }, | | |
| 75866 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, | | |
| 75867 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75868 | .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ }, | | |
| 75869 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75870 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, | | |
| 75871 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, | | |
| 75872 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75873 | .{ ._, ._, .cmp, .tmp1b, .sa(.dst0, .add_len), ._, ._ }, | | |
| 75874 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 75875 | } }, | | |
| 75876 | }, .{ | | |
| 75877 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 75878 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 75879 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, | | |
| 75880 | .patterns = &.{ | | |
| 75881 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75882 | }, | | |
| 75883 | .extra_temps = .{ | | |
| 75884 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75885 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75886 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 75887 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 75888 | .unused, | | |
| 75889 | .unused, | | |
| 75890 | .unused, | | |
| 75891 | .unused, | | |
| 75892 | .unused, | | |
| 75893 | .unused, | | |
| 75894 | .unused, | | |
| 75895 | }, | | |
| 75896 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75897 | .clobbers = .{ .eflags = true }, | | |
| 75898 | .each = .{ .once = &.{ | | |
| 75899 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75900 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75901 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75902 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75903 | .{ ._, ._, .mov, .tmp3b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, | | |
| 75904 | .{ ._, ._, .cmp, .tmp3b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, | | |
| 75905 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75906 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, | | |
| 75907 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, | | |
| 75908 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75909 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 75910 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75911 | } }, | | |
| 75912 | }, .{ | | |
| 75913 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 75914 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 75915 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, | | |
| 75916 | .patterns = &.{ | | |
| 75917 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75918 | }, | | |
| 75919 | .extra_temps = .{ | | |
| 75920 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75921 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75922 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 75923 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | | |
| 75924 | .unused, | | |
| 75925 | .unused, | | |
| 75926 | .unused, | | |
| 75927 | .unused, | | |
| 75928 | .unused, | | |
| 75929 | .unused, | | |
| 75930 | .unused, | | |
| 75931 | }, | | |
| 75932 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75933 | .clobbers = .{ .eflags = true }, | | |
| 75934 | .each = .{ .once = &.{ | | |
| 75935 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75936 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75937 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75938 | .{ ._, ._, .mov, .tmp3w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | | |
| 75939 | .{ ._, ._, .cmp, .tmp3w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, | | |
| 75940 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75941 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, | | |
| 75942 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, | | |
| 75943 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75944 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 75945 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75946 | } }, | | |
| 75947 | }, .{ | | |
| 75948 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 75949 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 75950 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, | | |
| 75951 | .patterns = &.{ | | |
| 75952 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75953 | }, | | |
| 75954 | .extra_temps = .{ | | |
| 75955 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75956 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75957 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 75958 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 75959 | .unused, | | |
| 75960 | .unused, | | |
| 75961 | .unused, | | |
| 75962 | .unused, | | |
| 75963 | .unused, | | |
| 75964 | .unused, | | |
| 75965 | .unused, | | |
| 75966 | }, | | |
| 75967 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 75968 | .clobbers = .{ .eflags = true }, | | |
| 75969 | .each = .{ .once = &.{ | | |
| 75970 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 75971 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 75972 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 75973 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 75974 | .{ ._, ._, .mov, .tmp3d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | | |
| 75975 | .{ ._, ._, .cmp, .tmp3d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, | | |
| 75976 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 75977 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, | | |
| 75978 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, | | |
| 75979 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 75980 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 75981 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 75982 | } }, | | |
| 75983 | }, .{ | | |
| 75984 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 75985 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, | | |
| 75986 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, | | |
| 75987 | .patterns = &.{ | | |
| 75988 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 75989 | }, | | |
| 75990 | .extra_temps = .{ | | |
| 75991 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 75992 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 75993 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 75994 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 75995 | .unused, | | |
| 75996 | .unused, | | |
| 75997 | .unused, | | |
| 75998 | .unused, | | |
| 75999 | .unused, | | |
| 76000 | .unused, | | |
| 76001 | .unused, | | |
| 76002 | }, | | |
| 76003 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76004 | .clobbers = .{ .eflags = true }, | | |
| 76005 | .each = .{ .once = &.{ | | |
| 76006 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76007 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 76008 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 76009 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76010 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 76011 | .{ ._, ._, .cmp, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 76012 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 76013 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, | | |
| 76014 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, | | |
| 76015 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 76016 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 76017 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 76018 | } }, | | |
| 76019 | }, .{ | | |
| 76020 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 76021 | .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, | | |
| 76022 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, | | |
| 76023 | .patterns = &.{ | | |
| 76024 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76025 | }, | | |
| 76026 | .extra_temps = .{ | | |
| 76027 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76028 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76029 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76030 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76031 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76032 | .unused, | | |
| 76033 | .unused, | | |
| 76034 | .unused, | | |
| 76035 | .unused, | | |
| 76036 | .unused, | | |
| 76037 | .unused, | | |
| 76038 | }, | | |
| 76039 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76040 | .clobbers = .{ .eflags = true }, | | |
| 76041 | .each = .{ .once = &.{ | | |
| 76042 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76043 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76044 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, | | |
| 76045 | .{ .@"0:", ._, .mov, .tmp2d, .sa(.src0p, .add_elem_limbs), ._, ._ }, | | |
| 76046 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 76047 | .{ .@"1:", ._, .mov, .tmp4p, .memi(.src0p, .tmp0), ._, ._ }, | | |
| 76048 | .{ ._, ._, .xor, .tmp4p, .memi(.src1p, .tmp0), ._, ._ }, | | |
| 76049 | .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ }, | | |
| 76050 | .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ }, | | |
| 76051 | .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ }, | | |
| 76052 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, | | |
| 76053 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76054 | .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ }, | | |
| 76055 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, | | |
| 76056 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, | | |
| 76057 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, | | |
| 76058 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, | | |
| 76059 | .{ ._, ._, .cmp, .tmp1b, .sa(.dst0, .add_len), ._, ._ }, | | |
| 76060 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76061 | } }, | | |
| 76062 | }, .{ | | |
| 76063 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, | | |
| 76064 | .patterns = &.{ | | |
| 76065 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76066 | }, | | |
| 76067 | .extra_temps = .{ | | |
| 76068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 76069 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 76070 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76071 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76072 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 76073 | .unused, | | |
| 76074 | .unused, | | |
| 76075 | .unused, | | |
| 76076 | .unused, | | |
| 76077 | .unused, | | |
| 76078 | .unused, | | |
| 76079 | }, | | |
| 76080 | .dst_temps = .{ .mem, .unused }, | | |
| 76081 | .clobbers = .{ .eflags = true }, | | |
| 76082 | .each = .{ .once = &.{ | | |
| 76083 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 76084 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 76085 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76086 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 76087 | .{ ._, ._, .mov, .tmp4b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, | | |
| 76088 | .{ ._, ._, .cmp, .tmp4b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, | | |
| 76089 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 76090 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, | | |
| 76091 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, | | |
| 76092 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, | | |
| 76093 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76094 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 76095 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 76096 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 76097 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, | | |
| 76098 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76099 | .{ .@"1:", ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 76100 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 76101 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76102 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 76103 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 76104 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, | | |
| 76105 | } }, | | |
| 76106 | }, .{ | | |
| 76107 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, | | |
| 76108 | .patterns = &.{ | | |
| 76109 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76110 | }, | | |
| 76111 | .extra_temps = .{ | | |
| 76112 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 76113 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 76114 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76115 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76116 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | | |
| 76117 | .unused, | | |
| 76118 | .unused, | | |
| 76119 | .unused, | | |
| 76120 | .unused, | | |
| 76121 | .unused, | | |
| 76122 | .unused, | | |
| 76123 | }, | | |
| 76124 | .dst_temps = .{ .mem, .unused }, | | |
| 76125 | .clobbers = .{ .eflags = true }, | | |
| 76126 | .each = .{ .once = &.{ | | |
| 76127 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 76128 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 76129 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76130 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 76131 | .{ ._, ._, .mov, .tmp4w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | | |
| 76132 | .{ ._, ._, .cmp, .tmp4w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, | | |
| 76133 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 76134 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, | | |
| 76135 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, | | |
| 76136 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, | | |
| 76137 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76138 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 76139 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 76140 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 76141 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, | | |
| 76142 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76143 | .{ .@"1:", ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 76144 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 76145 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76146 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 76147 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 76148 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, | | |
| 76149 | } }, | | |
| 76150 | }, .{ | | |
| 76151 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, | | |
| 76152 | .patterns = &.{ | | |
| 76153 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76154 | }, | | |
| 76155 | .extra_temps = .{ | | |
| 76156 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 76157 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 76158 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76159 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76160 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76161 | .unused, | | |
| 76162 | .unused, | | |
| 76163 | .unused, | | |
| 76164 | .unused, | | |
| 76165 | .unused, | | |
| 76166 | .unused, | | |
| 76167 | }, | | |
| 76168 | .dst_temps = .{ .mem, .unused }, | | |
| 76169 | .clobbers = .{ .eflags = true }, | | |
| 76170 | .each = .{ .once = &.{ | | |
| 76171 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 76172 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 76173 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76174 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 76175 | .{ ._, ._, .mov, .tmp4d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | | |
| 76176 | .{ ._, ._, .cmp, .tmp4d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, | | |
| 76177 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 76178 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, | | |
| 76179 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, | | |
| 76180 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, | | |
| 76181 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76182 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 76183 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 76184 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 76185 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, | | |
| 76186 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76187 | .{ .@"1:", ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 76188 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 76189 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76190 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 76191 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 76192 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, | | |
| 76193 | } }, | | |
| 76194 | }, .{ | | |
| 76195 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 76196 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, | | |
| 76197 | .patterns = &.{ | | |
| 76198 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76199 | }, | | |
| 76200 | .extra_temps = .{ | | |
| 76201 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 76202 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 76203 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76204 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76205 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 76206 | .unused, | | |
| 76207 | .unused, | | |
| 76208 | .unused, | | |
| 76209 | .unused, | | |
| 76210 | .unused, | | |
| 76211 | .unused, | | |
| 76212 | }, | | |
| 76213 | .dst_temps = .{ .mem, .unused }, | | |
| 76214 | .clobbers = .{ .eflags = true }, | | |
| 76215 | .each = .{ .once = &.{ | | |
| 76216 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 76217 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 76218 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76219 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 76220 | .{ ._, ._, .mov, .tmp4q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | | |
| 76221 | .{ ._, ._, .cmp, .tmp4q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, | | |
| 76222 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 76223 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, | | |
| 76224 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, | | |
| 76225 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, | | |
| 76226 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76227 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 76228 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 76229 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 76230 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, | | |
| 76231 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 76232 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 76233 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 76234 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, | | |
| 76235 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 76236 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 76237 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, | | |
| 76238 | } }, | | |
| 76239 | }, .{ | | |
| 76240 | .required_features = .{ .f16c, null, null, null }, | | |
| 76241 | .src_constraints = .{ | | |
| 76242 | .{ .scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76243 | .{ .scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76244 | .any, | | |
| 76245 | }, | | |
| 76246 | .patterns = &.{ | | |
| 76247 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76248 | }, | | |
| 76249 | .extra_temps = .{ | | |
| 76250 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, | | |
| 76251 | .unused, | | |
| 76252 | .unused, | | |
| 76253 | .unused, | | |
| 76254 | .unused, | | |
| 76255 | .unused, | | |
| 76256 | .unused, | | |
| 76257 | .unused, | | |
| 76258 | .unused, | | |
| 76259 | .unused, | | |
| 76260 | .unused, | | |
| 76261 | }, | | |
| 76262 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76263 | .ref = .src0, | | |
| 76264 | .rc = .sse, | | |
| 76265 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76266 | } }, .unused }, | | |
| 76267 | .each = .{ .once = &.{ | | |
| 76268 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | | |
| 76269 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, | | |
| 76270 | .{ ._, .v_ss, .cmp, .dst0x, .dst0x, .tmp0d, .vp(switch (cc) { | | |
| 76271 | else => unreachable, | | |
| 76272 | .e => .eq, | | |
| 76273 | .ne => .neq, | | |
| 76274 | }) }, | | |
| 76275 | } }, | | |
| 76276 | }, .{ | | |
| 76277 | .required_features = .{ .f16c, null, null, null }, | | |
| 76278 | .src_constraints = .{ | | |
| 76279 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, | | |
| 76280 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, | | |
| 76281 | .any, | | |
| 76282 | }, | | |
| 76283 | .patterns = &.{ | | |
| 76284 | .{ .src = .{ .mem, .mem, .none } }, | | |
| 76285 | .{ .src = .{ .sse, .mem, .none } }, | | |
| 76286 | .{ .src = .{ .mem, .sse, .none } }, | | |
| 76287 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76288 | }, | | |
| 76289 | .extra_temps = .{ | | |
| 76290 | .{ .kind = .{ .rc = .sse } }, | | |
| 76291 | .unused, | | |
| 76292 | .unused, | | |
| 76293 | .unused, | | |
| 76294 | .unused, | | |
| 76295 | .unused, | | |
| 76296 | .unused, | | |
| 76297 | .unused, | | |
| 76298 | .unused, | | |
| 76299 | .unused, | | |
| 76300 | .unused, | | |
| 76301 | }, | | |
| 76302 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76303 | .ref = .src0, | | |
| 76304 | .rc = .sse, | | |
| 76305 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76306 | } }, .unused }, | | |
| 76307 | .each = .{ .once = &.{ | | |
| 76308 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | | |
| 76309 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, | | |
| 76310 | .{ ._, .v_ps, .cmp, .dst0x, .dst0x, .tmp0x, .vp(switch (cc) { | | |
| 76311 | else => unreachable, | | |
| 76312 | .e => .eq, | | |
| 76313 | .ne => .neq, | | |
| 76314 | }) }, | | |
| 76315 | } }, | | |
| 76316 | }, .{ | | |
| 76317 | .required_features = .{ .f16c, null, null, null }, | | |
| 76318 | .src_constraints = .{ | | |
| 76319 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 76320 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 76321 | .any, | | |
| 76322 | }, | | |
| 76323 | .patterns = &.{ | | |
| 76324 | .{ .src = .{ .mem, .mem, .none } }, | | |
| 76325 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 76326 | .{ .src = .{ .mem, .to_sse, .none } }, | | |
| 76327 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76328 | }, | | |
| 76329 | .extra_temps = .{ | | |
| 76330 | .{ .kind = .{ .rc = .sse } }, | | |
| 76331 | .unused, | | |
| 76332 | .unused, | | |
| 76333 | .unused, | | |
| 76334 | .unused, | | |
| 76335 | .unused, | | |
| 76336 | .unused, | | |
| 76337 | .unused, | | |
| 76338 | .unused, | | |
| 76339 | .unused, | | |
| 76340 | .unused, | | |
| 76341 | }, | | |
| 76342 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76343 | .ref = .src0, | | |
| 76344 | .rc = .sse, | | |
| 76345 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76346 | } }, .unused }, | | |
| 76347 | .each = .{ .once = &.{ | | |
| 76348 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, | | |
| 76349 | .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, | | |
| 76350 | .{ ._, .v_ps, .cmp, .dst0y, .dst0y, .tmp0y, .vp(switch (cc) { | | |
| 76351 | else => unreachable, | | |
| 76352 | .e => .eq, | | |
| 76353 | .ne => .neq, | | |
| 76354 | }) }, | | |
| 76355 | } }, | | |
| 76356 | }, .{ | | |
| 76357 | .required_features = .{ .avx, null, null, null }, | | |
| 76358 | .src_constraints = .{ | | |
| 76359 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 76360 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 76361 | .any, | | |
| 76362 | }, | | |
| 76363 | .patterns = &.{ | | |
| 76364 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 76365 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76366 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76367 | }, | | |
| 76368 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76369 | .ref = .src0, | | |
| 76370 | .rc = .sse, | | |
| 76371 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76372 | } }, .unused }, | | |
| 76373 | .each = .{ .once = &.{ | | |
| 76374 | .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { | | |
| 76375 | else => unreachable, | | |
| 76376 | .e => .eq, | | |
| 76377 | .ne => .neq, | | |
| 76378 | }) }, | | |
| 76379 | } }, | | |
| 76380 | }, .{ | | |
| 76381 | .required_features = .{ .sse, null, null, null }, | | |
| 76382 | .src_constraints = .{ | | |
| 76383 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 76384 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, | | |
| 76385 | .any, | | |
| 76386 | }, | | |
| 76387 | .patterns = &.{ | | |
| 76388 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 76389 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76390 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 76391 | }, | | |
| 76392 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 76393 | .ref = .src0, | | |
| 76394 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76395 | } }, .unused }, | | |
| 76396 | .each = .{ .once = &.{ | | |
| 76397 | .{ ._, ._ss, .cmp, .dst0x, .src1d, .sp(switch (cc) { | | |
| 76398 | else => unreachable, | | |
| 76399 | .e => .eq, | | |
| 76400 | .ne => .neq, | | |
| 76401 | }), ._ }, | | |
| 76402 | } }, | | |
| 76403 | }, .{ | | |
| 76404 | .required_features = .{ .avx, null, null, null }, | | |
| 76405 | .src_constraints = .{ | | |
| 76406 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 76407 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 76408 | .any, | | |
| 76409 | }, | | |
| 76410 | .patterns = &.{ | | |
| 76411 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 76412 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76413 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76414 | }, | | |
| 76415 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76416 | .ref = .src0, | | |
| 76417 | .rc = .sse, | | |
| 76418 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76419 | } }, .unused }, | | |
| 76420 | .each = .{ .once = &.{ | | |
| 76421 | .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { | | |
| 76422 | else => unreachable, | | |
| 76423 | .e => .eq, | | |
| 76424 | .ne => .neq, | | |
| 76425 | }) }, | | |
| 76426 | } }, | | |
| 76427 | }, .{ | | |
| 76428 | .required_features = .{ .sse, null, null, null }, | | |
| 76429 | .src_constraints = .{ | | |
| 76430 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 76431 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 76432 | .any, | | |
| 76433 | }, | | |
| 76434 | .patterns = &.{ | | |
| 76435 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 76436 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76437 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 76438 | }, | | |
| 76439 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 76440 | .ref = .src0, | | |
| 76441 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76442 | } }, .unused }, | | |
| 76443 | .each = .{ .once = &.{ | | |
| 76444 | .{ ._, ._ps, .cmp, .dst0x, .src1x, .sp(switch (cc) { | | |
| 76445 | else => unreachable, | | |
| 76446 | .e => .eq, | | |
| 76447 | .ne => .neq, | | |
| 76448 | }), ._ }, | | |
| 76449 | } }, | | |
| 76450 | }, .{ | | |
| 76451 | .required_features = .{ .avx, null, null, null }, | | |
| 76452 | .src_constraints = .{ | | |
| 76453 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 76454 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 76455 | .any, | | |
| 76456 | }, | | |
| 76457 | .patterns = &.{ | | |
| 76458 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 76459 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76460 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76461 | }, | | |
| 76462 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76463 | .ref = .src0, | | |
| 76464 | .rc = .sse, | | |
| 76465 | .info = .{ .kind = .all, .scalar = .dword }, | | |
| 76466 | } }, .unused }, | | |
| 76467 | .each = .{ .once = &.{ | | |
| 76468 | .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { | | |
| 76469 | else => unreachable, | | |
| 76470 | .e => .eq, | | |
| 76471 | .ne => .neq, | | |
| 76472 | }) }, | | |
| 76473 | } }, | | |
| 76474 | }, .{ | | |
| 76475 | .required_features = .{ .avx, null, null, null }, | | |
| 76476 | .src_constraints = .{ | | |
| 76477 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 76478 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 76479 | .any, | | |
| 76480 | }, | | |
| 76481 | .patterns = &.{ | | |
| 76482 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 76483 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76484 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76485 | }, | | |
| 76486 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76487 | .ref = .src0, | | |
| 76488 | .rc = .sse, | | |
| 76489 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 76490 | } }, .unused }, | | |
| 76491 | .each = .{ .once = &.{ | | |
| 76492 | .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { | | |
| 76493 | else => unreachable, | | |
| 76494 | .e => .eq, | | |
| 76495 | .ne => .neq, | | |
| 76496 | }) }, | | |
| 76497 | } }, | | |
| 76498 | }, .{ | | |
| 76499 | .required_features = .{ .sse2, null, null, null }, | | |
| 76500 | .src_constraints = .{ | | |
| 76501 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 76502 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 76503 | .any, | | |
| 76504 | }, | | |
| 76505 | .patterns = &.{ | | |
| 76506 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 76507 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76508 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 76509 | }, | | |
| 76510 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 76511 | .ref = .src0, | | |
| 76512 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 76513 | } }, .unused }, | | |
| 76514 | .each = .{ .once = &.{ | | |
| 76515 | .{ ._, ._sd, .cmp, .dst0x, .src1q, .sp(switch (cc) { | | |
| 76516 | else => unreachable, | | |
| 76517 | .e => .eq, | | |
| 76518 | .ne => .neq, | | |
| 76519 | }), ._ }, | | |
| 76520 | } }, | | |
| 76521 | }, .{ | | |
| 76522 | .required_features = .{ .avx, null, null, null }, | | |
| 76523 | .src_constraints = .{ | | |
| 76524 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 76525 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 76526 | .any, | | |
| 76527 | }, | | |
| 76528 | .patterns = &.{ | | |
| 76529 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 76530 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76531 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76532 | }, | | |
| 76533 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76534 | .ref = .src0, | | |
| 76535 | .rc = .sse, | | |
| 76536 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 76537 | } }, .unused }, | | |
| 76538 | .each = .{ .once = &.{ | | |
| 76539 | .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { | | |
| 76540 | else => unreachable, | | |
| 76541 | .e => .eq, | | |
| 76542 | .ne => .neq, | | |
| 76543 | }) }, | | |
| 76544 | } }, | | |
| 76545 | }, .{ | | |
| 76546 | .required_features = .{ .sse2, null, null, null }, | | |
| 76547 | .src_constraints = .{ | | |
| 76548 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 76549 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 76550 | .any, | | |
| 76551 | }, | | |
| 76552 | .patterns = &.{ | | |
| 76553 | .{ .src = .{ .to_mut_sse, .mem, .none } }, | | |
| 76554 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76555 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, | | |
| 76556 | }, | | |
| 76557 | .dst_temps = .{ .{ .ref_mask = .{ | | |
| 76558 | .ref = .src0, | | |
| 76559 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 76560 | } }, .unused }, | | |
| 76561 | .each = .{ .once = &.{ | | |
| 76562 | .{ ._, ._pd, .cmp, .dst0x, .src1x, .sp(switch (cc) { | | |
| 76563 | else => unreachable, | | |
| 76564 | .e => .eq, | | |
| 76565 | .ne => .neq, | | |
| 76566 | }), ._ }, | | |
| 76567 | } }, | | |
| 76568 | }, .{ | | |
| 76569 | .required_features = .{ .avx, null, null, null }, | | |
| 76570 | .src_constraints = .{ | | |
| 76571 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 76572 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 76573 | .any, | | |
| 76574 | }, | | |
| 76575 | .patterns = &.{ | | |
| 76576 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 76577 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 76578 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 76579 | }, | | |
| 76580 | .dst_temps = .{ .{ .mut_rc_mask = .{ | | |
| 76581 | .ref = .src0, | | |
| 76582 | .rc = .sse, | | |
| 76583 | .info = .{ .kind = .all, .scalar = .qword }, | | |
| 76584 | } }, .unused }, | | |
| 76585 | .each = .{ .once = &.{ | | |
| 76586 | .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { | | |
| 76587 | else => unreachable, | | |
| 76588 | .e => .eq, | | |
| 76589 | .ne => .neq, | | |
| 76590 | }) }, | | |
| 76591 | } }, | | |
| 76592 | }, .{ | | |
| 76593 | .required_features = .{ .f16c, .slow_incdec, null, null }, | | |
| 76594 | .src_constraints = .{ | | |
| 76595 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 76596 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 76597 | .any, | | |
| 76598 | }, | | |
| 76599 | .patterns = &.{ | | |
| 76600 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76601 | }, | | |
| 76602 | .extra_temps = .{ | | |
| 76603 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 76604 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76605 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 76606 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 76607 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 76608 | .unused, | | |
| 76609 | .unused, | | |
| 76610 | .unused, | | |
| 76611 | .unused, | | |
| 76612 | .unused, | | |
| 76613 | .unused, | | |
| 76614 | }, | | |
| 76615 | .dst_temps = .{ .mem, .unused }, | | |
| 76616 | .clobbers = .{ .eflags = true }, | | |
| 76617 | .each = .{ .once = &.{ | | |
| 76618 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 76619 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 76620 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 76621 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 76622 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { | | |
| 76623 | else => unreachable, | | |
| 76624 | .e => .eq, | | |
| 76625 | .ne => .neq, | | |
| 76626 | }) }, | | |
| 76627 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 76628 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 76629 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 76630 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 76631 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 76632 | } }, | | |
| 76633 | }, .{ | | |
| 76634 | .required_features = .{ .f16c, null, null, null }, | | |
| 76635 | .src_constraints = .{ | | |
| 76636 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 76637 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, | | |
| 76638 | .any, | | |
| 76639 | }, | | |
| 76640 | .patterns = &.{ | | |
| 76641 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76642 | }, | | |
| 76643 | .extra_temps = .{ | | |
| 76644 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 76645 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 76646 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 76647 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 76648 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 76649 | .unused, | | |
| 76650 | .unused, | | |
| 76651 | .unused, | | |
| 76652 | .unused, | | |
| 76653 | .unused, | | |
| 76654 | .unused, | | |
| 76655 | }, | | |
| 76656 | .dst_temps = .{ .mem, .unused }, | | |
| 76657 | .clobbers = .{ .eflags = true }, | | |
| 76658 | .each = .{ .once = &.{ | | |
| 76659 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 76660 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 76661 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 76662 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 76663 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { | | |
| 76664 | else => unreachable, | | |
| 76665 | .e => .eq, | | |
| 76666 | .ne => .neq, | | |
| 76667 | }) }, | | |
| 76668 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 76669 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 76670 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | | |
| 76671 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 76672 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 76673 | } }, | | |
| 76674 | }, .{ | | |
| 76675 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 76676 | .src_constraints = .{ | | |
| 76677 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76678 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76679 | .any, | | |
| 76680 | }, | | |
| 76681 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 76682 | .patterns = &.{ | | |
| 76683 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76684 | }, | | |
| 76685 | .call_frame = .{ .alignment = .@"16" }, | | |
| 76686 | .extra_temps = .{ | | |
| 76687 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76688 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 76689 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 76690 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 76691 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 76692 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76693 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 76694 | .unused, | | |
| 76695 | .unused, | | |
| 76696 | .unused, | | |
| 76697 | .unused, | | |
| 76698 | }, | | |
| 76699 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76700 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 76701 | .each = .{ .once = &.{ | | |
| 76702 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76703 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76704 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, | | |
| 76705 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 76706 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 76707 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 76708 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 76709 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 76710 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 76711 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 76712 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 76713 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 76714 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, | | |
| 76715 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 76716 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76717 | } }, | | |
| 76718 | }, .{ | | |
| 76719 | .required_features = .{ .avx, null, null, null }, | | |
| 76720 | .src_constraints = .{ | | |
| 76721 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76722 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76723 | .any, | | |
| 76724 | }, | | |
| 76725 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 76726 | .patterns = &.{ | | |
| 76727 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76728 | }, | | |
| 76729 | .call_frame = .{ .alignment = .@"16" }, | | |
| 76730 | .extra_temps = .{ | | |
| 76731 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76732 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 76733 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 76734 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 76735 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 76736 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76737 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 76738 | .unused, | | |
| 76739 | .unused, | | |
| 76740 | .unused, | | |
| 76741 | .unused, | | |
| 76742 | }, | | |
| 76743 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76744 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 76745 | .each = .{ .once = &.{ | | |
| 76746 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76747 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76748 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, | | |
| 76749 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 76750 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 76751 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 76752 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 76753 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 76754 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 76755 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 76756 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 76757 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 76758 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 76759 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 76760 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76761 | } }, | | |
| 76762 | }, .{ | | |
| 76763 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 76764 | .src_constraints = .{ | | |
| 76765 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76766 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76767 | .any, | | |
| 76768 | }, | | |
| 76769 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 76770 | .patterns = &.{ | | |
| 76771 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76772 | }, | | |
| 76773 | .call_frame = .{ .alignment = .@"16" }, | | |
| 76774 | .extra_temps = .{ | | |
| 76775 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76776 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 76777 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 76778 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 76779 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 76780 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76781 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 76782 | .unused, | | |
| 76783 | .unused, | | |
| 76784 | .unused, | | |
| 76785 | .unused, | | |
| 76786 | }, | | |
| 76787 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76788 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 76789 | .each = .{ .once = &.{ | | |
| 76790 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76791 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76792 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | | |
| 76793 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 76794 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 76795 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 76796 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 76797 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 76798 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 76799 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 76800 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 76801 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 76802 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 76803 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, | | |
| 76804 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 76805 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76806 | } }, | | |
| 76807 | }, .{ | | |
| 76808 | .required_features = .{ .sse2, null, null, null }, | | |
| 76809 | .src_constraints = .{ | | |
| 76810 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76811 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76812 | .any, | | |
| 76813 | }, | | |
| 76814 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 76815 | .patterns = &.{ | | |
| 76816 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76817 | }, | | |
| 76818 | .call_frame = .{ .alignment = .@"16" }, | | |
| 76819 | .extra_temps = .{ | | |
| 76820 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76821 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 76822 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 76823 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 76824 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 76825 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76826 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 76827 | .unused, | | |
| 76828 | .unused, | | |
| 76829 | .unused, | | |
| 76830 | .unused, | | |
| 76831 | }, | | |
| 76832 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76833 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 76834 | .each = .{ .once = &.{ | | |
| 76835 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76836 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76837 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | | |
| 76838 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 76839 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 76840 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 76841 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 76842 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 76843 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 76844 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 76845 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 76846 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 76847 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 76848 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 76849 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 76850 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76851 | } }, | | |
| 76852 | }, .{ | | |
| 76853 | .required_features = .{ .sse, .slow_incdec, null, null }, | | |
| 76854 | .src_constraints = .{ | | |
| 76855 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76856 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76857 | .any, | | |
| 76858 | }, | | |
| 76859 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 76860 | .patterns = &.{ | | |
| 76861 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76862 | }, | | |
| 76863 | .call_frame = .{ .alignment = .@"16" }, | | |
| 76864 | .extra_temps = .{ | | |
| 76865 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76866 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 76867 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 76868 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 76869 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 76870 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76871 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 76872 | .{ .type = .f32, .kind = .mem }, | | |
| 76873 | .unused, | | |
| 76874 | .unused, | | |
| 76875 | .unused, | | |
| 76876 | }, | | |
| 76877 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76878 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 76879 | .each = .{ .once = &.{ | | |
| 76880 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76881 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76882 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 76883 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 76884 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, | | |
| 76885 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 76886 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 76887 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, | | |
| 76888 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 76889 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 76890 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 76891 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 76892 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 76893 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 76894 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 76895 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, | | |
| 76896 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 76897 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76898 | } }, | | |
| 76899 | }, .{ | | |
| 76900 | .required_features = .{ .sse, null, null, null }, | | |
| 76901 | .src_constraints = .{ | | |
| 76902 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76903 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76904 | .any, | | |
| 76905 | }, | | |
| 76906 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 76907 | .patterns = &.{ | | |
| 76908 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76909 | }, | | |
| 76910 | .call_frame = .{ .alignment = .@"16" }, | | |
| 76911 | .extra_temps = .{ | | |
| 76912 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76913 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 76914 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 76915 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 76916 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 76917 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76918 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 76919 | .{ .type = .f32, .kind = .mem }, | | |
| 76920 | .unused, | | |
| 76921 | .unused, | | |
| 76922 | .unused, | | |
| 76923 | }, | | |
| 76924 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 76925 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 76926 | .each = .{ .once = &.{ | | |
| 76927 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 76928 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76929 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 76930 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 76931 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, | | |
| 76932 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 76933 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, | | |
| 76934 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, | | |
| 76935 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 76936 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | | |
| 76937 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, | | |
| 76938 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, | | |
| 76939 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 76940 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, | | |
| 76941 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, | | |
| 76942 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 76943 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 76944 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76945 | } }, | | |
| 76946 | }, .{ | | |
| 76947 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, | | |
| 76948 | .src_constraints = .{ | | |
| 76949 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76950 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 76951 | .any, | | |
| 76952 | }, | | |
| 76953 | .patterns = &.{ | | |
| 76954 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 76955 | }, | | |
| 76956 | .call_frame = .{ .alignment = .@"16" }, | | |
| 76957 | .extra_temps = .{ | | |
| 76958 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 76959 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 76960 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 76961 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 76962 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 76963 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 76964 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 76965 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 76966 | .unused, | | |
| 76967 | .unused, | | |
| 76968 | .unused, | | |
| 76969 | }, | | |
| 76970 | .dst_temps = .{ .mem, .unused }, | | |
| 76971 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 76972 | .each = .{ .once = &.{ | | |
| 76973 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 76974 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 76975 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, | | |
| 76976 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 76977 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 76978 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 76979 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 76980 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 76981 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 76982 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 76983 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 76984 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 76985 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, | | |
| 76986 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 76987 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 76988 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 76989 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 76990 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 76991 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 76992 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 76993 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 76994 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 76995 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 76996 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 76997 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 76998 | } }, | | |
| 76999 | }, .{ | | |
| 77000 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 77001 | .src_constraints = .{ | | |
| 77002 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77003 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77004 | .any, | | |
| 77005 | }, | | |
| 77006 | .patterns = &.{ | | |
| 77007 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77008 | }, | | |
| 77009 | .call_frame = .{ .alignment = .@"16" }, | | |
| 77010 | .extra_temps = .{ | | |
| 77011 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77012 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 77013 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 77014 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 77015 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 77016 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 77017 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 77018 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 77019 | .unused, | | |
| 77020 | .unused, | | |
| 77021 | .unused, | | |
| 77022 | }, | | |
| 77023 | .dst_temps = .{ .mem, .unused }, | | |
| 77024 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 77025 | .each = .{ .once = &.{ | | |
| 77026 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 77027 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77028 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, | | |
| 77029 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, | | |
| 77030 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, | | |
| 77031 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 77032 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 77033 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 77034 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 77035 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 77036 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 77037 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 77038 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 77039 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77040 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77041 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 77042 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 77043 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 77044 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77045 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 77046 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 77047 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77048 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77049 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 77050 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 77051 | } }, | | |
| 77052 | }, .{ | | |
| 77053 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, | | |
| 77054 | .src_constraints = .{ | | |
| 77055 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77056 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77057 | .any, | | |
| 77058 | }, | | |
| 77059 | .patterns = &.{ | | |
| 77060 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77061 | }, | | |
| 77062 | .call_frame = .{ .alignment = .@"16" }, | | |
| 77063 | .extra_temps = .{ | | |
| 77064 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77065 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 77066 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 77067 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 77068 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 77069 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 77070 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 77071 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 77072 | .unused, | | |
| 77073 | .unused, | | |
| 77074 | .unused, | | |
| 77075 | }, | | |
| 77076 | .dst_temps = .{ .mem, .unused }, | | |
| 77077 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 77078 | .each = .{ .once = &.{ | | |
| 77079 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 77080 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77081 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 77082 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 77083 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, | | |
| 77084 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 77085 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 77086 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 77087 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 77088 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 77089 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 77090 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 77091 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 77092 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, | | |
| 77093 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77094 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77095 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 77096 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 77097 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 77098 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77099 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 77100 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 77101 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77102 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77103 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 77104 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 77105 | } }, | | |
| 77106 | }, .{ | | |
| 77107 | .required_features = .{ .@"64bit", .sse2, null, null }, | | |
| 77108 | .src_constraints = .{ | | |
| 77109 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77110 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77111 | .any, | | |
| 77112 | }, | | |
| 77113 | .patterns = &.{ | | |
| 77114 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77115 | }, | | |
| 77116 | .call_frame = .{ .alignment = .@"16" }, | | |
| 77117 | .extra_temps = .{ | | |
| 77118 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77119 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 77120 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 77121 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 77122 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 77123 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 77124 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 77125 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 77126 | .unused, | | |
| 77127 | .unused, | | |
| 77128 | .unused, | | |
| 77129 | }, | | |
| 77130 | .dst_temps = .{ .mem, .unused }, | | |
| 77131 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 77132 | .each = .{ .once = &.{ | | |
| 77133 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 77134 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77135 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, | | |
| 77136 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 77137 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, | | |
| 77138 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, | | |
| 77139 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 77140 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 77141 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 77142 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 77143 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 77144 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 77145 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 77146 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 77147 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77148 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77149 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 77150 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 77151 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 77152 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77153 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 77154 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 77155 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77156 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77157 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 77158 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 77159 | } }, | | |
| 77160 | }, .{ | | |
| 77161 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, | | |
| 77162 | .src_constraints = .{ | | |
| 77163 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77164 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77165 | .any, | | |
| 77166 | }, | | |
| 77167 | .patterns = &.{ | | |
| 77168 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77169 | }, | | |
| 77170 | .call_frame = .{ .alignment = .@"16" }, | | |
| 77171 | .extra_temps = .{ | | |
| 77172 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77173 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 77174 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 77175 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 77176 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 77177 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 77178 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 77179 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 77180 | .{ .type = .f32, .kind = .mem }, | | |
| 77181 | .unused, | | |
| 77182 | .unused, | | |
| 77183 | }, | | |
| 77184 | .dst_temps = .{ .mem, .unused }, | | |
| 77185 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 77186 | .each = .{ .once = &.{ | | |
| 77187 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 77188 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77189 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 77190 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 77191 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, | | |
| 77192 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 77193 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 77194 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, | | |
| 77195 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 77196 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 77197 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 77198 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 77199 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 77200 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 77201 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 77202 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, | | |
| 77203 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77204 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77205 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 77206 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 77207 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 77208 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77209 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 77210 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 77211 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77212 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77213 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 77214 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 77215 | } }, | | |
| 77216 | }, .{ | | |
| 77217 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 77218 | .src_constraints = .{ | | |
| 77219 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77220 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, | | |
| 77221 | .any, | | |
| 77222 | }, | | |
| 77223 | .patterns = &.{ | | |
| 77224 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77225 | }, | | |
| 77226 | .call_frame = .{ .alignment = .@"16" }, | | |
| 77227 | .extra_temps = .{ | | |
| 77228 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77229 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 77230 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 77231 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, | | |
| 77232 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 77233 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 77234 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 77235 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 77236 | .{ .type = .f32, .kind = .mem }, | | |
| 77237 | .unused, | | |
| 77238 | .unused, | | |
| 77239 | }, | | |
| 77240 | .dst_temps = .{ .mem, .unused }, | | |
| 77241 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 77242 | .each = .{ .once = &.{ | | |
| 77243 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, | | |
| 77244 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77245 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, | | |
| 77246 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 77247 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, | | |
| 77248 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, | | |
| 77249 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, | | |
| 77250 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, | | |
| 77251 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 77252 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 77253 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 77254 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 77255 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, | | |
| 77256 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, | | |
| 77257 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, | | |
| 77258 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, | | |
| 77259 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77260 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77261 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, | | |
| 77262 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, | | |
| 77263 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, | | |
| 77264 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77265 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 77266 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, | | |
| 77267 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, | | |
| 77268 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77269 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | | |
| 77270 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, | | |
| 77271 | } }, | | |
| 77272 | }, .{ | | |
| 77273 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 77274 | .src_constraints = .{ | | |
| 77275 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77276 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77277 | .any, | | |
| 77278 | }, | | |
| 77279 | .patterns = &.{ | | |
| 77280 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77281 | }, | | |
| 77282 | .extra_temps = .{ | | |
| 77283 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77284 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 77285 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 77286 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77287 | .unused, | | |
| 77288 | .unused, | | |
| 77289 | .unused, | | |
| 77290 | .unused, | | |
| 77291 | .unused, | | |
| 77292 | .unused, | | |
| 77293 | .unused, | | |
| 77294 | }, | | |
| 77295 | .dst_temps = .{ .mem, .unused }, | | |
| 77296 | .clobbers = .{ .eflags = true }, | | |
| 77297 | .each = .{ .once = &.{ | | |
| 77298 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77299 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 77300 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 77301 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 77302 | else => unreachable, | | |
| 77303 | .e => .eq, | | |
| 77304 | .ne => .neq, | | |
| 77305 | }) }, | | |
| 77306 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, | | |
| 77307 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 77308 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 77309 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 77310 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77311 | } }, | | |
| 77312 | }, .{ | | |
| 77313 | .required_features = .{ .avx, null, null, null }, | | |
| 77314 | .src_constraints = .{ | | |
| 77315 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77316 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77317 | .any, | | |
| 77318 | }, | | |
| 77319 | .patterns = &.{ | | |
| 77320 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77321 | }, | | |
| 77322 | .extra_temps = .{ | | |
| 77323 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77324 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 77325 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, | | |
| 77326 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77327 | .unused, | | |
| 77328 | .unused, | | |
| 77329 | .unused, | | |
| 77330 | .unused, | | |
| 77331 | .unused, | | |
| 77332 | .unused, | | |
| 77333 | .unused, | | |
| 77334 | }, | | |
| 77335 | .dst_temps = .{ .mem, .unused }, | | |
| 77336 | .clobbers = .{ .eflags = true }, | | |
| 77337 | .each = .{ .once = &.{ | | |
| 77338 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77339 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 77340 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 77341 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 77342 | else => unreachable, | | |
| 77343 | .e => .eq, | | |
| 77344 | .ne => .neq, | | |
| 77345 | }) }, | | |
| 77346 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, | | |
| 77347 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 77348 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, | | |
| 77349 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 77350 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77351 | } }, | | |
| 77352 | }, .{ | | |
| 77353 | .required_features = .{ .sse2, null, null, null }, | | |
| 77354 | .src_constraints = .{ | | |
| 77355 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77356 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77357 | .any, | | |
| 77358 | }, | | |
| 77359 | .patterns = &.{ | | |
| 77360 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77361 | }, | | |
| 77362 | .extra_temps = .{ | | |
| 77363 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77364 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 77365 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 77366 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 77367 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77368 | .unused, | | |
| 77369 | .unused, | | |
| 77370 | .unused, | | |
| 77371 | .unused, | | |
| 77372 | .unused, | | |
| 77373 | .unused, | | |
| 77374 | }, | | |
| 77375 | .dst_temps = .{ .mem, .unused }, | | |
| 77376 | .clobbers = .{ .eflags = true }, | | |
| 77377 | .each = .{ .once = &.{ | | |
| 77378 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77379 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 77380 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 77381 | .{ ._, ._ps, .mova, .tmp3x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, | | |
| 77382 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 77383 | else => unreachable, | | |
| 77384 | .e => .eq, | | |
| 77385 | .ne => .neq, | | |
| 77386 | }), ._ }, | | |
| 77387 | .{ ._, ._ps, .cmp, .tmp3x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { | | |
| 77388 | else => unreachable, | | |
| 77389 | .e => .eq, | | |
| 77390 | .ne => .neq, | | |
| 77391 | }), ._ }, | | |
| 77392 | .{ ._, .p_w, .ackssd, .tmp2x, .tmp3x, ._, ._ }, | | |
| 77393 | .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ }, | | |
| 77394 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | | |
| 77395 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 77396 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 77397 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 77398 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77399 | } }, | | |
| 77400 | }, .{ | | |
| 77401 | .required_features = .{ .sse, null, null, null }, | | |
| 77402 | .src_constraints = .{ | | |
| 77403 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77404 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, | | |
| 77405 | .any, | | |
| 77406 | }, | | |
| 77407 | .patterns = &.{ | | |
| 77408 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77409 | }, | | |
| 77410 | .extra_temps = .{ | | |
| 77411 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77412 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 77413 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 77414 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77415 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77416 | .unused, | | |
| 77417 | .unused, | | |
| 77418 | .unused, | | |
| 77419 | .unused, | | |
| 77420 | .unused, | | |
| 77421 | .unused, | | |
| 77422 | }, | | |
| 77423 | .dst_temps = .{ .mem, .unused }, | | |
| 77424 | .clobbers = .{ .eflags = true }, | | |
| 77425 | .each = .{ .once = &.{ | | |
| 77426 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77427 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 77428 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 77429 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 77430 | else => unreachable, | | |
| 77431 | .e => .eq, | | |
| 77432 | .ne => .neq, | | |
| 77433 | }), ._ }, | | |
| 77434 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, | | |
| 77435 | .{ ._, ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, | | |
| 77436 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { | | |
| 77437 | else => unreachable, | | |
| 77438 | .e => .eq, | | |
| 77439 | .ne => .neq, | | |
| 77440 | }), ._ }, | | |
| 77441 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | | |
| 77442 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, | | |
| 77443 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, | | |
| 77444 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 77445 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 77446 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 77447 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77448 | } }, | | |
| 77449 | }, .{ | | |
| 77450 | .required_features = .{ .sse, null, null, null }, | | |
| 77451 | .src_constraints = .{ | | |
| 77452 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 77453 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, | | |
| 77454 | .any, | | |
| 77455 | }, | | |
| 77456 | .patterns = &.{ | | |
| 77457 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77458 | }, | | |
| 77459 | .extra_temps = .{ | | |
| 77460 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77461 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 77462 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, | | |
| 77463 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77464 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77465 | .unused, | | |
| 77466 | .unused, | | |
| 77467 | .unused, | | |
| 77468 | .unused, | | |
| 77469 | .unused, | | |
| 77470 | .unused, | | |
| 77471 | }, | | |
| 77472 | .dst_temps = .{ .mem, .unused }, | | |
| 77473 | .clobbers = .{ .eflags = true }, | | |
| 77474 | .each = .{ .once = &.{ | | |
| 77475 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77476 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 77477 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 77478 | .{ .@"0:", ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, -16), ._, ._ }, | | |
| 77479 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, -16), .sp(switch (cc) { | | |
| 77480 | else => unreachable, | | |
| 77481 | .e => .eq, | | |
| 77482 | .ne => .neq, | | |
| 77483 | }), ._ }, | | |
| 77484 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, | | |
| 77485 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, | | |
| 77486 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, | | |
| 77487 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 77488 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 77489 | .{ .@"1:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 77490 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 77491 | else => unreachable, | | |
| 77492 | .e => .eq, | | |
| 77493 | .ne => .neq, | | |
| 77494 | }), ._ }, | | |
| 77495 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, | | |
| 77496 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 77497 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77498 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, | | |
| 77499 | } }, | | |
| 77500 | }, .{ | | |
| 77501 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 77502 | .src_constraints = .{ | | |
| 77503 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 77504 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 77505 | .any, | | |
| 77506 | }, | | |
| 77507 | .patterns = &.{ | | |
| 77508 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77509 | }, | | |
| 77510 | .extra_temps = .{ | | |
| 77511 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77512 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 77513 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 77514 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 77515 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77516 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77517 | .unused, | | |
| 77518 | .unused, | | |
| 77519 | .unused, | | |
| 77520 | .unused, | | |
| 77521 | .unused, | | |
| 77522 | }, | | |
| 77523 | .dst_temps = .{ .mem, .unused }, | | |
| 77524 | .clobbers = .{ .eflags = true }, | | |
| 77525 | .each = .{ .once = &.{ | | |
| 77526 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77527 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 77528 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 77529 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, | | |
| 77530 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 77531 | else => unreachable, | | |
| 77532 | .e => .eq, | | |
| 77533 | .ne => .neq, | | |
| 77534 | }) }, | | |
| 77535 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { | | |
| 77536 | else => unreachable, | | |
| 77537 | .e => .eq, | | |
| 77538 | .ne => .neq, | | |
| 77539 | }) }, | | |
| 77540 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 77541 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, | | |
| 77542 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | | |
| 77543 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, | | |
| 77544 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 77545 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, | | |
| 77546 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, | | |
| 77547 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77548 | } }, | | |
| 77549 | }, .{ | | |
| 77550 | .required_features = .{ .avx, null, null, null }, | | |
| 77551 | .src_constraints = .{ | | |
| 77552 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 77553 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, | | |
| 77554 | .any, | | |
| 77555 | }, | | |
| 77556 | .patterns = &.{ | | |
| 77557 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77558 | }, | | |
| 77559 | .extra_temps = .{ | | |
| 77560 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77561 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 77562 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 77563 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 77564 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77565 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77566 | .unused, | | |
| 77567 | .unused, | | |
| 77568 | .unused, | | |
| 77569 | .unused, | | |
| 77570 | .unused, | | |
| 77571 | }, | | |
| 77572 | .dst_temps = .{ .mem, .unused }, | | |
| 77573 | .clobbers = .{ .eflags = true }, | | |
| 77574 | .each = .{ .once = &.{ | | |
| 77575 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77576 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 77577 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 77578 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, | | |
| 77579 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 77580 | else => unreachable, | | |
| 77581 | .e => .eq, | | |
| 77582 | .ne => .neq, | | |
| 77583 | }) }, | | |
| 77584 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { | | |
| 77585 | else => unreachable, | | |
| 77586 | .e => .eq, | | |
| 77587 | .ne => .neq, | | |
| 77588 | }) }, | | |
| 77589 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, | | |
| 77590 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, | | |
| 77591 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | | |
| 77592 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, | | |
| 77593 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, | | |
| 77594 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, | | |
| 77595 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, | | |
| 77596 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77597 | } }, | | |
| 77598 | }, .{ | | |
| 77599 | .required_features = .{ .avx, null, null, null }, | | |
| 77600 | .src_constraints = .{ | | |
| 77601 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 77602 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, | | |
| 77603 | .any, | | |
| 77604 | }, | | |
| 77605 | .patterns = &.{ | | |
| 77606 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77607 | }, | | |
| 77608 | .extra_temps = .{ | | |
| 77609 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77610 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 77611 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77612 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, | | |
| 77613 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77614 | .unused, | | |
| 77615 | .unused, | | |
| 77616 | .unused, | | |
| 77617 | .unused, | | |
| 77618 | .unused, | | |
| 77619 | .unused, | | |
| 77620 | }, | | |
| 77621 | .dst_temps = .{ .mem, .unused }, | | |
| 77622 | .clobbers = .{ .eflags = true }, | | |
| 77623 | .each = .{ .once = &.{ | | |
| 77624 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77625 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77626 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77627 | .{ .@"0:", .v_pd, .mova, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, | | |
| 77628 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { | | |
| 77629 | else => unreachable, | | |
| 77630 | .e => .eq, | | |
| 77631 | .ne => .neq, | | |
| 77632 | }) }, | | |
| 77633 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp3y, ._, ._ }, | | |
| 77634 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 77635 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 77636 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, | | |
| 77637 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77638 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77639 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 77640 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 77641 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 77642 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77643 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 77644 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77645 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77646 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77647 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 77648 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 77649 | } }, | | |
| 77650 | }, .{ | | |
| 77651 | .required_features = .{ .sse2, null, null, null }, | | |
| 77652 | .src_constraints = .{ | | |
| 77653 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 77654 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, | | |
| 77655 | .any, | | |
| 77656 | }, | | |
| 77657 | .patterns = &.{ | | |
| 77658 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77659 | }, | | |
| 77660 | .extra_temps = .{ | | |
| 77661 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77662 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 77663 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77664 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | | |
| 77665 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77666 | .unused, | | |
| 77667 | .unused, | | |
| 77668 | .unused, | | |
| 77669 | .unused, | | |
| 77670 | .unused, | | |
| 77671 | .unused, | | |
| 77672 | }, | | |
| 77673 | .dst_temps = .{ .mem, .unused }, | | |
| 77674 | .clobbers = .{ .eflags = true }, | | |
| 77675 | .each = .{ .once = &.{ | | |
| 77676 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77677 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77678 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77679 | .{ .@"0:", ._pd, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 77680 | .{ ._, ._pd, .cmp, .tmp3x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { | | |
| 77681 | else => unreachable, | | |
| 77682 | .e => .eq, | | |
| 77683 | .ne => .neq, | | |
| 77684 | }), ._ }, | | |
| 77685 | .{ ._, ._pd, .movmsk, .tmp4d, .tmp3x, ._, ._ }, | | |
| 77686 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, | | |
| 77687 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, | | |
| 77688 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, | | |
| 77689 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77690 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77691 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, | | |
| 77692 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, | | |
| 77693 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, | | |
| 77694 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77695 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 77696 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77697 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77698 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77699 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 77700 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 77701 | } }, | | |
| 77702 | }, .{ | | |
| 77703 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, | | |
| 77704 | .src_constraints = .{ | | |
| 77705 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 77706 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 77707 | .any, | | |
| 77708 | }, | | |
| 77709 | .patterns = &.{ | | |
| 77710 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77711 | }, | | |
| 77712 | .extra_temps = .{ | | |
| 77713 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77714 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 77715 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77716 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77717 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77718 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 77719 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 77720 | .unused, | | |
| 77721 | .unused, | | |
| 77722 | .unused, | | |
| 77723 | .unused, | | |
| 77724 | }, | | |
| 77725 | .dst_temps = .{ .mem, .unused }, | | |
| 77726 | .clobbers = .{ .eflags = true }, | | |
| 77727 | .each = .{ .once = &.{ | | |
| 77728 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77729 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77730 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77731 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 77732 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | | |
| 77733 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77734 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77735 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, | | |
| 77736 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, | | |
| 77737 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 77738 | .{ ._, switch (cc) { | | |
| 77739 | else => unreachable, | | |
| 77740 | .e => ._np, | | |
| 77741 | .ne => ._p, | | |
| 77742 | }, .set, .tmp4b, ._, ._, ._ }, | | |
| 77743 | .{ ._, ._, switch (cc) { | | |
| 77744 | else => unreachable, | | |
| 77745 | .e => .@"and", | | |
| 77746 | .ne => .@"or", | | |
| 77747 | }, .tmp3b, .tmp4b, ._, ._ }, | | |
| 77748 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 77749 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 77750 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 77751 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77752 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77753 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 77754 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 77755 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 77756 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77757 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 77758 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77759 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77760 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77761 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 77762 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 77763 | } }, | | |
| 77764 | }, .{ | | |
| 77765 | .required_features = .{ .x87, .cmov, null, null }, | | |
| 77766 | .src_constraints = .{ | | |
| 77767 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 77768 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 77769 | .any, | | |
| 77770 | }, | | |
| 77771 | .patterns = &.{ | | |
| 77772 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77773 | }, | | |
| 77774 | .extra_temps = .{ | | |
| 77775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77776 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 77777 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77778 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77779 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77780 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 77781 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 77782 | .unused, | | |
| 77783 | .unused, | | |
| 77784 | .unused, | | |
| 77785 | .unused, | | |
| 77786 | }, | | |
| 77787 | .dst_temps = .{ .mem, .unused }, | | |
| 77788 | .clobbers = .{ .eflags = true }, | | |
| 77789 | .each = .{ .once = &.{ | | |
| 77790 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77791 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77792 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77793 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 77794 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | | |
| 77795 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77796 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77797 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, | | |
| 77798 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, | | |
| 77799 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 77800 | .{ ._, switch (cc) { | | |
| 77801 | else => unreachable, | | |
| 77802 | .e => ._np, | | |
| 77803 | .ne => ._p, | | |
| 77804 | }, .set, .tmp4b, ._, ._, ._ }, | | |
| 77805 | .{ ._, ._, switch (cc) { | | |
| 77806 | else => unreachable, | | |
| 77807 | .e => .@"and", | | |
| 77808 | .ne => .@"or", | | |
| 77809 | }, .tmp3b, .tmp4b, ._, ._ }, | | |
| 77810 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 77811 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 77812 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 77813 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77814 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77815 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 77816 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 77817 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 77818 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77819 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 77820 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77821 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77822 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77823 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 77824 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 77825 | } }, | | |
| 77826 | }, .{ | | |
| 77827 | .required_features = .{ .x87, null, null, null }, | | |
| 77828 | .src_constraints = .{ | | |
| 77829 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 77830 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, | | |
| 77831 | .any, | | |
| 77832 | }, | | |
| 77833 | .patterns = &.{ | | |
| 77834 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77835 | }, | | |
| 77836 | .extra_temps = .{ | | |
| 77837 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77838 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 77839 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77840 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77841 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 77842 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 77843 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 77844 | .unused, | | |
| 77845 | .unused, | | |
| 77846 | .unused, | | |
| 77847 | .unused, | | |
| 77848 | }, | | |
| 77849 | .dst_temps = .{ .mem, .unused }, | | |
| 77850 | .clobbers = .{ .eflags = true }, | | |
| 77851 | .each = .{ .once = &.{ | | |
| 77852 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77853 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77854 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77855 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 77856 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77857 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77858 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 77859 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, | | |
| 77860 | .{ ._, ._, .xor, .tmp6h, .si(0b1_000_000), ._, ._ }, | | |
| 77861 | .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_100), ._, ._ }, | | |
| 77862 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 77863 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 77864 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 77865 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 77866 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77867 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77868 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 77869 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 77870 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 77871 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77872 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 77873 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77874 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77875 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77876 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 77877 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 77878 | } }, | | |
| 77879 | }, .{ | | |
| 77880 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, | | |
| 77881 | .src_constraints = .{ | | |
| 77882 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 77883 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 77884 | .any, | | |
| 77885 | }, | | |
| 77886 | .patterns = &.{ | | |
| 77887 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77888 | }, | | |
| 77889 | .extra_temps = .{ | | |
| 77890 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77891 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 77892 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77893 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77894 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77895 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 77896 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 77897 | .unused, | | |
| 77898 | .unused, | | |
| 77899 | .unused, | | |
| 77900 | .unused, | | |
| 77901 | }, | | |
| 77902 | .dst_temps = .{ .mem, .unused }, | | |
| 77903 | .clobbers = .{ .eflags = true }, | | |
| 77904 | .each = .{ .once = &.{ | | |
| 77905 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77906 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77907 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77908 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 77909 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | | |
| 77910 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77911 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77912 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, | | |
| 77913 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, | | |
| 77914 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 77915 | .{ ._, switch (cc) { | | |
| 77916 | else => unreachable, | | |
| 77917 | .e => ._np, | | |
| 77918 | .ne => ._p, | | |
| 77919 | }, .set, .tmp4b, ._, ._, ._ }, | | |
| 77920 | .{ ._, ._, switch (cc) { | | |
| 77921 | else => unreachable, | | |
| 77922 | .e => .@"and", | | |
| 77923 | .ne => .@"or", | | |
| 77924 | }, .tmp3b, .tmp4b, ._, ._ }, | | |
| 77925 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 77926 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 77927 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 77928 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77929 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77930 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 77931 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 77932 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 77933 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77934 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 77935 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77936 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77937 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 77938 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 77939 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 77940 | } }, | | |
| 77941 | }, .{ | | |
| 77942 | .required_features = .{ .x87, .cmov, null, null }, | | |
| 77943 | .src_constraints = .{ | | |
| 77944 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 77945 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 77946 | .any, | | |
| 77947 | }, | | |
| 77948 | .patterns = &.{ | | |
| 77949 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 77950 | }, | | |
| 77951 | .extra_temps = .{ | | |
| 77952 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 77953 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 77954 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 77955 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77956 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 77957 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 77958 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 77959 | .unused, | | |
| 77960 | .unused, | | |
| 77961 | .unused, | | |
| 77962 | .unused, | | |
| 77963 | }, | | |
| 77964 | .dst_temps = .{ .mem, .unused }, | | |
| 77965 | .clobbers = .{ .eflags = true }, | | |
| 77966 | .each = .{ .once = &.{ | | |
| 77967 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 77968 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 77969 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77970 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 77971 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | | |
| 77972 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77973 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 77974 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, | | |
| 77975 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, | | |
| 77976 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 77977 | .{ ._, switch (cc) { | | |
| 77978 | else => unreachable, | | |
| 77979 | .e => ._np, | | |
| 77980 | .ne => ._p, | | |
| 77981 | }, .set, .tmp4b, ._, ._, ._ }, | | |
| 77982 | .{ ._, ._, switch (cc) { | | |
| 77983 | else => unreachable, | | |
| 77984 | .e => .@"and", | | |
| 77985 | .ne => .@"or", | | |
| 77986 | }, .tmp3b, .tmp4b, ._, ._ }, | | |
| 77987 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 77988 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 77989 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 77990 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77991 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 77992 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 77993 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 77994 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 77995 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 77996 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 77997 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 77998 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 77999 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78000 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 78001 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 78002 | } }, | | |
| 78003 | }, .{ | | |
| 78004 | .required_features = .{ .x87, null, null, null }, | | |
| 78005 | .src_constraints = .{ | | |
| 78006 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 78007 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, | | |
| 78008 | .any, | | |
| 78009 | }, | | |
| 78010 | .patterns = &.{ | | |
| 78011 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78012 | }, | | |
| 78013 | .extra_temps = .{ | | |
| 78014 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78015 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, | | |
| 78016 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78017 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 78018 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 78019 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 78020 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 78021 | .unused, | | |
| 78022 | .unused, | | |
| 78023 | .unused, | | |
| 78024 | .unused, | | |
| 78025 | }, | | |
| 78026 | .dst_temps = .{ .mem, .unused }, | | |
| 78027 | .clobbers = .{ .eflags = true }, | | |
| 78028 | .each = .{ .once = &.{ | | |
| 78029 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78030 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78031 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78032 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 78033 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 78034 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, | | |
| 78035 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 78036 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, | | |
| 78037 | .{ ._, ._, .xor, .tmp6h, .si(0b1_000_000), ._, ._ }, | | |
| 78038 | .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_100), ._, ._ }, | | |
| 78039 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, | | |
| 78040 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, | | |
| 78041 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, | | |
| 78042 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 78043 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 78044 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 78045 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, | | |
| 78046 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, | | |
| 78047 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, | | |
| 78048 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78049 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78050 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78051 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, | | |
| 78052 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78053 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, | | |
| 78054 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, | | |
| 78055 | } }, | | |
| 78056 | }, .{ | | |
| 78057 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 78058 | .src_constraints = .{ | | |
| 78059 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78060 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78061 | .any, | | |
| 78062 | }, | | |
| 78063 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 78064 | .patterns = &.{ | | |
| 78065 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78066 | }, | | |
| 78067 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78068 | .extra_temps = .{ | | |
| 78069 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78070 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78071 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78072 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78073 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78074 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78075 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78076 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 78077 | .unused, | | |
| 78078 | .unused, | | |
| 78079 | .unused, | | |
| 78080 | }, | | |
| 78081 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 78082 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78083 | .each = .{ .once = &.{ | | |
| 78084 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 78085 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78086 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78087 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78088 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78089 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 78090 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 78091 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 78092 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 78093 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78094 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 78095 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 78096 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 78097 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78098 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78099 | } }, | | |
| 78100 | }, .{ | | |
| 78101 | .required_features = .{ .avx, .slow_incdec, null, null }, | | |
| 78102 | .src_constraints = .{ | | |
| 78103 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78104 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78105 | .any, | | |
| 78106 | }, | | |
| 78107 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 78108 | .patterns = &.{ | | |
| 78109 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78110 | }, | | |
| 78111 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78112 | .extra_temps = .{ | | |
| 78113 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78114 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78115 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78116 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78117 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78118 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78119 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78120 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 78121 | .unused, | | |
| 78122 | .unused, | | |
| 78123 | .unused, | | |
| 78124 | }, | | |
| 78125 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 78126 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78127 | .each = .{ .once = &.{ | | |
| 78128 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 78129 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78130 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78131 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78132 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78133 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 78134 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 78135 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 78136 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 78137 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78138 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 78139 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 78140 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 78141 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78142 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78143 | } }, | | |
| 78144 | }, .{ | | |
| 78145 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 78146 | .src_constraints = .{ | | |
| 78147 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78148 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78149 | .any, | | |
| 78150 | }, | | |
| 78151 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 78152 | .patterns = &.{ | | |
| 78153 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78154 | }, | | |
| 78155 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78156 | .extra_temps = .{ | | |
| 78157 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78158 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78159 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78160 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78161 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78162 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78163 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78164 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 78165 | .unused, | | |
| 78166 | .unused, | | |
| 78167 | .unused, | | |
| 78168 | }, | | |
| 78169 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 78170 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78171 | .each = .{ .once = &.{ | | |
| 78172 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 78173 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78174 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78175 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78176 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78177 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 78178 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 78179 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 78180 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 78181 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78182 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 78183 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 78184 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 78185 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78186 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78187 | } }, | | |
| 78188 | }, .{ | | |
| 78189 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 78190 | .src_constraints = .{ | | |
| 78191 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78192 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78193 | .any, | | |
| 78194 | }, | | |
| 78195 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 78196 | .patterns = &.{ | | |
| 78197 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78198 | }, | | |
| 78199 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78200 | .extra_temps = .{ | | |
| 78201 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78202 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78203 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78204 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78205 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78206 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78207 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78208 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 78209 | .unused, | | |
| 78210 | .unused, | | |
| 78211 | .unused, | | |
| 78212 | }, | | |
| 78213 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 78214 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78215 | .each = .{ .once = &.{ | | |
| 78216 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 78217 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78218 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78219 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78220 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78221 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 78222 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 78223 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 78224 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 78225 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78226 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 78227 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 78228 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 78229 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78230 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78231 | } }, | | |
| 78232 | }, .{ | | |
| 78233 | .required_features = .{ .sse, .slow_incdec, null, null }, | | |
| 78234 | .src_constraints = .{ | | |
| 78235 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78236 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78237 | .any, | | |
| 78238 | }, | | |
| 78239 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 78240 | .patterns = &.{ | | |
| 78241 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78242 | }, | | |
| 78243 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78244 | .extra_temps = .{ | | |
| 78245 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78246 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78247 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78248 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78249 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78250 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78251 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78252 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 78253 | .unused, | | |
| 78254 | .unused, | | |
| 78255 | .unused, | | |
| 78256 | }, | | |
| 78257 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 78258 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78259 | .each = .{ .once = &.{ | | |
| 78260 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 78261 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78262 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78263 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78264 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78265 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 78266 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 78267 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 78268 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 78269 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78270 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 78271 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 78272 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 78273 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78274 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78275 | } }, | | |
| 78276 | }, .{ | | |
| 78277 | .required_features = .{ .sse2, .slow_incdec, null, null }, | | |
| 78278 | .src_constraints = .{ | | |
| 78279 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78280 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78281 | .any, | | |
| 78282 | }, | | |
| 78283 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, | | |
| 78284 | .patterns = &.{ | | |
| 78285 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78286 | }, | | |
| 78287 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78288 | .extra_temps = .{ | | |
| 78289 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78290 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78291 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78292 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78293 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78294 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78295 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78296 | .{ .type = .u32, .kind = .{ .reg = .edx } }, | | |
| 78297 | .unused, | | |
| 78298 | .unused, | | |
| 78299 | .unused, | | |
| 78300 | }, | | |
| 78301 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 78302 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78303 | .each = .{ .once = &.{ | | |
| 78304 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 78305 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78306 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78307 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78308 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78309 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 78310 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, | | |
| 78311 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, | | |
| 78312 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, | | |
| 78313 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78314 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, | | |
| 78315 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, | | |
| 78316 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 78317 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78318 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78319 | } }, | | |
| 78320 | }, .{ | | |
| 78321 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, | | |
| 78322 | .src_constraints = .{ | | |
| 78323 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78324 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78325 | .any, | | |
| 78326 | }, | | |
| 78327 | .patterns = &.{ | | |
| 78328 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78329 | }, | | |
| 78330 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78331 | .extra_temps = .{ | | |
| 78332 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78333 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78334 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 78335 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78336 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78337 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78338 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78339 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78340 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 78341 | .unused, | | |
| 78342 | .unused, | | |
| 78343 | }, | | |
| 78344 | .dst_temps = .{ .mem, .unused }, | | |
| 78345 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78346 | .each = .{ .once = &.{ | | |
| 78347 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78348 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78349 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78350 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78351 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78352 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 78353 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 78354 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 78355 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 78356 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 78357 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 78358 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 78359 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 78360 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78361 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 78362 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78363 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 78364 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 78365 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78366 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78367 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78368 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78369 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78370 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 78371 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 78372 | } }, | | |
| 78373 | }, .{ | | |
| 78374 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 78375 | .src_constraints = .{ | | |
| 78376 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78377 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78378 | .any, | | |
| 78379 | }, | | |
| 78380 | .patterns = &.{ | | |
| 78381 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78382 | }, | | |
| 78383 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78384 | .extra_temps = .{ | | |
| 78385 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78386 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78387 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 78388 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78389 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78390 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78391 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78392 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78393 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 78394 | .unused, | | |
| 78395 | .unused, | | |
| 78396 | }, | | |
| 78397 | .dst_temps = .{ .mem, .unused }, | | |
| 78398 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78399 | .each = .{ .once = &.{ | | |
| 78400 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78401 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78402 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78403 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78404 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78405 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 78406 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 78407 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 78408 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 78409 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 78410 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 78411 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 78412 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 78413 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78414 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 78415 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78416 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 78417 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 78418 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78419 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78420 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78421 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78422 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78423 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 78424 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 78425 | } }, | | |
| 78426 | }, .{ | | |
| 78427 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, | | |
| 78428 | .src_constraints = .{ | | |
| 78429 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78430 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78431 | .any, | | |
| 78432 | }, | | |
| 78433 | .patterns = &.{ | | |
| 78434 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78435 | }, | | |
| 78436 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78437 | .extra_temps = .{ | | |
| 78438 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78439 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78440 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 78441 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78442 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78443 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78444 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78445 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78446 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 78447 | .unused, | | |
| 78448 | .unused, | | |
| 78449 | }, | | |
| 78450 | .dst_temps = .{ .mem, .unused }, | | |
| 78451 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78452 | .each = .{ .once = &.{ | | |
| 78453 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78454 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78455 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78456 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78457 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78458 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 78459 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 78460 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 78461 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 78462 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 78463 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 78464 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 78465 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 78466 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78467 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 78468 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78469 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 78470 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 78471 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78472 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78473 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78474 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78475 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78476 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 78477 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 78478 | } }, | | |
| 78479 | }, .{ | | |
| 78480 | .required_features = .{ .@"64bit", .sse2, null, null }, | | |
| 78481 | .src_constraints = .{ | | |
| 78482 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78483 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78484 | .any, | | |
| 78485 | }, | | |
| 78486 | .patterns = &.{ | | |
| 78487 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78488 | }, | | |
| 78489 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78490 | .extra_temps = .{ | | |
| 78491 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78492 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78493 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 78494 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78495 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78496 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78497 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78498 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78499 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 78500 | .unused, | | |
| 78501 | .unused, | | |
| 78502 | }, | | |
| 78503 | .dst_temps = .{ .mem, .unused }, | | |
| 78504 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78505 | .each = .{ .once = &.{ | | |
| 78506 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78507 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78508 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78509 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78510 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78511 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 78512 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 78513 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 78514 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 78515 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 78516 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 78517 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 78518 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 78519 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78520 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 78521 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78522 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 78523 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 78524 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78525 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78526 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78527 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78528 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78529 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 78530 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 78531 | } }, | | |
| 78532 | }, .{ | | |
| 78533 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, | | |
| 78534 | .src_constraints = .{ | | |
| 78535 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78536 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78537 | .any, | | |
| 78538 | }, | | |
| 78539 | .patterns = &.{ | | |
| 78540 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78541 | }, | | |
| 78542 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78543 | .extra_temps = .{ | | |
| 78544 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78545 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78546 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 78547 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78548 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78549 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78550 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78551 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78552 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 78553 | .unused, | | |
| 78554 | .unused, | | |
| 78555 | }, | | |
| 78556 | .dst_temps = .{ .mem, .unused }, | | |
| 78557 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78558 | .each = .{ .once = &.{ | | |
| 78559 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78560 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78561 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78562 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78563 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78564 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 78565 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 78566 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 78567 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 78568 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 78569 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 78570 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 78571 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, | | |
| 78572 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78573 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 78574 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78575 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 78576 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 78577 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78578 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78579 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78580 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78581 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78582 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 78583 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 78584 | } }, | | |
| 78585 | }, .{ | | |
| 78586 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 78587 | .src_constraints = .{ | | |
| 78588 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78589 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, | | |
| 78590 | .any, | | |
| 78591 | }, | | |
| 78592 | .patterns = &.{ | | |
| 78593 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 78594 | }, | | |
| 78595 | .call_frame = .{ .alignment = .@"16" }, | | |
| 78596 | .extra_temps = .{ | | |
| 78597 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 78598 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 78599 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 78600 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 78601 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, | | |
| 78602 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 78603 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 78604 | .{ .type = .u8, .kind = .{ .reg = .cl } }, | | |
| 78605 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 78606 | .unused, | | |
| 78607 | .unused, | | |
| 78608 | }, | | |
| 78609 | .dst_temps = .{ .mem, .unused }, | | |
| 78610 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 78611 | .each = .{ .once = &.{ | | |
| 78612 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | | |
| 78613 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 78614 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78615 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | | |
| 78616 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, | | |
| 78617 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 78618 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, | | |
| 78619 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, | | |
| 78620 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, | | |
| 78621 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, | | |
| 78622 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, | | |
| 78623 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 78624 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, | | |
| 78625 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78626 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, | | |
| 78627 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, | | |
| 78628 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, | | |
| 78629 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, | | |
| 78630 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 78631 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 78632 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 78633 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, | | |
| 78634 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, | | |
| 78635 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, | | |
| 78636 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, | | |
| 78637 | } }, | | |
| 78638 | } }, | | |
| 78639 | }), | | |
| 78640 | }) catch |err| switch (err) { | | |
| 78641 | error.SelectFailed => return cg.fail("failed to select {s} {s} {} {} {}", .{ | | |
| 78642 | @tagName(air_tag), | | |
| 78643 | @tagName(extra.compareOperator()), | | |
| 78644 | cg.typeOf(extra.lhs).fmt(pt), | | |
| 78645 | ops[0].tracking(cg), | | |
| 78646 | ops[1].tracking(cg), | | |
| 78647 | }), | | |
| 78648 | else => |e| return e, | | |
| 78649 | }; | | |
| 78650 | try res[0].finish(inst, &.{ extra.lhs, extra.rhs }, &ops, cg); | | |
| 78651 | }, | | |
| 78652 | | | |
| 78653 | .sqrt => |air_tag| if (use_old) try cg.airSqrt(inst) else { | | |
| 78654 | const un_op = air_datas[@intFromEnum(inst)].un_op; | | |
| 78655 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | | |
| 78656 | var res: [1]Temp = undefined; | 71587 | var res: [1]Temp = undefined; |
| 78657 | cg.select(&res, &.{cg.typeOf(un_op)}, &ops, comptime &.{ .{ | 71588 | cg.select(&res, &.{cg.typeOf(un_op)}, &ops, comptime &.{ .{ |
| 78658 | .required_features = .{ .f16c, null, null, null }, | 71589 | .required_features = .{ .f16c, null, null, null }, |
| ... | @@ -82366,15 +75297,465 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -82366,15 +75297,465 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 82366 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 75297 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82367 | } }, | 75298 | } }, |
| 82368 | }, .{ | 75299 | }, .{ |
| 82369 | .required_features = .{ .sse4_1, null, null, null }, | 75300 | .required_features = .{ .sse4_1, null, null, null }, |
| 82370 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 75301 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 75302 | .patterns = &.{ |
| | 75303 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75304 | }, |
| | 75305 | .extra_temps = .{ |
| | 75306 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75307 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 75308 | .unused, |
| | 75309 | .unused, |
| | 75310 | .unused, |
| | 75311 | .unused, |
| | 75312 | .unused, |
| | 75313 | .unused, |
| | 75314 | .unused, |
| | 75315 | .unused, |
| | 75316 | .unused, |
| | 75317 | }, |
| | 75318 | .dst_temps = .{ .mem, .unused }, |
| | 75319 | .clobbers = .{ .eflags = true }, |
| | 75320 | .each = .{ .once = &.{ |
| | 75321 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75322 | .{ .@"0:", ._pd, .round, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), .rm(.{ |
| | 75323 | .direction = direction, |
| | 75324 | .precision = .inexact, |
| | 75325 | }), ._ }, |
| | 75326 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 75327 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 75328 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75329 | } }, |
| | 75330 | }, .{ |
| | 75331 | .required_features = .{ .avx, null, null, null }, |
| | 75332 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 75333 | .patterns = &.{ |
| | 75334 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75335 | }, |
| | 75336 | .call_frame = .{ .alignment = .@"16" }, |
| | 75337 | .extra_temps = .{ |
| | 75338 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75339 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 75340 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75341 | else => unreachable, |
| | 75342 | .down => "floor", |
| | 75343 | .up => "ceil", |
| | 75344 | .zero => "trunc", |
| | 75345 | } } } }, |
| | 75346 | .unused, |
| | 75347 | .unused, |
| | 75348 | .unused, |
| | 75349 | .unused, |
| | 75350 | .unused, |
| | 75351 | .unused, |
| | 75352 | .unused, |
| | 75353 | .unused, |
| | 75354 | }, |
| | 75355 | .dst_temps = .{ .mem, .unused }, |
| | 75356 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75357 | .each = .{ .once = &.{ |
| | 75358 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75359 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75360 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75361 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 75362 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 75363 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75364 | } }, |
| | 75365 | }, .{ |
| | 75366 | .required_features = .{ .sse2, null, null, null }, |
| | 75367 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 75368 | .patterns = &.{ |
| | 75369 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75370 | }, |
| | 75371 | .call_frame = .{ .alignment = .@"16" }, |
| | 75372 | .extra_temps = .{ |
| | 75373 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75374 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 75375 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75376 | else => unreachable, |
| | 75377 | .down => "floor", |
| | 75378 | .up => "ceil", |
| | 75379 | .zero => "trunc", |
| | 75380 | } } } }, |
| | 75381 | .unused, |
| | 75382 | .unused, |
| | 75383 | .unused, |
| | 75384 | .unused, |
| | 75385 | .unused, |
| | 75386 | .unused, |
| | 75387 | .unused, |
| | 75388 | .unused, |
| | 75389 | }, |
| | 75390 | .dst_temps = .{ .mem, .unused }, |
| | 75391 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75392 | .each = .{ .once = &.{ |
| | 75393 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75394 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75395 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75396 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 75397 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 75398 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75399 | } }, |
| | 75400 | }, .{ |
| | 75401 | .required_features = .{ .sse, null, null, null }, |
| | 75402 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 75403 | .patterns = &.{ |
| | 75404 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75405 | }, |
| | 75406 | .call_frame = .{ .alignment = .@"16" }, |
| | 75407 | .extra_temps = .{ |
| | 75408 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75409 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 75410 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75411 | else => unreachable, |
| | 75412 | .down => "floor", |
| | 75413 | .up => "ceil", |
| | 75414 | .zero => "trunc", |
| | 75415 | } } } }, |
| | 75416 | .unused, |
| | 75417 | .unused, |
| | 75418 | .unused, |
| | 75419 | .unused, |
| | 75420 | .unused, |
| | 75421 | .unused, |
| | 75422 | .unused, |
| | 75423 | .unused, |
| | 75424 | }, |
| | 75425 | .dst_temps = .{ .mem, .unused }, |
| | 75426 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75427 | .each = .{ .once = &.{ |
| | 75428 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75429 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 75430 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75431 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75432 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 75433 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 75434 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75435 | } }, |
| | 75436 | }, .{ |
| | 75437 | .required_features = .{ .avx, .x87, null, null }, |
| | 75438 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| | 75439 | .patterns = &.{ |
| | 75440 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75441 | }, |
| | 75442 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| | 75443 | .extra_temps = .{ |
| | 75444 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| | 75445 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| | 75446 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75447 | else => unreachable, |
| | 75448 | .down => "__floorx", |
| | 75449 | .up => "__ceilx", |
| | 75450 | .zero => "__truncx", |
| | 75451 | } } } }, |
| | 75452 | .unused, |
| | 75453 | .unused, |
| | 75454 | .unused, |
| | 75455 | .unused, |
| | 75456 | .unused, |
| | 75457 | .unused, |
| | 75458 | .unused, |
| | 75459 | .unused, |
| | 75460 | }, |
| | 75461 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| | 75462 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75463 | .each = .{ .once = &.{ |
| | 75464 | .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, |
| | 75465 | .{ ._, .v_dqa, .mov, .mem(.tmp1x), .tmp0x, ._, ._ }, |
| | 75466 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75467 | } }, |
| | 75468 | }, .{ |
| | 75469 | .required_features = .{ .sse2, .x87, null, null }, |
| | 75470 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| | 75471 | .patterns = &.{ |
| | 75472 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75473 | }, |
| | 75474 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| | 75475 | .extra_temps = .{ |
| | 75476 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| | 75477 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| | 75478 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75479 | else => unreachable, |
| | 75480 | .down => "__floorx", |
| | 75481 | .up => "__ceilx", |
| | 75482 | .zero => "__truncx", |
| | 75483 | } } } }, |
| | 75484 | .unused, |
| | 75485 | .unused, |
| | 75486 | .unused, |
| | 75487 | .unused, |
| | 75488 | .unused, |
| | 75489 | .unused, |
| | 75490 | .unused, |
| | 75491 | .unused, |
| | 75492 | }, |
| | 75493 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| | 75494 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75495 | .each = .{ .once = &.{ |
| | 75496 | .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, |
| | 75497 | .{ ._, ._dqa, .mov, .mem(.tmp1x), .tmp0x, ._, ._ }, |
| | 75498 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75499 | } }, |
| | 75500 | }, .{ |
| | 75501 | .required_features = .{ .sse, .x87, null, null }, |
| | 75502 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| | 75503 | .patterns = &.{ |
| | 75504 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75505 | }, |
| | 75506 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| | 75507 | .extra_temps = .{ |
| | 75508 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| | 75509 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| | 75510 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75511 | else => unreachable, |
| | 75512 | .down => "__floorx", |
| | 75513 | .up => "__ceilx", |
| | 75514 | .zero => "__truncx", |
| | 75515 | } } } }, |
| | 75516 | .unused, |
| | 75517 | .unused, |
| | 75518 | .unused, |
| | 75519 | .unused, |
| | 75520 | .unused, |
| | 75521 | .unused, |
| | 75522 | .unused, |
| | 75523 | .unused, |
| | 75524 | }, |
| | 75525 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| | 75526 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75527 | .each = .{ .once = &.{ |
| | 75528 | .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, |
| | 75529 | .{ ._, ._ps, .mova, .mem(.tmp1x), .tmp0x, ._, ._ }, |
| | 75530 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75531 | } }, |
| | 75532 | }, .{ |
| | 75533 | .required_features = .{ .avx, .x87, null, null }, |
| | 75534 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| | 75535 | .patterns = &.{ |
| | 75536 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75537 | }, |
| | 75538 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| | 75539 | .extra_temps = .{ |
| | 75540 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75541 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| | 75542 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| | 75543 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75544 | else => unreachable, |
| | 75545 | .down => "__floorx", |
| | 75546 | .up => "__ceilx", |
| | 75547 | .zero => "__truncx", |
| | 75548 | } } } }, |
| | 75549 | .unused, |
| | 75550 | .unused, |
| | 75551 | .unused, |
| | 75552 | .unused, |
| | 75553 | .unused, |
| | 75554 | .unused, |
| | 75555 | .unused, |
| | 75556 | }, |
| | 75557 | .dst_temps = .{ .mem, .unused }, |
| | 75558 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75559 | .each = .{ .once = &.{ |
| | 75560 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75561 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75562 | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| | 75563 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 75564 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 75565 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 75566 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 75567 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75568 | } }, |
| | 75569 | }, .{ |
| | 75570 | .required_features = .{ .sse2, .x87, null, null }, |
| | 75571 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| | 75572 | .patterns = &.{ |
| | 75573 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75574 | }, |
| | 75575 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| | 75576 | .extra_temps = .{ |
| | 75577 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75578 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| | 75579 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| | 75580 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75581 | else => unreachable, |
| | 75582 | .down => "__floorx", |
| | 75583 | .up => "__ceilx", |
| | 75584 | .zero => "__truncx", |
| | 75585 | } } } }, |
| | 75586 | .unused, |
| | 75587 | .unused, |
| | 75588 | .unused, |
| | 75589 | .unused, |
| | 75590 | .unused, |
| | 75591 | .unused, |
| | 75592 | .unused, |
| | 75593 | }, |
| | 75594 | .dst_temps = .{ .mem, .unused }, |
| | 75595 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75596 | .each = .{ .once = &.{ |
| | 75597 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75598 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75599 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| | 75600 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 75601 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 75602 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 75603 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 75604 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75605 | } }, |
| | 75606 | }, .{ |
| | 75607 | .required_features = .{ .sse, .x87, null, null }, |
| | 75608 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| | 75609 | .patterns = &.{ |
| | 75610 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75611 | }, |
| | 75612 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| | 75613 | .extra_temps = .{ |
| | 75614 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75615 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| | 75616 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| | 75617 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75618 | else => unreachable, |
| | 75619 | .down => "__floorx", |
| | 75620 | .up => "__ceilx", |
| | 75621 | .zero => "__truncx", |
| | 75622 | } } } }, |
| | 75623 | .unused, |
| | 75624 | .unused, |
| | 75625 | .unused, |
| | 75626 | .unused, |
| | 75627 | .unused, |
| | 75628 | .unused, |
| | 75629 | .unused, |
| | 75630 | }, |
| | 75631 | .dst_temps = .{ .mem, .unused }, |
| | 75632 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75633 | .each = .{ .once = &.{ |
| | 75634 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75635 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75636 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| | 75637 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 75638 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 75639 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 75640 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 75641 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75642 | } }, |
| | 75643 | }, .{ |
| | 75644 | .required_features = .{ .sse, null, null, null }, |
| | 75645 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 75646 | .patterns = &.{ |
| | 75647 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| | 75648 | }, |
| | 75649 | .call_frame = .{ .alignment = .@"16" }, |
| | 75650 | .extra_temps = .{ |
| | 75651 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75652 | else => unreachable, |
| | 75653 | .down => "floorq", |
| | 75654 | .up => "ceilq", |
| | 75655 | .zero => "truncq", |
| | 75656 | } } } }, |
| | 75657 | .unused, |
| | 75658 | .unused, |
| | 75659 | .unused, |
| | 75660 | .unused, |
| | 75661 | .unused, |
| | 75662 | .unused, |
| | 75663 | .unused, |
| | 75664 | .unused, |
| | 75665 | .unused, |
| | 75666 | .unused, |
| | 75667 | }, |
| | 75668 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 75669 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75670 | .each = .{ .once = &.{ |
| | 75671 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 75672 | } }, |
| | 75673 | }, .{ |
| | 75674 | .required_features = .{ .avx, null, null, null }, |
| | 75675 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 75676 | .patterns = &.{ |
| | 75677 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75678 | }, |
| | 75679 | .call_frame = .{ .alignment = .@"16" }, |
| | 75680 | .extra_temps = .{ |
| | 75681 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75682 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 75683 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75684 | else => unreachable, |
| | 75685 | .down => "floorq", |
| | 75686 | .up => "ceilq", |
| | 75687 | .zero => "truncq", |
| | 75688 | } } } }, |
| | 75689 | .unused, |
| | 75690 | .unused, |
| | 75691 | .unused, |
| | 75692 | .unused, |
| | 75693 | .unused, |
| | 75694 | .unused, |
| | 75695 | .unused, |
| | 75696 | .unused, |
| | 75697 | }, |
| | 75698 | .dst_temps = .{ .mem, .unused }, |
| | 75699 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75700 | .each = .{ .once = &.{ |
| | 75701 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75702 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75703 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75704 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 75705 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 75706 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75707 | } }, |
| | 75708 | }, .{ |
| | 75709 | .required_features = .{ .sse2, null, null, null }, |
| | 75710 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 75711 | .patterns = &.{ |
| | 75712 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 75713 | }, |
| | 75714 | .call_frame = .{ .alignment = .@"16" }, |
| | 75715 | .extra_temps = .{ |
| | 75716 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 75717 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 75718 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75719 | else => unreachable, |
| | 75720 | .down => "floorq", |
| | 75721 | .up => "ceilq", |
| | 75722 | .zero => "truncq", |
| | 75723 | } } } }, |
| | 75724 | .unused, |
| | 75725 | .unused, |
| | 75726 | .unused, |
| | 75727 | .unused, |
| | 75728 | .unused, |
| | 75729 | .unused, |
| | 75730 | .unused, |
| | 75731 | .unused, |
| | 75732 | }, |
| | 75733 | .dst_temps = .{ .mem, .unused }, |
| | 75734 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 75735 | .each = .{ .once = &.{ |
| | 75736 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 75737 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 75738 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 75739 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 75740 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 75741 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 75742 | } }, |
| | 75743 | }, .{ |
| | 75744 | .required_features = .{ .sse, null, null, null }, |
| | 75745 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 82371 | .patterns = &.{ | 75746 | .patterns = &.{ |
| 82372 | .{ .src = .{ .to_mem, .none, .none } }, | 75747 | .{ .src = .{ .to_mem, .none, .none } }, |
| 82373 | }, | 75748 | }, |
| | 75749 | .call_frame = .{ .alignment = .@"16" }, |
| 82374 | .extra_temps = .{ | 75750 | .extra_temps = .{ |
| 82375 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 75751 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82376 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | 75752 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 82377 | .unused, | 75753 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| | 75754 | else => unreachable, |
| | 75755 | .down => "floorq", |
| | 75756 | .up => "ceilq", |
| | 75757 | .zero => "truncq", |
| | 75758 | } } } }, |
| 82378 | .unused, | 75759 | .unused, |
| 82379 | .unused, | 75760 | .unused, |
| 82380 | .unused, | 75761 | .unused, |
| ... | @@ -82385,1052 +75766,7256 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -82385,1052 +75766,7256 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 82385 | .unused, | 75766 | .unused, |
| 82386 | }, | 75767 | }, |
| 82387 | .dst_temps = .{ .mem, .unused }, | 75768 | .dst_temps = .{ .mem, .unused }, |
| 82388 | .clobbers = .{ .eflags = true }, | 75769 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82389 | .each = .{ .once = &.{ | 75770 | .each = .{ .once = &.{ |
| 82390 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 75771 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82391 | .{ .@"0:", ._pd, .round, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), .rm(.{ | 75772 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82392 | .direction = direction, | 75773 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82393 | .precision = .inexact, | 75774 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82394 | }), ._ }, | | |
| 82395 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 82396 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 75775 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82397 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 75776 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82398 | } }, | 75777 | } }, |
| 82399 | }, .{ | 75778 | } }, |
| 82400 | .required_features = .{ .avx, null, null, null }, | 75779 | }) catch |err| switch (err) { |
| 82401 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 75780 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 82402 | .patterns = &.{ | 75781 | @tagName(air_tag), |
| 82403 | .{ .src = .{ .to_mem, .none, .none } }, | 75782 | cg.typeOf(un_op).fmt(pt), |
| | 75783 | ops[0].tracking(cg), |
| | 75784 | }), |
| | 75785 | else => |e| return e, |
| | 75786 | }; |
| | 75787 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| | 75788 | }, |
| | 75789 | .neg, .neg_optimized => |air_tag| if (use_old) try cg.airFloatSign(inst, .neg) else { |
| | 75790 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| | 75791 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| | 75792 | var res: [1]Temp = undefined; |
| | 75793 | cg.select(&res, &.{cg.typeOf(un_op)}, &ops, comptime &.{ .{ |
| | 75794 | .required_features = .{ .avx, null, null, null }, |
| | 75795 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 75796 | .patterns = &.{ |
| | 75797 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 75798 | }, |
| | 75799 | .extra_temps = .{ |
| | 75800 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75801 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 75802 | .unused, |
| | 75803 | .unused, |
| | 75804 | .unused, |
| | 75805 | .unused, |
| | 75806 | .unused, |
| | 75807 | .unused, |
| | 75808 | .unused, |
| | 75809 | .unused, |
| | 75810 | .unused, |
| | 75811 | }, |
| | 75812 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 75813 | .each = .{ .once = &.{ |
| | 75814 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 75815 | .{ ._, .v_ps, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 75816 | } }, |
| | 75817 | }, .{ |
| | 75818 | .required_features = .{ .sse, null, null, null }, |
| | 75819 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 75820 | .patterns = &.{ |
| | 75821 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 75822 | }, |
| | 75823 | .extra_temps = .{ |
| | 75824 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75825 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 75826 | .unused, |
| | 75827 | .unused, |
| | 75828 | .unused, |
| | 75829 | .unused, |
| | 75830 | .unused, |
| | 75831 | .unused, |
| | 75832 | .unused, |
| | 75833 | .unused, |
| | 75834 | .unused, |
| | 75835 | }, |
| | 75836 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 75837 | .each = .{ .once = &.{ |
| | 75838 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 75839 | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 75840 | } }, |
| | 75841 | }, .{ |
| | 75842 | .required_features = .{ .avx, null, null, null }, |
| | 75843 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 75844 | .patterns = &.{ |
| | 75845 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 75846 | }, |
| | 75847 | .extra_temps = .{ |
| | 75848 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75849 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 75850 | .unused, |
| | 75851 | .unused, |
| | 75852 | .unused, |
| | 75853 | .unused, |
| | 75854 | .unused, |
| | 75855 | .unused, |
| | 75856 | .unused, |
| | 75857 | .unused, |
| | 75858 | .unused, |
| | 75859 | }, |
| | 75860 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 75861 | .each = .{ .once = &.{ |
| | 75862 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 75863 | .{ ._, .v_ps, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 75864 | } }, |
| | 75865 | }, .{ |
| | 75866 | .required_features = .{ .avx, null, null, null }, |
| | 75867 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 75868 | .patterns = &.{ |
| | 75869 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 75870 | }, |
| | 75871 | .extra_temps = .{ |
| | 75872 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75873 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 75874 | .unused, |
| | 75875 | .unused, |
| | 75876 | .unused, |
| | 75877 | .unused, |
| | 75878 | .unused, |
| | 75879 | .unused, |
| | 75880 | .unused, |
| | 75881 | .unused, |
| | 75882 | .unused, |
| | 75883 | }, |
| | 75884 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 75885 | .each = .{ .once = &.{ |
| | 75886 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 75887 | .{ ._, .v_pd, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 75888 | } }, |
| | 75889 | }, .{ |
| | 75890 | .required_features = .{ .sse2, null, null, null }, |
| | 75891 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 75892 | .patterns = &.{ |
| | 75893 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 75894 | }, |
| | 75895 | .extra_temps = .{ |
| | 75896 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75897 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 75898 | .unused, |
| | 75899 | .unused, |
| | 75900 | .unused, |
| | 75901 | .unused, |
| | 75902 | .unused, |
| | 75903 | .unused, |
| | 75904 | .unused, |
| | 75905 | .unused, |
| | 75906 | .unused, |
| | 75907 | }, |
| | 75908 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 75909 | .each = .{ .once = &.{ |
| | 75910 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 75911 | .{ ._, ._pd, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 75912 | } }, |
| | 75913 | }, .{ |
| | 75914 | .required_features = .{ .avx, null, null, null }, |
| | 75915 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 75916 | .patterns = &.{ |
| | 75917 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 75918 | }, |
| | 75919 | .extra_temps = .{ |
| | 75920 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75921 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 75922 | .unused, |
| | 75923 | .unused, |
| | 75924 | .unused, |
| | 75925 | .unused, |
| | 75926 | .unused, |
| | 75927 | .unused, |
| | 75928 | .unused, |
| | 75929 | .unused, |
| | 75930 | .unused, |
| | 75931 | }, |
| | 75932 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 75933 | .each = .{ .once = &.{ |
| | 75934 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 75935 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 75936 | } }, |
| | 75937 | }, .{ |
| | 75938 | .required_features = .{ .x87, null, null, null }, |
| | 75939 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| | 75940 | .patterns = &.{ |
| | 75941 | .{ .src = .{ .mem, .none, .none } }, |
| | 75942 | .{ .src = .{ .to_x87, .none, .none } }, |
| | 75943 | }, |
| | 75944 | .extra_temps = .{ |
| | 75945 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 75946 | .unused, |
| | 75947 | .unused, |
| | 75948 | .unused, |
| | 75949 | .unused, |
| | 75950 | .unused, |
| | 75951 | .unused, |
| | 75952 | .unused, |
| | 75953 | .unused, |
| | 75954 | .unused, |
| | 75955 | .unused, |
| | 75956 | }, |
| | 75957 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused }, |
| | 75958 | .each = .{ .once = &.{ |
| | 75959 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 75960 | .{ ._, .f_, .chs, ._, ._, ._, ._ }, |
| | 75961 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| | 75962 | } }, |
| | 75963 | }, .{ |
| | 75964 | .required_features = .{ .avx, null, null, null }, |
| | 75965 | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, |
| | 75966 | .patterns = &.{ |
| | 75967 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 75968 | }, |
| | 75969 | .extra_temps = .{ |
| | 75970 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75971 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 75972 | .unused, |
| | 75973 | .unused, |
| | 75974 | .unused, |
| | 75975 | .unused, |
| | 75976 | .unused, |
| | 75977 | .unused, |
| | 75978 | .unused, |
| | 75979 | .unused, |
| | 75980 | .unused, |
| | 75981 | }, |
| | 75982 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 75983 | .each = .{ .once = &.{ |
| | 75984 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 75985 | .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 75986 | } }, |
| | 75987 | }, .{ |
| | 75988 | .required_features = .{ .sse2, null, null, null }, |
| | 75989 | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, |
| | 75990 | .patterns = &.{ |
| | 75991 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 75992 | }, |
| | 75993 | .extra_temps = .{ |
| | 75994 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 75995 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 75996 | .unused, |
| | 75997 | .unused, |
| | 75998 | .unused, |
| | 75999 | .unused, |
| | 76000 | .unused, |
| | 76001 | .unused, |
| | 76002 | .unused, |
| | 76003 | .unused, |
| | 76004 | .unused, |
| | 76005 | }, |
| | 76006 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 76007 | .each = .{ .once = &.{ |
| | 76008 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76009 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 76010 | } }, |
| | 76011 | }, .{ |
| | 76012 | .required_features = .{ .sse, null, null, null }, |
| | 76013 | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, |
| | 76014 | .patterns = &.{ |
| | 76015 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 76016 | }, |
| | 76017 | .extra_temps = .{ |
| | 76018 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 76019 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 76020 | .unused, |
| | 76021 | .unused, |
| | 76022 | .unused, |
| | 76023 | .unused, |
| | 76024 | .unused, |
| | 76025 | .unused, |
| | 76026 | .unused, |
| | 76027 | .unused, |
| | 76028 | .unused, |
| | 76029 | }, |
| | 76030 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 76031 | .each = .{ .once = &.{ |
| | 76032 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76033 | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 76034 | } }, |
| | 76035 | }, .{ |
| | 76036 | .required_features = .{ .avx2, null, null, null }, |
| | 76037 | .src_constraints = .{ .{ .scalar_any_float = .yword }, .any, .any }, |
| | 76038 | .patterns = &.{ |
| | 76039 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 76040 | }, |
| | 76041 | .extra_temps = .{ |
| | 76042 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 76043 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 76044 | .unused, |
| | 76045 | .unused, |
| | 76046 | .unused, |
| | 76047 | .unused, |
| | 76048 | .unused, |
| | 76049 | .unused, |
| | 76050 | .unused, |
| | 76051 | .unused, |
| | 76052 | .unused, |
| | 76053 | }, |
| | 76054 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 76055 | .each = .{ .once = &.{ |
| | 76056 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76057 | .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 76058 | } }, |
| | 76059 | }, .{ |
| | 76060 | .required_features = .{ .avx, null, null, null }, |
| | 76061 | .src_constraints = .{ .{ .scalar_any_float = .yword }, .any, .any }, |
| | 76062 | .patterns = &.{ |
| | 76063 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 76064 | }, |
| | 76065 | .extra_temps = .{ |
| | 76066 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 76067 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 76068 | .unused, |
| | 76069 | .unused, |
| | 76070 | .unused, |
| | 76071 | .unused, |
| | 76072 | .unused, |
| | 76073 | .unused, |
| | 76074 | .unused, |
| | 76075 | .unused, |
| | 76076 | .unused, |
| | 76077 | }, |
| | 76078 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 76079 | .each = .{ .once = &.{ |
| | 76080 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76081 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 76082 | } }, |
| | 76083 | }, .{ |
| | 76084 | .required_features = .{ .avx, null, null, null }, |
| | 76085 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 76086 | .patterns = &.{ |
| | 76087 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76088 | }, |
| | 76089 | .extra_temps = .{ |
| | 76090 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76091 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 76092 | .{ .kind = .{ .rc = .sse } }, |
| | 76093 | .{ .kind = .{ .rc = .sse } }, |
| | 76094 | .unused, |
| | 76095 | .unused, |
| | 76096 | .unused, |
| | 76097 | .unused, |
| | 76098 | .unused, |
| | 76099 | .unused, |
| | 76100 | .unused, |
| | 76101 | }, |
| | 76102 | .dst_temps = .{ .mem, .unused }, |
| | 76103 | .each = .{ .once = &.{ |
| | 76104 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76105 | .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 76106 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76107 | .{ .@"0:", .v_ps, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| | 76108 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| | 76109 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 76110 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76111 | } }, |
| | 76112 | }, .{ |
| | 76113 | .required_features = .{ .sse, null, null, null }, |
| | 76114 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 76115 | .patterns = &.{ |
| | 76116 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76117 | }, |
| | 76118 | .extra_temps = .{ |
| | 76119 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76120 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 76121 | .{ .kind = .{ .rc = .sse } }, |
| | 76122 | .{ .kind = .{ .rc = .sse } }, |
| | 76123 | .unused, |
| | 76124 | .unused, |
| | 76125 | .unused, |
| | 76126 | .unused, |
| | 76127 | .unused, |
| | 76128 | .unused, |
| | 76129 | .unused, |
| | 76130 | }, |
| | 76131 | .dst_temps = .{ .mem, .unused }, |
| | 76132 | .each = .{ .once = &.{ |
| | 76133 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76134 | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 76135 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76136 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| | 76137 | .{ ._, ._ps, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 76138 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| | 76139 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 76140 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76141 | } }, |
| | 76142 | }, .{ |
| | 76143 | .required_features = .{ .avx, null, null, null }, |
| | 76144 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 76145 | .patterns = &.{ |
| | 76146 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76147 | }, |
| | 76148 | .extra_temps = .{ |
| | 76149 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76150 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 76151 | .{ .kind = .{ .rc = .sse } }, |
| | 76152 | .{ .kind = .{ .rc = .sse } }, |
| | 76153 | .unused, |
| | 76154 | .unused, |
| | 76155 | .unused, |
| | 76156 | .unused, |
| | 76157 | .unused, |
| | 76158 | .unused, |
| | 76159 | .unused, |
| | 76160 | }, |
| | 76161 | .dst_temps = .{ .mem, .unused }, |
| | 76162 | .each = .{ .once = &.{ |
| | 76163 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76164 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 76165 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76166 | .{ .@"0:", .v_pd, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| | 76167 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| | 76168 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 76169 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76170 | } }, |
| | 76171 | }, .{ |
| | 76172 | .required_features = .{ .sse2, null, null, null }, |
| | 76173 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 76174 | .patterns = &.{ |
| | 76175 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76176 | }, |
| | 76177 | .extra_temps = .{ |
| | 76178 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76179 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 76180 | .{ .kind = .{ .rc = .sse } }, |
| | 76181 | .{ .kind = .{ .rc = .sse } }, |
| | 76182 | .unused, |
| | 76183 | .unused, |
| | 76184 | .unused, |
| | 76185 | .unused, |
| | 76186 | .unused, |
| | 76187 | .unused, |
| | 76188 | .unused, |
| | 76189 | }, |
| | 76190 | .dst_temps = .{ .mem, .unused }, |
| | 76191 | .each = .{ .once = &.{ |
| | 76192 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76193 | .{ ._, ._pd, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 76194 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76195 | .{ .@"0:", ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| | 76196 | .{ ._, ._pd, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 76197 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| | 76198 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 76199 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76200 | } }, |
| | 76201 | }, .{ |
| | 76202 | .required_features = .{ .avx2, null, null, null }, |
| | 76203 | .src_constraints = .{ .{ .multiple_scalar_any_float = .yword }, .any, .any }, |
| | 76204 | .patterns = &.{ |
| | 76205 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76206 | }, |
| | 76207 | .extra_temps = .{ |
| | 76208 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76209 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 76210 | .{ .kind = .{ .rc = .sse } }, |
| | 76211 | .{ .kind = .{ .rc = .sse } }, |
| | 76212 | .unused, |
| | 76213 | .unused, |
| | 76214 | .unused, |
| | 76215 | .unused, |
| | 76216 | .unused, |
| | 76217 | .unused, |
| | 76218 | .unused, |
| | 76219 | }, |
| | 76220 | .dst_temps = .{ .mem, .unused }, |
| | 76221 | .each = .{ .once = &.{ |
| | 76222 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76223 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 76224 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76225 | .{ .@"0:", .vp_, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| | 76226 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| | 76227 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 76228 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76229 | } }, |
| | 76230 | }, .{ |
| | 76231 | .required_features = .{ .avx, null, null, null }, |
| | 76232 | .src_constraints = .{ .{ .multiple_scalar_any_float = .yword }, .any, .any }, |
| | 76233 | .patterns = &.{ |
| | 76234 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76235 | }, |
| | 76236 | .extra_temps = .{ |
| | 76237 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76238 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| | 76239 | .{ .kind = .{ .rc = .sse } }, |
| | 76240 | .{ .kind = .{ .rc = .sse } }, |
| | 76241 | .unused, |
| | 76242 | .unused, |
| | 76243 | .unused, |
| | 76244 | .unused, |
| | 76245 | .unused, |
| | 76246 | .unused, |
| | 76247 | .unused, |
| | 76248 | }, |
| | 76249 | .dst_temps = .{ .mem, .unused }, |
| | 76250 | .each = .{ .once = &.{ |
| | 76251 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76252 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 76253 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76254 | .{ .@"0:", .v_pd, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| | 76255 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| | 76256 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 76257 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76258 | } }, |
| | 76259 | }, .{ |
| | 76260 | .required_features = .{ .sse2, null, null, null }, |
| | 76261 | .src_constraints = .{ .{ .multiple_scalar_any_float = .xword }, .any, .any }, |
| | 76262 | .patterns = &.{ |
| | 76263 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76264 | }, |
| | 76265 | .extra_temps = .{ |
| | 76266 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76267 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 76268 | .{ .kind = .{ .rc = .sse } }, |
| | 76269 | .{ .kind = .{ .rc = .sse } }, |
| | 76270 | .unused, |
| | 76271 | .unused, |
| | 76272 | .unused, |
| | 76273 | .unused, |
| | 76274 | .unused, |
| | 76275 | .unused, |
| | 76276 | .unused, |
| | 76277 | }, |
| | 76278 | .dst_temps = .{ .mem, .unused }, |
| | 76279 | .each = .{ .once = &.{ |
| | 76280 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76281 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 76282 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76283 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| | 76284 | .{ ._, .p_, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 76285 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| | 76286 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 76287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76288 | } }, |
| | 76289 | }, .{ |
| | 76290 | .required_features = .{ .sse, null, null, null }, |
| | 76291 | .src_constraints = .{ .{ .multiple_scalar_any_float = .xword }, .any, .any }, |
| | 76292 | .patterns = &.{ |
| | 76293 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 76294 | }, |
| | 76295 | .extra_temps = .{ |
| | 76296 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 76297 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| | 76298 | .{ .kind = .{ .rc = .sse } }, |
| | 76299 | .{ .kind = .{ .rc = .sse } }, |
| | 76300 | .unused, |
| | 76301 | .unused, |
| | 76302 | .unused, |
| | 76303 | .unused, |
| | 76304 | .unused, |
| | 76305 | .unused, |
| | 76306 | .unused, |
| | 76307 | }, |
| | 76308 | .dst_temps = .{ .mem, .unused }, |
| | 76309 | .each = .{ .once = &.{ |
| | 76310 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 76311 | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 76312 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 76313 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| | 76314 | .{ ._, ._ps, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 76315 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| | 76316 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 76317 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 76318 | } }, |
| | 76319 | } }) catch |err| switch (err) { |
| | 76320 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| | 76321 | @tagName(air_tag), |
| | 76322 | cg.typeOf(un_op).fmt(pt), |
| | 76323 | ops[0].tracking(cg), |
| | 76324 | }), |
| | 76325 | else => |e| return e, |
| | 76326 | }; |
| | 76327 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| | 76328 | }, |
| | 76329 | .cmp_lt, |
| | 76330 | .cmp_lt_optimized, |
| | 76331 | .cmp_lte, |
| | 76332 | .cmp_lte_optimized, |
| | 76333 | .cmp_gte, |
| | 76334 | .cmp_gte_optimized, |
| | 76335 | .cmp_gt, |
| | 76336 | .cmp_gt_optimized, |
| | 76337 | => |air_tag| if (use_old) try cg.airCmp(inst, air_tag.toCmpOp().?) else { |
| | 76338 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| | 76339 | const cmp_op = air_tag.toCmpOp().?; |
| | 76340 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 76341 | var res: [1]Temp = undefined; |
| | 76342 | (if (cg.floatBits(cg.typeOf(bin_op.lhs))) |_| err: { |
| | 76343 | switch (cmp_op) { |
| | 76344 | else => unreachable, |
| | 76345 | .lt, .lte => {}, |
| | 76346 | .gt, .gte => std.mem.swap(Temp, &ops[0], &ops[1]), |
| | 76347 | } |
| | 76348 | break :err cg.select(&res, &.{.bool}, &ops, switch (switch (cmp_op) { |
| | 76349 | else => unreachable, |
| | 76350 | .lt, .gt => true, |
| | 76351 | .lte, .gte => false, |
| | 76352 | }) { |
| | 76353 | inline false, true => |strict| comptime &.{ .{ |
| | 76354 | .required_features = .{ .f16c, null, null, null }, |
| | 76355 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, |
| | 76356 | .patterns = &.{ |
| | 76357 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76358 | }, |
| | 76359 | .extra_temps = .{ |
| | 76360 | .{ .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| | 76361 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| | 76362 | .unused, |
| | 76363 | .unused, |
| | 76364 | .unused, |
| | 76365 | .unused, |
| | 76366 | .unused, |
| | 76367 | .unused, |
| | 76368 | .unused, |
| | 76369 | .unused, |
| | 76370 | .unused, |
| | 76371 | }, |
| | 76372 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76373 | true => .a, |
| | 76374 | false => .ae, |
| | 76375 | } }, .unused }, |
| | 76376 | .clobbers = .{ .eflags = true }, |
| | 76377 | .each = .{ .once = &.{ |
| | 76378 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| | 76379 | .{ ._, .v_ps, .cvtph2, .tmp1x, .src1q, ._, ._ }, |
| | 76380 | .{ ._, .v_ss, .ucomi, .tmp0x, .tmp1d, ._, ._ }, |
| | 76381 | } }, |
| | 76382 | }, .{ |
| | 76383 | .required_features = .{ .sse, null, null, null }, |
| | 76384 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, |
| | 76385 | .patterns = &.{ |
| | 76386 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| | 76387 | }, |
| | 76388 | .call_frame = .{ .alignment = .@"16" }, |
| | 76389 | .extra_temps = .{ |
| | 76390 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 76391 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 76392 | .unused, |
| | 76393 | .unused, |
| | 76394 | .unused, |
| | 76395 | .unused, |
| | 76396 | .unused, |
| | 76397 | .unused, |
| | 76398 | .unused, |
| | 76399 | .unused, |
| | 76400 | .unused, |
| | 76401 | }, |
| | 76402 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76403 | true => .l, |
| | 76404 | false => .le, |
| | 76405 | } }, .unused }, |
| | 76406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 76407 | .each = .{ .once = &.{ |
| | 76408 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 76409 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, |
| | 76410 | } }, |
| | 76411 | }, .{ |
| | 76412 | .required_features = .{ .avx, null, null, null }, |
| | 76413 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, |
| | 76414 | .patterns = &.{ |
| | 76415 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76416 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76417 | }, |
| | 76418 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76419 | true => .a, |
| | 76420 | false => .ae, |
| | 76421 | } }, .unused }, |
| | 76422 | .clobbers = .{ .eflags = true }, |
| | 76423 | .each = .{ .once = &.{ |
| | 76424 | .{ ._, .v_ss, .ucomi, .src0x, .src1d, ._, ._ }, |
| | 76425 | } }, |
| | 76426 | }, .{ |
| | 76427 | .required_features = .{ .sse, null, null, null }, |
| | 76428 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, |
| | 76429 | .patterns = &.{ |
| | 76430 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76431 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76432 | }, |
| | 76433 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76434 | true => .a, |
| | 76435 | false => .ae, |
| | 76436 | } }, .unused }, |
| | 76437 | .clobbers = .{ .eflags = true }, |
| | 76438 | .each = .{ .once = &.{ |
| | 76439 | .{ ._, ._ss, .ucomi, .src0x, .src1d, ._, ._ }, |
| | 76440 | } }, |
| | 76441 | }, .{ |
| | 76442 | .required_features = .{ .avx, null, null, null }, |
| | 76443 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76444 | .patterns = &.{ |
| | 76445 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76446 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76447 | }, |
| | 76448 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76449 | true => .a, |
| | 76450 | false => .ae, |
| | 76451 | } }, .unused }, |
| | 76452 | .clobbers = .{ .eflags = true }, |
| | 76453 | .each = .{ .once = &.{ |
| | 76454 | .{ ._, .v_sd, .ucomi, .src0x, .src1q, ._, ._ }, |
| | 76455 | } }, |
| | 76456 | }, .{ |
| | 76457 | .required_features = .{ .sse2, null, null, null }, |
| | 76458 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76459 | .patterns = &.{ |
| | 76460 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76461 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76462 | }, |
| | 76463 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76464 | true => .a, |
| | 76465 | false => .ae, |
| | 76466 | } }, .unused }, |
| | 76467 | .clobbers = .{ .eflags = true }, |
| | 76468 | .each = .{ .once = &.{ |
| | 76469 | .{ ._, ._sd, .ucomi, .src0x, .src1q, ._, ._ }, |
| | 76470 | } }, |
| | 76471 | }, .{ |
| | 76472 | .required_features = .{ .x87, .cmov, null, null }, |
| | 76473 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76474 | .patterns = &.{ |
| | 76475 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 76476 | }, |
| | 76477 | .extra_temps = .{ |
| | 76478 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 76479 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 76480 | .unused, |
| | 76481 | .unused, |
| | 76482 | .unused, |
| | 76483 | .unused, |
| | 76484 | .unused, |
| | 76485 | .unused, |
| | 76486 | .unused, |
| | 76487 | .unused, |
| | 76488 | .unused, |
| | 76489 | }, |
| | 76490 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76491 | true => .a, |
| | 76492 | false => .ae, |
| | 76493 | } }, .unused }, |
| | 76494 | .clobbers = .{ .eflags = true }, |
| | 76495 | .each = .{ .once = &.{ |
| | 76496 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| | 76497 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 76498 | .{ ._, .f_p, .ucomi, .tmp0t, .tmp1t, ._, ._ }, |
| | 76499 | .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ }, |
| | 76500 | } }, |
| | 76501 | }, .{ |
| | 76502 | .required_features = .{ .sahf, .x87, null, null }, |
| | 76503 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76504 | .patterns = &.{ |
| | 76505 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 76506 | }, |
| | 76507 | .extra_temps = .{ |
| | 76508 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 76509 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 76510 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 76511 | .unused, |
| | 76512 | .unused, |
| | 76513 | .unused, |
| | 76514 | .unused, |
| | 76515 | .unused, |
| | 76516 | .unused, |
| | 76517 | .unused, |
| | 76518 | .unused, |
| | 76519 | }, |
| | 76520 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76521 | true => .a, |
| | 76522 | false => .ae, |
| | 76523 | } }, .unused }, |
| | 76524 | .clobbers = .{ .eflags = true }, |
| | 76525 | .each = .{ .once = &.{ |
| | 76526 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| | 76527 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 76528 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 76529 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 76530 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| | 76531 | } }, |
| | 76532 | }, .{ |
| | 76533 | .required_features = .{ .x87, null, null, null }, |
| | 76534 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76535 | .patterns = &.{ |
| | 76536 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 76537 | }, |
| | 76538 | .extra_temps = .{ |
| | 76539 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 76540 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 76541 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 76542 | .unused, |
| | 76543 | .unused, |
| | 76544 | .unused, |
| | 76545 | .unused, |
| | 76546 | .unused, |
| | 76547 | .unused, |
| | 76548 | .unused, |
| | 76549 | .unused, |
| | 76550 | }, |
| | 76551 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76552 | true => .z, |
| | 76553 | false => .nc, |
| | 76554 | } }, .unused }, |
| | 76555 | .clobbers = .{ .eflags = true }, |
| | 76556 | .each = .{ .once = &.{ |
| | 76557 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| | 76558 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 76559 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 76560 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 76561 | switch (strict) { |
| | 76562 | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, |
| | 76563 | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, |
| | 76564 | }, |
| | 76565 | } }, |
| | 76566 | }, .{ |
| | 76567 | .required_features = .{ .x87, .cmov, null, null }, |
| | 76568 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 76569 | .patterns = &.{ |
| | 76570 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 76571 | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, |
| | 76572 | }, |
| | 76573 | .extra_temps = .{ |
| | 76574 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 76575 | .unused, |
| | 76576 | .unused, |
| | 76577 | .unused, |
| | 76578 | .unused, |
| | 76579 | .unused, |
| | 76580 | .unused, |
| | 76581 | .unused, |
| | 76582 | .unused, |
| | 76583 | .unused, |
| | 76584 | .unused, |
| | 76585 | }, |
| | 76586 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76587 | true => .a, |
| | 76588 | false => .ae, |
| | 76589 | } }, .unused }, |
| | 76590 | .clobbers = .{ .eflags = true }, |
| | 76591 | .each = .{ .once = &.{ |
| | 76592 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 76593 | .{ ._, .f_p, .ucomi, .tmp0t, .src1t, ._, ._ }, |
| | 76594 | } }, |
| | 76595 | }, .{ |
| | 76596 | .required_features = .{ .sahf, .x87, null, null }, |
| | 76597 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 76598 | .patterns = &.{ |
| | 76599 | .{ .src = .{ .mem, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 76600 | }, |
| | 76601 | .extra_temps = .{ |
| | 76602 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 76603 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 76604 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 76605 | .unused, |
| | 76606 | .unused, |
| | 76607 | .unused, |
| | 76608 | .unused, |
| | 76609 | .unused, |
| | 76610 | .unused, |
| | 76611 | .unused, |
| | 76612 | .unused, |
| | 76613 | }, |
| | 76614 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76615 | true => .a, |
| | 76616 | false => .ae, |
| | 76617 | } }, .unused }, |
| | 76618 | .clobbers = .{ .eflags = true }, |
| | 76619 | .each = .{ .once = &.{ |
| | 76620 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| | 76621 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 76622 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 76623 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 76624 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| | 76625 | } }, |
| | 76626 | }, .{ |
| | 76627 | .required_features = .{ .sahf, .x87, null, null }, |
| | 76628 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 76629 | .patterns = &.{ |
| | 76630 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 76631 | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, |
| | 76632 | }, |
| | 76633 | .extra_temps = .{ |
| | 76634 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 76635 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 76636 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 76637 | .unused, |
| | 76638 | .unused, |
| | 76639 | .unused, |
| | 76640 | .unused, |
| | 76641 | .unused, |
| | 76642 | .unused, |
| | 76643 | .unused, |
| | 76644 | .unused, |
| | 76645 | }, |
| | 76646 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76647 | true => .a, |
| | 76648 | false => .ae, |
| | 76649 | } }, .unused }, |
| | 76650 | .clobbers = .{ .eflags = true }, |
| | 76651 | .each = .{ .once = &.{ |
| | 76652 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 76653 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, |
| | 76654 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 76655 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| | 76656 | } }, |
| | 76657 | }, .{ |
| | 76658 | .required_features = .{ .x87, null, null, null }, |
| | 76659 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 76660 | .patterns = &.{ |
| | 76661 | .{ .src = .{ .mem, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 76662 | }, |
| | 76663 | .extra_temps = .{ |
| | 76664 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 76665 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 76666 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 76667 | .unused, |
| | 76668 | .unused, |
| | 76669 | .unused, |
| | 76670 | .unused, |
| | 76671 | .unused, |
| | 76672 | .unused, |
| | 76673 | .unused, |
| | 76674 | .unused, |
| | 76675 | }, |
| | 76676 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76677 | true => .z, |
| | 76678 | false => .nc, |
| | 76679 | } }, .unused }, |
| | 76680 | .clobbers = .{ .eflags = true }, |
| | 76681 | .each = .{ .once = &.{ |
| | 76682 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| | 76683 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 76684 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 76685 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 76686 | switch (strict) { |
| | 76687 | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, |
| | 76688 | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, |
| | 76689 | }, |
| | 76690 | } }, |
| | 76691 | }, .{ |
| | 76692 | .required_features = .{ .x87, null, null, null }, |
| | 76693 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 76694 | .patterns = &.{ |
| | 76695 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 76696 | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, |
| | 76697 | }, |
| | 76698 | .extra_temps = .{ |
| | 76699 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 76700 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 76701 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 76702 | .unused, |
| | 76703 | .unused, |
| | 76704 | .unused, |
| | 76705 | .unused, |
| | 76706 | .unused, |
| | 76707 | .unused, |
| | 76708 | .unused, |
| | 76709 | .unused, |
| | 76710 | }, |
| | 76711 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76712 | true => .z, |
| | 76713 | false => .nc, |
| | 76714 | } }, .unused }, |
| | 76715 | .clobbers = .{ .eflags = true }, |
| | 76716 | .each = .{ .once = &.{ |
| | 76717 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 76718 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, |
| | 76719 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 76720 | switch (strict) { |
| | 76721 | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, |
| | 76722 | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, |
| | 76723 | }, |
| | 76724 | } }, |
| | 76725 | }, .{ |
| | 76726 | .required_features = .{ .sse, null, null, null }, |
| | 76727 | .src_constraints = .{ .{ .float = .xword }, .{ .float = .xword }, .any }, |
| | 76728 | .patterns = &.{ |
| | 76729 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| | 76730 | }, |
| | 76731 | .call_frame = .{ .alignment = .@"16" }, |
| | 76732 | .extra_temps = .{ |
| | 76733 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 76734 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 76735 | .unused, |
| | 76736 | .unused, |
| | 76737 | .unused, |
| | 76738 | .unused, |
| | 76739 | .unused, |
| | 76740 | .unused, |
| | 76741 | .unused, |
| | 76742 | .unused, |
| | 76743 | .unused, |
| | 76744 | }, |
| | 76745 | .dst_temps = .{ .{ .cc = switch (strict) { |
| | 76746 | true => .l, |
| | 76747 | false => .le, |
| | 76748 | } }, .unused }, |
| | 76749 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 76750 | .each = .{ .once = &.{ |
| | 76751 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 76752 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, |
| | 76753 | } }, |
| | 76754 | } }, |
| | 76755 | }); |
| | 76756 | } else err: { |
| | 76757 | res[0] = ops[0].cmpInts(cmp_op, &ops[1], cg) catch |err| break :err err; |
| | 76758 | }) catch |err| switch (err) { |
| | 76759 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| | 76760 | @tagName(air_tag), |
| | 76761 | cg.typeOf(bin_op.lhs).fmt(pt), |
| | 76762 | ops[0].tracking(cg), |
| | 76763 | ops[1].tracking(cg), |
| | 76764 | }), |
| | 76765 | else => |e| return e, |
| | 76766 | }; |
| | 76767 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 76768 | }, |
| | 76769 | .cmp_eq, |
| | 76770 | .cmp_eq_optimized, |
| | 76771 | .cmp_neq, |
| | 76772 | .cmp_neq_optimized, |
| | 76773 | => |air_tag| if (use_old) try cg.airCmp(inst, air_tag.toCmpOp().?) else { |
| | 76774 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| | 76775 | const cmp_op = air_tag.toCmpOp().?; |
| | 76776 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 76777 | const ty = cg.typeOf(bin_op.lhs); |
| | 76778 | var res: [1]Temp = undefined; |
| | 76779 | const OptInfo = struct { |
| | 76780 | deaths: [2]Air.Inst.Index, |
| | 76781 | res: [1]Temp, |
| | 76782 | state: State, |
| | 76783 | reloc: Mir.Inst.Index, |
| | 76784 | }; |
| | 76785 | var opt_info: ?OptInfo = null; |
| | 76786 | (err: switch (@as(enum { float, int }, if (cg.floatBits(ty)) |_| |
| | 76787 | .float |
| | 76788 | else if (cg.intInfo(ty)) |_| |
| | 76789 | .int |
| | 76790 | else category: { |
| | 76791 | const child_ty = ty.optionalChild(zcu); |
| | 76792 | const has_value_off: u31 = @intCast(child_ty.abiSize(zcu)); |
| | 76793 | var has_values: [2]Temp = undefined; |
| | 76794 | opt_info = @as(OptInfo, undefined); |
| | 76795 | for (&has_values, &ops, &opt_info.?.deaths) |*has_value, *op, *death| { |
| | 76796 | has_value.* = try op.read(.bool, .{ .disp = has_value_off }, cg); |
| | 76797 | const child = try op.read(child_ty, .{}, cg); |
| | 76798 | try op.die(cg); |
| | 76799 | op.* = child; |
| | 76800 | death.* = child.index; |
| | 76801 | } |
| | 76802 | cg.select( |
| | 76803 | &opt_info.?.res, |
| | 76804 | &.{.bool}, |
| | 76805 | &has_values, |
| | 76806 | switch (Condition.fromCompareOperatorUnsigned(cmp_op)) { |
| | 76807 | else => unreachable, |
| | 76808 | inline .e, .ne => |cc| comptime &.{.{ |
| | 76809 | .src_constraints = .{ .{ .size = .byte }, .{ .size = .byte }, .any }, |
| | 76810 | .patterns = &.{ |
| | 76811 | .{ .src = .{ .mem, .imm8, .none } }, |
| | 76812 | .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 76813 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 76814 | .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } }, |
| | 76815 | .{ .src = .{ .mem, .to_gpr, .none } }, |
| | 76816 | .{ .src = .{ .to_gpr, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 76817 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| | 76818 | }, |
| | 76819 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 76820 | .clobbers = .{ .eflags = true }, |
| | 76821 | .each = .{ .once = &.{ |
| | 76822 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 76823 | .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, |
| | 76824 | .{ ._, .fromCond(cc), .set, .dst0b, ._, ._, ._ }, |
| | 76825 | .{ ._, ._, .@"test", .src0b, .src1b, ._, ._ }, |
| | 76826 | } }, |
| | 76827 | }}, |
| 82404 | }, | 76828 | }, |
| 82405 | .call_frame = .{ .alignment = .@"16" }, | 76829 | ) catch |err| switch (err) { |
| 82406 | .extra_temps = .{ | 76830 | error.SelectFailed => unreachable, |
| 82407 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 76831 | else => |e| return e, |
| 82408 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 76832 | }; |
| 82409 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 76833 | for (has_values) |has_value| for (opt_info.?.res) |opt_res| { |
| | 76834 | if (has_value.index == opt_res.index) break; |
| | 76835 | } else try has_value.die(cg); |
| | 76836 | opt_info.?.state = cg.initRetroactiveState(); |
| | 76837 | opt_info.?.state.next_temp_index = cg.next_temp_index; |
| | 76838 | var state = try cg.saveState(); |
| | 76839 | state.next_temp_index = cg.next_temp_index; |
| | 76840 | for (ops) |op| try op.die(cg); |
| | 76841 | try cg.saveRetroactiveState(&opt_info.?.state); |
| | 76842 | opt_info.?.reloc = try cg.asmJccReloc(.z, undefined); |
| | 76843 | try cg.restoreState(state, &.{}, .{ |
| | 76844 | .emit_instructions = false, |
| | 76845 | .update_tracking = true, |
| | 76846 | .resurrect = true, |
| | 76847 | .close_scope = true, |
| | 76848 | }); |
| | 76849 | break :category if (cg.floatBits(child_ty)) |_| .float else .int; |
| | 76850 | })) { |
| | 76851 | .float => { |
| | 76852 | cg.select(&res, &.{.bool}, &ops, switch (switch (air_tag) { |
| | 76853 | else => unreachable, |
| | 76854 | .cmp_eq, .cmp_neq => false, |
| | 76855 | .cmp_eq_optimized, .cmp_neq_optimized => true, |
| | 76856 | }) { |
| | 76857 | inline false, true => |optimized| comptime &.{ .{ |
| | 76858 | .required_features = .{ .f16c, null, null, null }, |
| | 76859 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, |
| | 76860 | .patterns = &.{ |
| | 76861 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 76862 | }, |
| | 76863 | .extra_temps = .{ |
| | 76864 | .{ .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| | 76865 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| | 76866 | .unused, |
| | 76867 | .unused, |
| | 76868 | .unused, |
| | 76869 | .unused, |
| | 76870 | .unused, |
| | 76871 | .unused, |
| | 76872 | .unused, |
| | 76873 | .unused, |
| | 76874 | .unused, |
| | 76875 | }, |
| | 76876 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 76877 | false => .z_and_np, |
| | 76878 | true => .z, |
| | 76879 | } }, .unused }, |
| | 76880 | .clobbers = .{ .eflags = true }, |
| | 76881 | .each = .{ .once = &.{ |
| | 76882 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| | 76883 | .{ ._, .v_ps, .cvtph2, .tmp1x, .src1q, ._, ._ }, |
| | 76884 | .{ ._, .v_ss, .ucomi, .tmp0x, .tmp1d, ._, ._ }, |
| | 76885 | } }, |
| | 76886 | }, .{ |
| | 76887 | .required_features = .{ .sse, null, null, null }, |
| | 76888 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, |
| | 76889 | .patterns = &.{ |
| | 76890 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| | 76891 | }, |
| | 76892 | .call_frame = .{ .alignment = .@"16" }, |
| | 76893 | .extra_temps = .{ |
| | 76894 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 76895 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 76896 | .unused, |
| | 76897 | .unused, |
| | 76898 | .unused, |
| | 76899 | .unused, |
| | 76900 | .unused, |
| | 76901 | .unused, |
| | 76902 | .unused, |
| | 76903 | .unused, |
| | 76904 | .unused, |
| | 76905 | }, |
| | 76906 | .dst_temps = .{ .{ .cc = .z }, .unused }, |
| | 76907 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 76908 | .each = .{ .once = &.{ |
| | 76909 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 76910 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, |
| | 76911 | } }, |
| | 76912 | }, .{ |
| | 76913 | .required_features = .{ .avx, null, null, null }, |
| | 76914 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, |
| | 76915 | .patterns = &.{ |
| | 76916 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 76917 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76918 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 76919 | }, |
| | 76920 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 76921 | false => .z_and_np, |
| | 76922 | true => .z, |
| | 76923 | } }, .unused }, |
| | 76924 | .clobbers = .{ .eflags = true }, |
| | 76925 | .each = .{ .once = &.{ |
| | 76926 | .{ ._, .v_ss, .ucomi, .src0x, .src1d, ._, ._ }, |
| | 76927 | } }, |
| | 76928 | }, .{ |
| | 76929 | .required_features = .{ .sse, null, null, null }, |
| | 76930 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, |
| | 76931 | .patterns = &.{ |
| | 76932 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 76933 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76934 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 76935 | }, |
| | 76936 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 76937 | false => .z_and_np, |
| | 76938 | true => .z, |
| | 76939 | } }, .unused }, |
| | 76940 | .clobbers = .{ .eflags = true }, |
| | 76941 | .each = .{ .once = &.{ |
| | 76942 | .{ ._, ._ss, .ucomi, .src0x, .src1d, ._, ._ }, |
| | 76943 | } }, |
| | 76944 | }, .{ |
| | 76945 | .required_features = .{ .avx, null, null, null }, |
| | 76946 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76947 | .patterns = &.{ |
| | 76948 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 76949 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76950 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 76951 | }, |
| | 76952 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 76953 | false => .z_and_np, |
| | 76954 | true => .z, |
| | 76955 | } }, .unused }, |
| | 76956 | .clobbers = .{ .eflags = true }, |
| | 76957 | .each = .{ .once = &.{ |
| | 76958 | .{ ._, .v_sd, .ucomi, .src0x, .src1q, ._, ._ }, |
| | 76959 | } }, |
| | 76960 | }, .{ |
| | 76961 | .required_features = .{ .sse2, null, null, null }, |
| | 76962 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76963 | .patterns = &.{ |
| | 76964 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 76965 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 76966 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 76967 | }, |
| | 76968 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 76969 | false => .z_and_np, |
| | 76970 | true => .z, |
| | 76971 | } }, .unused }, |
| | 76972 | .clobbers = .{ .eflags = true }, |
| | 76973 | .each = .{ .once = &.{ |
| | 76974 | .{ ._, ._sd, .ucomi, .src0x, .src1q, ._, ._ }, |
| | 76975 | } }, |
| | 76976 | }, .{ |
| | 76977 | .required_features = .{ .x87, .cmov, null, null }, |
| | 76978 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 76979 | .patterns = &.{ |
| | 76980 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 76981 | }, |
| | 76982 | .extra_temps = .{ |
| | 76983 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 76984 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 76985 | .unused, |
| | 76986 | .unused, |
| | 76987 | .unused, |
| | 76988 | .unused, |
| | 76989 | .unused, |
| | 76990 | .unused, |
| | 76991 | .unused, |
| | 76992 | .unused, |
| | 76993 | .unused, |
| | 76994 | }, |
| | 76995 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 76996 | false => .z_and_np, |
| | 76997 | true => .z, |
| | 76998 | } }, .unused }, |
| | 76999 | .clobbers = .{ .eflags = true }, |
| | 77000 | .each = .{ .once = &.{ |
| | 77001 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| | 77002 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 77003 | .{ ._, .f_p, .ucomi, .tmp0t, .tmp1t, ._, ._ }, |
| | 77004 | .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ }, |
| | 77005 | } }, |
| | 77006 | }, .{ |
| | 77007 | .required_features = .{ .sahf, .x87, null, null }, |
| | 77008 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 77009 | .patterns = &.{ |
| | 77010 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 77011 | }, |
| | 77012 | .extra_temps = .{ |
| | 77013 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 77014 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 77015 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 77016 | .unused, |
| | 77017 | .unused, |
| | 77018 | .unused, |
| | 77019 | .unused, |
| | 77020 | .unused, |
| | 77021 | .unused, |
| | 77022 | .unused, |
| | 77023 | .unused, |
| | 77024 | }, |
| | 77025 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 77026 | false => .z_and_np, |
| | 77027 | true => .z, |
| | 77028 | } }, .unused }, |
| | 77029 | .clobbers = .{ .eflags = true }, |
| | 77030 | .each = .{ .once = &.{ |
| | 77031 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| | 77032 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 77033 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 77034 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77035 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| | 77036 | } }, |
| | 77037 | }, .{ |
| | 77038 | .required_features = .{ .x87, null, null, null }, |
| | 77039 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| | 77040 | .patterns = &.{ |
| | 77041 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 77042 | }, |
| | 77043 | .extra_temps = .{ |
| | 77044 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 77045 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 77046 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 77047 | .unused, |
| | 77048 | .unused, |
| | 77049 | .unused, |
| | 77050 | .unused, |
| | 77051 | .unused, |
| | 77052 | .unused, |
| | 77053 | .unused, |
| | 77054 | .unused, |
| | 77055 | }, |
| | 77056 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 77057 | false => .z, |
| | 77058 | true => .nz, |
| | 77059 | } }, .unused }, |
| | 77060 | .clobbers = .{ .eflags = true }, |
| | 77061 | .each = .{ .once = switch (optimized) { |
| | 77062 | false => &.{ |
| | 77063 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| | 77064 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 77065 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 77066 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77067 | .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ }, |
| | 77068 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ }, |
| | 77069 | }, |
| | 77070 | true => &.{ |
| | 77071 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| | 77072 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 77073 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 77074 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77075 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ }, |
| | 77076 | }, |
| | 77077 | } }, |
| | 77078 | }, .{ |
| | 77079 | .required_features = .{ .x87, .cmov, null, null }, |
| | 77080 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 77081 | .patterns = &.{ |
| | 77082 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 77083 | .{ .src = .{ .mem, .to_x87, .none } }, |
| | 77084 | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| | 77085 | }, |
| | 77086 | .extra_temps = .{ |
| | 77087 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 77088 | .unused, |
| | 77089 | .unused, |
| | 77090 | .unused, |
| | 77091 | .unused, |
| | 77092 | .unused, |
| | 77093 | .unused, |
| | 77094 | .unused, |
| | 77095 | .unused, |
| | 77096 | .unused, |
| | 77097 | .unused, |
| | 77098 | }, |
| | 77099 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 77100 | false => .z_and_np, |
| | 77101 | true => .z, |
| | 77102 | } }, .unused }, |
| | 77103 | .clobbers = .{ .eflags = true }, |
| | 77104 | .each = .{ .once = &.{ |
| | 77105 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 77106 | .{ ._, .f_p, .ucomi, .tmp0t, .src1t, ._, ._ }, |
| | 77107 | } }, |
| | 77108 | }, .{ |
| | 77109 | .required_features = .{ .sahf, .x87, null, null }, |
| | 77110 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 77111 | .patterns = &.{ |
| | 77112 | .{ .src = .{ .mem, .mem, .none } }, |
| | 77113 | }, |
| | 77114 | .extra_temps = .{ |
| | 77115 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 77116 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 77117 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 77118 | .unused, |
| | 77119 | .unused, |
| | 77120 | .unused, |
| | 77121 | .unused, |
| | 77122 | .unused, |
| | 77123 | .unused, |
| | 77124 | .unused, |
| | 77125 | .unused, |
| | 77126 | }, |
| | 77127 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 77128 | false => .z_and_np, |
| | 77129 | true => .z, |
| | 77130 | } }, .unused }, |
| | 77131 | .clobbers = .{ .eflags = true }, |
| | 77132 | .each = .{ .once = &.{ |
| | 77133 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| | 77134 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 77135 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 77136 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77137 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| | 77138 | } }, |
| | 77139 | }, .{ |
| | 77140 | .required_features = .{ .sahf, .x87, null, null }, |
| | 77141 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 77142 | .patterns = &.{ |
| | 77143 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 77144 | .{ .src = .{ .mem, .to_x87, .none } }, |
| | 77145 | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| | 77146 | }, |
| | 77147 | .extra_temps = .{ |
| | 77148 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 77149 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 77150 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 77151 | .unused, |
| | 77152 | .unused, |
| | 77153 | .unused, |
| | 77154 | .unused, |
| | 77155 | .unused, |
| | 77156 | .unused, |
| | 77157 | .unused, |
| | 77158 | .unused, |
| | 77159 | }, |
| | 77160 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 77161 | false => .z_and_np, |
| | 77162 | true => .z, |
| | 77163 | } }, .unused }, |
| | 77164 | .clobbers = .{ .eflags = true }, |
| | 77165 | .each = .{ .once = &.{ |
| | 77166 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 77167 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, |
| | 77168 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77169 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| | 77170 | } }, |
| | 77171 | }, .{ |
| | 77172 | .required_features = .{ .x87, null, null, null }, |
| | 77173 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 77174 | .patterns = &.{ |
| | 77175 | .{ .src = .{ .mem, .mem, .none } }, |
| | 77176 | }, |
| | 77177 | .extra_temps = .{ |
| | 77178 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 77179 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 77180 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 77181 | .unused, |
| | 77182 | .unused, |
| | 77183 | .unused, |
| | 77184 | .unused, |
| | 77185 | .unused, |
| | 77186 | .unused, |
| | 77187 | .unused, |
| | 77188 | .unused, |
| | 77189 | }, |
| | 77190 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 77191 | false => .z, |
| | 77192 | true => .nz, |
| | 77193 | } }, .unused }, |
| | 77194 | .clobbers = .{ .eflags = true }, |
| | 77195 | .each = .{ .once = switch (optimized) { |
| | 77196 | false => &.{ |
| | 77197 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| | 77198 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 77199 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 77200 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77201 | .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ }, |
| | 77202 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ }, |
| | 77203 | }, |
| | 77204 | true => &.{ |
| | 77205 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| | 77206 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 77207 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 77208 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77209 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ }, |
| | 77210 | }, |
| | 77211 | } }, |
| | 77212 | }, .{ |
| | 77213 | .required_features = .{ .x87, null, null, null }, |
| | 77214 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| | 77215 | .patterns = &.{ |
| | 77216 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| | 77217 | .{ .src = .{ .mem, .to_x87, .none } }, |
| | 77218 | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| | 77219 | }, |
| | 77220 | .extra_temps = .{ |
| | 77221 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 77222 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 77223 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 77224 | .unused, |
| | 77225 | .unused, |
| | 77226 | .unused, |
| | 77227 | .unused, |
| | 77228 | .unused, |
| | 77229 | .unused, |
| | 77230 | .unused, |
| | 77231 | .unused, |
| | 77232 | }, |
| | 77233 | .dst_temps = .{ .{ .cc = switch (optimized) { |
| | 77234 | false => .z, |
| | 77235 | true => .nz, |
| | 77236 | } }, .unused }, |
| | 77237 | .clobbers = .{ .eflags = true }, |
| | 77238 | .each = .{ .once = switch (optimized) { |
| | 77239 | false => &.{ |
| | 77240 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 77241 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, |
| | 77242 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77243 | .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ }, |
| | 77244 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ }, |
| | 77245 | }, |
| | 77246 | true => &.{ |
| | 77247 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 77248 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, |
| | 77249 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| | 77250 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ }, |
| | 77251 | }, |
| | 77252 | } }, |
| | 77253 | }, .{ |
| | 77254 | .required_features = .{ .sse, null, null, null }, |
| | 77255 | .src_constraints = .{ .{ .float = .xword }, .{ .float = .xword }, .any }, |
| | 77256 | .patterns = &.{ |
| | 77257 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| | 77258 | }, |
| | 77259 | .call_frame = .{ .alignment = .@"16" }, |
| | 77260 | .extra_temps = .{ |
| | 77261 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 77262 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 77263 | .unused, |
| | 77264 | .unused, |
| | 77265 | .unused, |
| | 77266 | .unused, |
| | 77267 | .unused, |
| | 77268 | .unused, |
| | 77269 | .unused, |
| | 77270 | .unused, |
| | 77271 | .unused, |
| | 77272 | }, |
| | 77273 | .dst_temps = .{ .{ .cc = .z }, .unused }, |
| | 77274 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 77275 | .each = .{ .once = &.{ |
| | 77276 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 77277 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, |
| | 77278 | } }, |
| | 77279 | } }, |
| | 77280 | }) catch |err| break :err err; |
| | 77281 | switch (cmp_op) { |
| | 77282 | else => unreachable, |
| | 77283 | .eq => {}, |
| | 77284 | .neq => { |
| | 77285 | const cc = &res[0].unwrap(cg).temp.tracking(cg).short.eflags; |
| | 77286 | cc.* = cc.negate(); |
| | 77287 | }, |
| | 77288 | } |
| | 77289 | }, |
| | 77290 | .int => res[0] = ops[0].cmpInts(cmp_op, &ops[1], cg) catch |err| break :err err, |
| | 77291 | }) catch |err| switch (err) { |
| | 77292 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| | 77293 | @tagName(air_tag), |
| | 77294 | cg.typeOf(bin_op.lhs).fmt(pt), |
| | 77295 | ops[0].tracking(cg), |
| | 77296 | ops[1].tracking(cg), |
| | 77297 | }), |
| | 77298 | else => |e| return e, |
| | 77299 | }; |
| | 77300 | if (opt_info) |*oi| { |
| | 77301 | for (ops) |op| for (res) |r| { |
| | 77302 | if (op.index == r.index) break; |
| | 77303 | } else try op.die(cg); |
| | 77304 | try cg.genCopy(.bool, oi.res[0].tracking(cg).short, res[0].tracking(cg).short, .{}); |
| | 77305 | try res[0].die(cg); |
| | 77306 | res[0] = oi.res[0]; |
| | 77307 | try cg.restoreState(oi.state, &oi.deaths, .{ |
| | 77308 | .emit_instructions = true, |
| | 77309 | .update_tracking = true, |
| | 77310 | .resurrect = true, |
| | 77311 | .close_scope = true, |
| | 77312 | }); |
| | 77313 | cg.performReloc(oi.reloc); |
| | 77314 | @memset(&ops, res[0]); |
| | 77315 | } |
| | 77316 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 77317 | }, |
| | 77318 | .cmp_vector, .cmp_vector_optimized => |air_tag| if (use_old) try cg.airCmpVector(inst) else fallback: { |
| | 77319 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| | 77320 | const extra = cg.air.extraData(Air.VectorCmp, ty_pl.payload).data; |
| | 77321 | switch (extra.compareOperator()) { |
| | 77322 | .eq, .neq => {}, |
| | 77323 | .lt, .lte, .gte, .gt => if (cg.floatBits(cg.typeOf(extra.lhs).childType(zcu)) == null) |
| | 77324 | break :fallback try cg.airCmpVector(inst), |
| | 77325 | } |
| | 77326 | var ops = try cg.tempsFromOperands(inst, .{ extra.lhs, extra.rhs }); |
| | 77327 | var res: [1]Temp = undefined; |
| | 77328 | (err: switch (extra.compareOperator()) { |
| | 77329 | .lt, .lte, .gte, .gt => |cmp_op| { |
| | 77330 | switch (cmp_op) { |
| | 77331 | else => unreachable, |
| | 77332 | .lt, .lte => {}, |
| | 77333 | .gt, .gte => std.mem.swap(Temp, &ops[0], &ops[1]), |
| | 77334 | } |
| | 77335 | break :err cg.select(&res, &.{ty_pl.ty.toType()}, &ops, switch (@as(Condition, switch (cmp_op) { |
| | 77336 | else => unreachable, |
| | 77337 | .lt, .gt => .l, |
| | 77338 | .lte, .gte => .le, |
| | 77339 | })) { |
| | 77340 | else => unreachable, |
| | 77341 | inline .l, .le => |cc| comptime &.{ .{ |
| | 77342 | .required_features = .{ .f16c, null, null, null }, |
| | 77343 | .src_constraints = .{ |
| | 77344 | .{ .scalar_float = .{ .of = .word, .is = .word } }, |
| | 77345 | .{ .scalar_float = .{ .of = .word, .is = .word } }, |
| | 77346 | .any, |
| | 77347 | }, |
| | 77348 | .patterns = &.{ |
| | 77349 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77350 | }, |
| | 77351 | .extra_temps = .{ |
| | 77352 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| | 77353 | .unused, |
| | 77354 | .unused, |
| | 77355 | .unused, |
| | 77356 | .unused, |
| | 77357 | .unused, |
| | 77358 | .unused, |
| | 77359 | .unused, |
| | 77360 | .unused, |
| | 77361 | .unused, |
| | 77362 | .unused, |
| | 77363 | }, |
| | 77364 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77365 | .ref = .src0, |
| | 77366 | .rc = .sse, |
| | 77367 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77368 | } }, .unused }, |
| | 77369 | .each = .{ .once = &.{ |
| | 77370 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 77371 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, |
| | 77372 | .{ ._, .v_ss, .cmp, .dst0x, .dst0x, .tmp0d, .vp(switch (cc) { |
| | 77373 | else => unreachable, |
| | 77374 | .l => .lt, |
| | 77375 | .le => .le, |
| | 77376 | }) }, |
| | 77377 | } }, |
| | 77378 | }, .{ |
| | 77379 | .required_features = .{ .f16c, null, null, null }, |
| | 77380 | .src_constraints = .{ |
| | 77381 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, |
| | 77382 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, |
| | 77383 | .any, |
| | 77384 | }, |
| | 77385 | .patterns = &.{ |
| | 77386 | .{ .src = .{ .mem, .mem, .none } }, |
| | 77387 | .{ .src = .{ .sse, .mem, .none } }, |
| | 77388 | .{ .src = .{ .mem, .sse, .none } }, |
| | 77389 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77390 | }, |
| | 77391 | .extra_temps = .{ |
| | 77392 | .{ .kind = .{ .rc = .sse } }, |
| | 77393 | .unused, |
| | 77394 | .unused, |
| | 77395 | .unused, |
| | 77396 | .unused, |
| | 77397 | .unused, |
| | 77398 | .unused, |
| | 77399 | .unused, |
| | 77400 | .unused, |
| | 77401 | .unused, |
| | 77402 | .unused, |
| | 77403 | }, |
| | 77404 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77405 | .ref = .src0, |
| | 77406 | .rc = .sse, |
| | 77407 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77408 | } }, .unused }, |
| | 77409 | .each = .{ .once = &.{ |
| | 77410 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 77411 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, |
| | 77412 | .{ ._, .v_ps, .cmp, .dst0x, .dst0x, .tmp0x, .vp(switch (cc) { |
| | 77413 | else => unreachable, |
| | 77414 | .l => .lt, |
| | 77415 | .le => .le, |
| | 77416 | }) }, |
| | 77417 | } }, |
| | 77418 | }, .{ |
| | 77419 | .required_features = .{ .f16c, null, null, null }, |
| | 77420 | .src_constraints = .{ |
| | 77421 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, |
| | 77422 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, |
| | 77423 | .any, |
| | 77424 | }, |
| | 77425 | .patterns = &.{ |
| | 77426 | .{ .src = .{ .mem, .mem, .none } }, |
| | 77427 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 77428 | .{ .src = .{ .mem, .to_sse, .none } }, |
| | 77429 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77430 | }, |
| | 77431 | .extra_temps = .{ |
| | 77432 | .{ .kind = .{ .rc = .sse } }, |
| | 77433 | .unused, |
| | 77434 | .unused, |
| | 77435 | .unused, |
| | 77436 | .unused, |
| | 77437 | .unused, |
| | 77438 | .unused, |
| | 77439 | .unused, |
| | 77440 | .unused, |
| | 77441 | .unused, |
| | 77442 | .unused, |
| | 77443 | }, |
| | 77444 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77445 | .ref = .src0, |
| | 77446 | .rc = .sse, |
| | 77447 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77448 | } }, .unused }, |
| | 77449 | .each = .{ .once = &.{ |
| | 77450 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| | 77451 | .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, |
| | 77452 | .{ ._, .v_ps, .cmp, .dst0y, .dst0y, .tmp0y, .vp(switch (cc) { |
| | 77453 | else => unreachable, |
| | 77454 | .l => .lt, |
| | 77455 | .le => .le, |
| | 77456 | }) }, |
| | 77457 | } }, |
| | 77458 | }, .{ |
| | 77459 | .required_features = .{ .avx, null, null, null }, |
| | 77460 | .src_constraints = .{ |
| | 77461 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 77462 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 77463 | .any, |
| | 77464 | }, |
| | 77465 | .patterns = &.{ |
| | 77466 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 77467 | }, |
| | 77468 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77469 | .ref = .src0, |
| | 77470 | .rc = .sse, |
| | 77471 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77472 | } }, .unused }, |
| | 77473 | .each = .{ .once = &.{ |
| | 77474 | .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { |
| | 77475 | else => unreachable, |
| | 77476 | .l => .gt, |
| | 77477 | .le => .ge, |
| | 77478 | }) }, |
| | 77479 | } }, |
| | 77480 | }, .{ |
| | 77481 | .required_features = .{ .avx, null, null, null }, |
| | 77482 | .src_constraints = .{ |
| | 77483 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 77484 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 77485 | .any, |
| | 77486 | }, |
| | 77487 | .patterns = &.{ |
| | 77488 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 77489 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77490 | }, |
| | 77491 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77492 | .ref = .src0, |
| | 77493 | .rc = .sse, |
| | 77494 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77495 | } }, .unused }, |
| | 77496 | .each = .{ .once = &.{ |
| | 77497 | .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { |
| | 77498 | else => unreachable, |
| | 77499 | .l => .lt, |
| | 77500 | .le => .le, |
| | 77501 | }) }, |
| | 77502 | } }, |
| | 77503 | }, .{ |
| | 77504 | .required_features = .{ .sse, null, null, null }, |
| | 77505 | .src_constraints = .{ |
| | 77506 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 77507 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 77508 | .any, |
| | 77509 | }, |
| | 77510 | .patterns = &.{ |
| | 77511 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 77512 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 77513 | }, |
| | 77514 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 77515 | .ref = .src0, |
| | 77516 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77517 | } }, .unused }, |
| | 77518 | .each = .{ .once = &.{ |
| | 77519 | .{ ._, ._ss, .cmp, .dst0x, .src1d, .sp(switch (cc) { |
| | 77520 | else => unreachable, |
| | 77521 | .l => .lt, |
| | 77522 | .le => .le, |
| | 77523 | }), ._ }, |
| | 77524 | } }, |
| | 77525 | }, .{ |
| | 77526 | .required_features = .{ .avx, null, null, null }, |
| | 77527 | .src_constraints = .{ |
| | 77528 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 77529 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 77530 | .any, |
| | 77531 | }, |
| | 77532 | .patterns = &.{ |
| | 77533 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 77534 | }, |
| | 77535 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77536 | .ref = .src0, |
| | 77537 | .rc = .sse, |
| | 77538 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77539 | } }, .unused }, |
| | 77540 | .each = .{ .once = &.{ |
| | 77541 | .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { |
| | 77542 | else => unreachable, |
| | 77543 | .l => .gt, |
| | 77544 | .le => .ge, |
| | 77545 | }) }, |
| | 77546 | } }, |
| | 77547 | }, .{ |
| | 77548 | .required_features = .{ .avx, null, null, null }, |
| | 77549 | .src_constraints = .{ |
| | 77550 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 77551 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 77552 | .any, |
| | 77553 | }, |
| | 77554 | .patterns = &.{ |
| | 77555 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 77556 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77557 | }, |
| | 77558 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77559 | .ref = .src0, |
| | 77560 | .rc = .sse, |
| | 77561 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77562 | } }, .unused }, |
| | 77563 | .each = .{ .once = &.{ |
| | 77564 | .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { |
| | 77565 | else => unreachable, |
| | 77566 | .l => .lt, |
| | 77567 | .le => .le, |
| | 77568 | }) }, |
| | 77569 | } }, |
| | 77570 | }, .{ |
| | 77571 | .required_features = .{ .sse, null, null, null }, |
| | 77572 | .src_constraints = .{ |
| | 77573 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 77574 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 77575 | .any, |
| | 77576 | }, |
| | 77577 | .patterns = &.{ |
| | 77578 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 77579 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 77580 | }, |
| | 77581 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 77582 | .ref = .src0, |
| | 77583 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77584 | } }, .unused }, |
| | 77585 | .each = .{ .once = &.{ |
| | 77586 | .{ ._, ._ps, .cmp, .dst0x, .src1x, .sp(switch (cc) { |
| | 77587 | else => unreachable, |
| | 77588 | .l => .lt, |
| | 77589 | .le => .le, |
| | 77590 | }), ._ }, |
| | 77591 | } }, |
| | 77592 | }, .{ |
| | 77593 | .required_features = .{ .avx, null, null, null }, |
| | 77594 | .src_constraints = .{ |
| | 77595 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 77596 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 77597 | .any, |
| | 77598 | }, |
| | 77599 | .patterns = &.{ |
| | 77600 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 77601 | }, |
| | 77602 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77603 | .ref = .src0, |
| | 77604 | .rc = .sse, |
| | 77605 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77606 | } }, .unused }, |
| | 77607 | .each = .{ .once = &.{ |
| | 77608 | .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { |
| | 77609 | else => unreachable, |
| | 77610 | .l => .gt, |
| | 77611 | .le => .ge, |
| | 77612 | }) }, |
| | 77613 | } }, |
| | 77614 | }, .{ |
| | 77615 | .required_features = .{ .avx, null, null, null }, |
| | 77616 | .src_constraints = .{ |
| | 77617 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 77618 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 77619 | .any, |
| | 77620 | }, |
| | 77621 | .patterns = &.{ |
| | 77622 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 77623 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77624 | }, |
| | 77625 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77626 | .ref = .src0, |
| | 77627 | .rc = .sse, |
| | 77628 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 77629 | } }, .unused }, |
| | 77630 | .each = .{ .once = &.{ |
| | 77631 | .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { |
| | 77632 | else => unreachable, |
| | 77633 | .l => .lt, |
| | 77634 | .le => .le, |
| | 77635 | }) }, |
| | 77636 | } }, |
| | 77637 | }, .{ |
| | 77638 | .required_features = .{ .avx, null, null, null }, |
| | 77639 | .src_constraints = .{ |
| | 77640 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 77641 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 77642 | .any, |
| | 77643 | }, |
| | 77644 | .patterns = &.{ |
| | 77645 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 77646 | }, |
| | 77647 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77648 | .ref = .src0, |
| | 77649 | .rc = .sse, |
| | 77650 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77651 | } }, .unused }, |
| | 77652 | .each = .{ .once = &.{ |
| | 77653 | .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { |
| | 77654 | else => unreachable, |
| | 77655 | .l => .gt, |
| | 77656 | .le => .ge, |
| | 77657 | }) }, |
| | 77658 | } }, |
| | 77659 | }, .{ |
| | 77660 | .required_features = .{ .avx, null, null, null }, |
| | 77661 | .src_constraints = .{ |
| | 77662 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 77663 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 77664 | .any, |
| | 77665 | }, |
| | 77666 | .patterns = &.{ |
| | 77667 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 77668 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77669 | }, |
| | 77670 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77671 | .ref = .src0, |
| | 77672 | .rc = .sse, |
| | 77673 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77674 | } }, .unused }, |
| | 77675 | .each = .{ .once = &.{ |
| | 77676 | .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { |
| | 77677 | else => unreachable, |
| | 77678 | .l => .lt, |
| | 77679 | .le => .le, |
| | 77680 | }) }, |
| | 77681 | } }, |
| | 77682 | }, .{ |
| | 77683 | .required_features = .{ .sse2, null, null, null }, |
| | 77684 | .src_constraints = .{ |
| | 77685 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 77686 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 77687 | .any, |
| | 77688 | }, |
| | 77689 | .patterns = &.{ |
| | 77690 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 77691 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 77692 | }, |
| | 77693 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 77694 | .ref = .src0, |
| | 77695 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77696 | } }, .unused }, |
| | 77697 | .each = .{ .once = &.{ |
| | 77698 | .{ ._, ._sd, .cmp, .dst0x, .src1q, .sp(switch (cc) { |
| | 77699 | else => unreachable, |
| | 77700 | .l => .lt, |
| | 77701 | .le => .le, |
| | 77702 | }), ._ }, |
| | 77703 | } }, |
| | 77704 | }, .{ |
| | 77705 | .required_features = .{ .avx, null, null, null }, |
| | 77706 | .src_constraints = .{ |
| | 77707 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 77708 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 77709 | .any, |
| | 77710 | }, |
| | 77711 | .patterns = &.{ |
| | 77712 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 77713 | }, |
| | 77714 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77715 | .ref = .src0, |
| | 77716 | .rc = .sse, |
| | 77717 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77718 | } }, .unused }, |
| | 77719 | .each = .{ .once = &.{ |
| | 77720 | .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { |
| | 77721 | else => unreachable, |
| | 77722 | .l => .gt, |
| | 77723 | .le => .ge, |
| | 77724 | }) }, |
| | 77725 | } }, |
| | 77726 | }, .{ |
| | 77727 | .required_features = .{ .avx, null, null, null }, |
| | 77728 | .src_constraints = .{ |
| | 77729 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 77730 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 77731 | .any, |
| | 77732 | }, |
| | 77733 | .patterns = &.{ |
| | 77734 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 77735 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77736 | }, |
| | 77737 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77738 | .ref = .src0, |
| | 77739 | .rc = .sse, |
| | 77740 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77741 | } }, .unused }, |
| | 77742 | .each = .{ .once = &.{ |
| | 77743 | .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { |
| | 77744 | else => unreachable, |
| | 77745 | .l => .lt, |
| | 77746 | .le => .le, |
| | 77747 | }) }, |
| | 77748 | } }, |
| | 77749 | }, .{ |
| | 77750 | .required_features = .{ .sse2, null, null, null }, |
| | 77751 | .src_constraints = .{ |
| | 77752 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 77753 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 77754 | .any, |
| | 77755 | }, |
| | 77756 | .patterns = &.{ |
| | 77757 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 77758 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 77759 | }, |
| | 77760 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 77761 | .ref = .src0, |
| | 77762 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77763 | } }, .unused }, |
| | 77764 | .each = .{ .once = &.{ |
| | 77765 | .{ ._, ._pd, .cmp, .dst0x, .src1x, .sp(switch (cc) { |
| | 77766 | else => unreachable, |
| | 77767 | .l => .lt, |
| | 77768 | .le => .le, |
| | 77769 | }), ._ }, |
| | 77770 | } }, |
| | 77771 | }, .{ |
| | 77772 | .required_features = .{ .avx, null, null, null }, |
| | 77773 | .src_constraints = .{ |
| | 77774 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 77775 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 77776 | .any, |
| | 77777 | }, |
| | 77778 | .patterns = &.{ |
| | 77779 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 77780 | }, |
| | 77781 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77782 | .ref = .src0, |
| | 77783 | .rc = .sse, |
| | 77784 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77785 | } }, .unused }, |
| | 77786 | .each = .{ .once = &.{ |
| | 77787 | .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { |
| | 77788 | else => unreachable, |
| | 77789 | .l => .gt, |
| | 77790 | .le => .ge, |
| | 77791 | }) }, |
| | 77792 | } }, |
| | 77793 | }, .{ |
| | 77794 | .required_features = .{ .avx, null, null, null }, |
| | 77795 | .src_constraints = .{ |
| | 77796 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 77797 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 77798 | .any, |
| | 77799 | }, |
| | 77800 | .patterns = &.{ |
| | 77801 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 77802 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 77803 | }, |
| | 77804 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 77805 | .ref = .src0, |
| | 77806 | .rc = .sse, |
| | 77807 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 77808 | } }, .unused }, |
| | 77809 | .each = .{ .once = &.{ |
| | 77810 | .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { |
| | 77811 | else => unreachable, |
| | 77812 | .l => .lt, |
| | 77813 | .le => .le, |
| | 77814 | }) }, |
| | 77815 | } }, |
| | 77816 | }, .{ |
| | 77817 | .required_features = .{ .f16c, .slow_incdec, null, null }, |
| | 77818 | .src_constraints = .{ |
| | 77819 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 77820 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 77821 | .any, |
| | 77822 | }, |
| | 77823 | .patterns = &.{ |
| | 77824 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 77825 | }, |
| | 77826 | .extra_temps = .{ |
| | 77827 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 77828 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 77829 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 77830 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 77831 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 77832 | .unused, |
| | 77833 | .unused, |
| | 77834 | .unused, |
| | 77835 | .unused, |
| | 77836 | .unused, |
| | 77837 | .unused, |
| | 77838 | }, |
| | 77839 | .dst_temps = .{ .mem, .unused }, |
| | 77840 | .clobbers = .{ .eflags = true }, |
| | 77841 | .each = .{ .once = &.{ |
| | 77842 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 77843 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 77844 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 77845 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 77846 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { |
| | 77847 | else => unreachable, |
| | 77848 | .l => .lt, |
| | 77849 | .le => .le, |
| | 77850 | }) }, |
| | 77851 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 77852 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 77853 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 77854 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 77855 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 77856 | } }, |
| | 77857 | }, .{ |
| | 77858 | .required_features = .{ .f16c, null, null, null }, |
| | 77859 | .src_constraints = .{ |
| | 77860 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 77861 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 77862 | .any, |
| | 77863 | }, |
| | 77864 | .patterns = &.{ |
| | 77865 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 77866 | }, |
| | 77867 | .extra_temps = .{ |
| | 77868 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 77869 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 77870 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 77871 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 77872 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 77873 | .unused, |
| | 77874 | .unused, |
| | 77875 | .unused, |
| | 77876 | .unused, |
| | 77877 | .unused, |
| | 77878 | .unused, |
| | 77879 | }, |
| | 77880 | .dst_temps = .{ .mem, .unused }, |
| | 77881 | .clobbers = .{ .eflags = true }, |
| | 77882 | .each = .{ .once = &.{ |
| | 77883 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 77884 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 77885 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 77886 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 77887 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { |
| | 77888 | else => unreachable, |
| | 77889 | .l => .lt, |
| | 77890 | .le => .le, |
| | 77891 | }) }, |
| | 77892 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 77893 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 77894 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| | 77895 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 77896 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 77897 | } }, |
| | 77898 | }, .{ |
| | 77899 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 77900 | .src_constraints = .{ |
| | 77901 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 77902 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 77903 | .any, |
| | 77904 | }, |
| | 77905 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 77906 | .patterns = &.{ |
| | 77907 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 77908 | }, |
| | 77909 | .call_frame = .{ .alignment = .@"16" }, |
| | 77910 | .extra_temps = .{ |
| | 77911 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 77912 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 77913 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 77914 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 77915 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 77916 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 77917 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 77918 | .unused, |
| | 77919 | .unused, |
| | 77920 | .unused, |
| | 77921 | .unused, |
| | 77922 | }, |
| | 77923 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 77924 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 77925 | .each = .{ .once = &.{ |
| | 77926 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 77927 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 77928 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, |
| | 77929 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 77930 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 77931 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 77932 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 77933 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 77934 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 77935 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 77936 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 77937 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 77938 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, |
| | 77939 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 77940 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 77941 | } }, |
| | 77942 | }, .{ |
| | 77943 | .required_features = .{ .avx, null, null, null }, |
| | 77944 | .src_constraints = .{ |
| | 77945 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 77946 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 77947 | .any, |
| | 77948 | }, |
| | 77949 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 77950 | .patterns = &.{ |
| | 77951 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 77952 | }, |
| | 77953 | .call_frame = .{ .alignment = .@"16" }, |
| | 77954 | .extra_temps = .{ |
| | 77955 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 77956 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 77957 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 77958 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 77959 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 77960 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 77961 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 77962 | .unused, |
| | 77963 | .unused, |
| | 77964 | .unused, |
| | 77965 | .unused, |
| | 77966 | }, |
| | 77967 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 77968 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 77969 | .each = .{ .once = &.{ |
| | 77970 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 77971 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 77972 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, |
| | 77973 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 77974 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 77975 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 77976 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 77977 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 77978 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 77979 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 77980 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 77981 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 77982 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 77983 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 77984 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 77985 | } }, |
| | 77986 | }, .{ |
| | 77987 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 77988 | .src_constraints = .{ |
| | 77989 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 77990 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 77991 | .any, |
| | 77992 | }, |
| | 77993 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 77994 | .patterns = &.{ |
| | 77995 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 77996 | }, |
| | 77997 | .call_frame = .{ .alignment = .@"16" }, |
| | 77998 | .extra_temps = .{ |
| | 77999 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78000 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78001 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78002 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78003 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78004 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78005 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 78006 | .unused, |
| | 78007 | .unused, |
| | 78008 | .unused, |
| | 78009 | .unused, |
| | 78010 | }, |
| | 78011 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 78012 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78013 | .each = .{ .once = &.{ |
| | 78014 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 78015 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78016 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 78017 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 78018 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78019 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78020 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 78021 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 78022 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 78023 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 78024 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78025 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 78026 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 78027 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, |
| | 78028 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78029 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78030 | } }, |
| | 78031 | }, .{ |
| | 78032 | .required_features = .{ .sse2, null, null, null }, |
| | 78033 | .src_constraints = .{ |
| | 78034 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78035 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78036 | .any, |
| | 78037 | }, |
| | 78038 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 78039 | .patterns = &.{ |
| | 78040 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78041 | }, |
| | 78042 | .call_frame = .{ .alignment = .@"16" }, |
| | 78043 | .extra_temps = .{ |
| | 78044 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78045 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78046 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78047 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78048 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78049 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78050 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 78051 | .unused, |
| | 78052 | .unused, |
| | 78053 | .unused, |
| | 78054 | .unused, |
| | 78055 | }, |
| | 78056 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 78057 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78058 | .each = .{ .once = &.{ |
| | 78059 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 78060 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78061 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 78062 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 78063 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78064 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78065 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 78066 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 78067 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 78068 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 78069 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78070 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 78071 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 78072 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 78073 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78074 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78075 | } }, |
| | 78076 | }, .{ |
| | 78077 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| | 78078 | .src_constraints = .{ |
| | 78079 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78080 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78081 | .any, |
| | 78082 | }, |
| | 78083 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 78084 | .patterns = &.{ |
| | 78085 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78086 | }, |
| | 78087 | .call_frame = .{ .alignment = .@"16" }, |
| | 78088 | .extra_temps = .{ |
| | 78089 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78090 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78091 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78092 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78093 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78094 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78095 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 78096 | .{ .type = .f32, .kind = .mem }, |
| | 78097 | .unused, |
| | 78098 | .unused, |
| | 78099 | .unused, |
| | 78100 | }, |
| | 78101 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 78102 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78103 | .each = .{ .once = &.{ |
| | 78104 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 78105 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78106 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 78107 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 78108 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, |
| | 78109 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 78110 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 78111 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, |
| | 78112 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 78113 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 78114 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 78115 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 78116 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78117 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 78118 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 78119 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, |
| | 78120 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78121 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78122 | } }, |
| | 78123 | }, .{ |
| | 78124 | .required_features = .{ .sse, null, null, null }, |
| | 78125 | .src_constraints = .{ |
| | 78126 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78127 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78128 | .any, |
| | 78129 | }, |
| | 78130 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 78131 | .patterns = &.{ |
| | 78132 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78133 | }, |
| | 78134 | .call_frame = .{ .alignment = .@"16" }, |
| | 78135 | .extra_temps = .{ |
| | 78136 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78137 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78138 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78139 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78140 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78141 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78142 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 78143 | .{ .type = .f32, .kind = .mem }, |
| | 78144 | .unused, |
| | 78145 | .unused, |
| | 78146 | .unused, |
| | 78147 | }, |
| | 78148 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 78149 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78150 | .each = .{ .once = &.{ |
| | 78151 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 78152 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78153 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 78154 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 78155 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, |
| | 78156 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 78157 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 78158 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, |
| | 78159 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 78160 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 78161 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 78162 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 78163 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78164 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 78165 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 78166 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 78167 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78168 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78169 | } }, |
| | 78170 | }, .{ |
| | 78171 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, |
| | 78172 | .src_constraints = .{ |
| | 78173 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78174 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78175 | .any, |
| | 78176 | }, |
| | 78177 | .patterns = &.{ |
| | 78178 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78179 | }, |
| | 78180 | .call_frame = .{ .alignment = .@"16" }, |
| | 78181 | .extra_temps = .{ |
| | 78182 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78183 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 78184 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78185 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78186 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78187 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78188 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78189 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 78190 | .unused, |
| | 78191 | .unused, |
| | 78192 | .unused, |
| | 78193 | }, |
| | 78194 | .dst_temps = .{ .mem, .unused }, |
| | 78195 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78196 | .each = .{ .once = &.{ |
| | 78197 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78198 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78199 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| | 78200 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 78201 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 78202 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 78203 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 78204 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 78205 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 78206 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 78207 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 78208 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 78209 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| | 78210 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78211 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78212 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78213 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 78214 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 78215 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78216 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78217 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78218 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78219 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78220 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 78221 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 78222 | } }, |
| | 78223 | }, .{ |
| | 78224 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 78225 | .src_constraints = .{ |
| | 78226 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78227 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78228 | .any, |
| | 78229 | }, |
| | 78230 | .patterns = &.{ |
| | 78231 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78232 | }, |
| | 78233 | .call_frame = .{ .alignment = .@"16" }, |
| | 78234 | .extra_temps = .{ |
| | 78235 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78236 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 78237 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78238 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78239 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78240 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78241 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78242 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 78243 | .unused, |
| | 78244 | .unused, |
| | 78245 | .unused, |
| | 78246 | }, |
| | 78247 | .dst_temps = .{ .mem, .unused }, |
| | 78248 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78249 | .each = .{ .once = &.{ |
| | 78250 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78251 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78252 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| | 78253 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 78254 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 78255 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 78256 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 78257 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 78258 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 78259 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 78260 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 78261 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 78262 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 78263 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78264 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78265 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78266 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 78267 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 78268 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78269 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78270 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78271 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78272 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78273 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 78274 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 78275 | } }, |
| | 78276 | }, .{ |
| | 78277 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, |
| | 78278 | .src_constraints = .{ |
| | 78279 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78280 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78281 | .any, |
| | 78282 | }, |
| | 78283 | .patterns = &.{ |
| | 78284 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78285 | }, |
| | 78286 | .call_frame = .{ .alignment = .@"16" }, |
| | 78287 | .extra_temps = .{ |
| | 78288 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78289 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 78290 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78291 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78292 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78293 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78294 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78295 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 78296 | .unused, |
| | 78297 | .unused, |
| | 78298 | .unused, |
| | 78299 | }, |
| | 78300 | .dst_temps = .{ .mem, .unused }, |
| | 78301 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78302 | .each = .{ .once = &.{ |
| | 78303 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78304 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78305 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 78306 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78307 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| | 78308 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78309 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 78310 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 78311 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 78312 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 78313 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 78314 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 78315 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 78316 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| | 78317 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78318 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78319 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78320 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 78321 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 78322 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78323 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78324 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78325 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78326 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78327 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 78328 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 78329 | } }, |
| | 78330 | }, .{ |
| | 78331 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| | 78332 | .src_constraints = .{ |
| | 78333 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78334 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78335 | .any, |
| | 78336 | }, |
| | 78337 | .patterns = &.{ |
| | 78338 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78339 | }, |
| | 78340 | .call_frame = .{ .alignment = .@"16" }, |
| | 78341 | .extra_temps = .{ |
| | 78342 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78343 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 78344 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78345 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78346 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78347 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78348 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78349 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 78350 | .unused, |
| | 78351 | .unused, |
| | 78352 | .unused, |
| | 78353 | }, |
| | 78354 | .dst_temps = .{ .mem, .unused }, |
| | 78355 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78356 | .each = .{ .once = &.{ |
| | 78357 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78358 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78359 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 78360 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78361 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| | 78362 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 78363 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 78364 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 78365 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 78366 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 78367 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 78368 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 78369 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 78370 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 78371 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78372 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78373 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78374 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 78375 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 78376 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78377 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78378 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78379 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78380 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78381 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 78382 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 78383 | } }, |
| | 78384 | }, .{ |
| | 78385 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, |
| | 78386 | .src_constraints = .{ |
| | 78387 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78388 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78389 | .any, |
| | 78390 | }, |
| | 78391 | .patterns = &.{ |
| | 78392 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78393 | }, |
| | 78394 | .call_frame = .{ .alignment = .@"16" }, |
| | 78395 | .extra_temps = .{ |
| | 78396 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78397 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 78398 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78399 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78400 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78401 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78402 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78403 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 78404 | .{ .type = .f32, .kind = .mem }, |
| | 78405 | .unused, |
| | 78406 | .unused, |
| | 78407 | }, |
| | 78408 | .dst_temps = .{ .mem, .unused }, |
| | 78409 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78410 | .each = .{ .once = &.{ |
| | 78411 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78412 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78413 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 78414 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 78415 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, |
| | 78416 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 78417 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 78418 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, |
| | 78419 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 78420 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 78421 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 78422 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 78423 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 78424 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 78425 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 78426 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| | 78427 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78428 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78429 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78430 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 78431 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 78432 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78433 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78434 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78435 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78436 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78437 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 78438 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 78439 | } }, |
| | 78440 | }, .{ |
| | 78441 | .required_features = .{ .@"64bit", .sse, null, null }, |
| | 78442 | .src_constraints = .{ |
| | 78443 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78444 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 78445 | .any, |
| | 78446 | }, |
| | 78447 | .patterns = &.{ |
| | 78448 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78449 | }, |
| | 78450 | .call_frame = .{ .alignment = .@"16" }, |
| | 78451 | .extra_temps = .{ |
| | 78452 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78453 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 78454 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 78455 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 78456 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 78457 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 78458 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 78459 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 78460 | .{ .type = .f32, .kind = .mem }, |
| | 78461 | .unused, |
| | 78462 | .unused, |
| | 78463 | }, |
| | 78464 | .dst_temps = .{ .mem, .unused }, |
| | 78465 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 78466 | .each = .{ .once = &.{ |
| | 78467 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 78468 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78469 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 78470 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 78471 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, |
| | 78472 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 78473 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 78474 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, |
| | 78475 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 78476 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 78477 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 78478 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 78479 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 78480 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 78481 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 78482 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 78483 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78484 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78485 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 78486 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 78487 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 78488 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78489 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 78490 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 78491 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 78492 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78493 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 78494 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 78495 | } }, |
| | 78496 | }, .{ |
| | 78497 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 78498 | .src_constraints = .{ |
| | 78499 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78500 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78501 | .any, |
| | 78502 | }, |
| | 78503 | .patterns = &.{ |
| | 78504 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78505 | }, |
| | 78506 | .extra_temps = .{ |
| | 78507 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78508 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 78509 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 78510 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78511 | .unused, |
| | 78512 | .unused, |
| | 78513 | .unused, |
| | 78514 | .unused, |
| | 78515 | .unused, |
| | 78516 | .unused, |
| | 78517 | .unused, |
| | 78518 | }, |
| | 78519 | .dst_temps = .{ .mem, .unused }, |
| | 78520 | .clobbers = .{ .eflags = true }, |
| | 78521 | .each = .{ .once = &.{ |
| | 78522 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78523 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 78524 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 78525 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 78526 | else => unreachable, |
| | 78527 | .l => .lt, |
| | 78528 | .le => .le, |
| | 78529 | }) }, |
| | 78530 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, |
| | 78531 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 78532 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 78533 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 78534 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78535 | } }, |
| | 78536 | }, .{ |
| | 78537 | .required_features = .{ .avx, null, null, null }, |
| | 78538 | .src_constraints = .{ |
| | 78539 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78540 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78541 | .any, |
| | 78542 | }, |
| | 78543 | .patterns = &.{ |
| | 78544 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78545 | }, |
| | 78546 | .extra_temps = .{ |
| | 78547 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78548 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 78549 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 78550 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78551 | .unused, |
| | 78552 | .unused, |
| | 78553 | .unused, |
| | 78554 | .unused, |
| | 78555 | .unused, |
| | 78556 | .unused, |
| | 78557 | .unused, |
| | 78558 | }, |
| | 78559 | .dst_temps = .{ .mem, .unused }, |
| | 78560 | .clobbers = .{ .eflags = true }, |
| | 78561 | .each = .{ .once = &.{ |
| | 78562 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78563 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 78564 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 78565 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 78566 | else => unreachable, |
| | 78567 | .l => .lt, |
| | 78568 | .le => .le, |
| | 78569 | }) }, |
| | 78570 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, |
| | 78571 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 78572 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, |
| | 78573 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 78574 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78575 | } }, |
| | 78576 | }, .{ |
| | 78577 | .required_features = .{ .sse2, null, null, null }, |
| | 78578 | .src_constraints = .{ |
| | 78579 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78580 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78581 | .any, |
| | 78582 | }, |
| | 78583 | .patterns = &.{ |
| | 78584 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78585 | }, |
| | 78586 | .extra_temps = .{ |
| | 78587 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78588 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 78589 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 78590 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 78591 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78592 | .unused, |
| | 78593 | .unused, |
| | 78594 | .unused, |
| | 78595 | .unused, |
| | 78596 | .unused, |
| | 78597 | .unused, |
| | 78598 | }, |
| | 78599 | .dst_temps = .{ .mem, .unused }, |
| | 78600 | .clobbers = .{ .eflags = true }, |
| | 78601 | .each = .{ .once = &.{ |
| | 78602 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78603 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 78604 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 78605 | .{ ._, ._ps, .mova, .tmp3x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, |
| | 78606 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 78607 | else => unreachable, |
| | 78608 | .l => .lt, |
| | 78609 | .le => .le, |
| | 78610 | }), ._ }, |
| | 78611 | .{ ._, ._ps, .cmp, .tmp3x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { |
| | 78612 | else => unreachable, |
| | 78613 | .l => .lt, |
| | 78614 | .le => .le, |
| | 78615 | }), ._ }, |
| | 78616 | .{ ._, .p_w, .ackssd, .tmp2x, .tmp3x, ._, ._ }, |
| | 78617 | .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ }, |
| | 78618 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| | 78619 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 78620 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 78621 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 78622 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78623 | } }, |
| | 78624 | }, .{ |
| | 78625 | .required_features = .{ .sse, null, null, null }, |
| | 78626 | .src_constraints = .{ |
| | 78627 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78628 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 78629 | .any, |
| | 78630 | }, |
| | 78631 | .patterns = &.{ |
| | 78632 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78633 | }, |
| | 78634 | .extra_temps = .{ |
| | 78635 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78636 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 78637 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 78638 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78639 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78640 | .unused, |
| | 78641 | .unused, |
| | 78642 | .unused, |
| | 78643 | .unused, |
| | 78644 | .unused, |
| | 78645 | .unused, |
| | 78646 | }, |
| | 78647 | .dst_temps = .{ .mem, .unused }, |
| | 78648 | .clobbers = .{ .eflags = true }, |
| | 78649 | .each = .{ .once = &.{ |
| | 78650 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78651 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 78652 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 78653 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 78654 | else => unreachable, |
| | 78655 | .l => .lt, |
| | 78656 | .le => .le, |
| | 78657 | }), ._ }, |
| | 78658 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, |
| | 78659 | .{ ._, ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, |
| | 78660 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { |
| | 78661 | else => unreachable, |
| | 78662 | .l => .lt, |
| | 78663 | .le => .le, |
| | 78664 | }), ._ }, |
| | 78665 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| | 78666 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, |
| | 78667 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, |
| | 78668 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 78669 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 78670 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 78671 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78672 | } }, |
| | 78673 | }, .{ |
| | 78674 | .required_features = .{ .sse, null, null, null }, |
| | 78675 | .src_constraints = .{ |
| | 78676 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 78677 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 78678 | .any, |
| | 78679 | }, |
| | 78680 | .patterns = &.{ |
| | 78681 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78682 | }, |
| | 78683 | .extra_temps = .{ |
| | 78684 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78685 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 78686 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 78687 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78688 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78689 | .unused, |
| | 78690 | .unused, |
| | 78691 | .unused, |
| | 78692 | .unused, |
| | 78693 | .unused, |
| | 78694 | .unused, |
| | 78695 | }, |
| | 78696 | .dst_temps = .{ .mem, .unused }, |
| | 78697 | .clobbers = .{ .eflags = true }, |
| | 78698 | .each = .{ .once = &.{ |
| | 78699 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78700 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 78701 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 78702 | .{ .@"0:", ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, -16), ._, ._ }, |
| | 78703 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, -16), .sp(switch (cc) { |
| | 78704 | else => unreachable, |
| | 78705 | .l => .lt, |
| | 78706 | .le => .le, |
| | 78707 | }), ._ }, |
| | 78708 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| | 78709 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, |
| | 78710 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, |
| | 78711 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 78712 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 78713 | .{ .@"1:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 78714 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 78715 | else => unreachable, |
| | 78716 | .l => .lt, |
| | 78717 | .le => .le, |
| | 78718 | }), ._ }, |
| | 78719 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, |
| | 78720 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 78721 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78722 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 78723 | } }, |
| | 78724 | }, .{ |
| | 78725 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 78726 | .src_constraints = .{ |
| | 78727 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 78728 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 78729 | .any, |
| | 78730 | }, |
| | 78731 | .patterns = &.{ |
| | 78732 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78733 | }, |
| | 78734 | .extra_temps = .{ |
| | 78735 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78736 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 78737 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 78738 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 78739 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78740 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78741 | .unused, |
| | 78742 | .unused, |
| | 78743 | .unused, |
| | 78744 | .unused, |
| | 78745 | .unused, |
| | 78746 | }, |
| | 78747 | .dst_temps = .{ .mem, .unused }, |
| | 78748 | .clobbers = .{ .eflags = true }, |
| | 78749 | .each = .{ .once = &.{ |
| | 78750 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78751 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 78752 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 78753 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, |
| | 78754 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 78755 | else => unreachable, |
| | 78756 | .l => .lt, |
| | 78757 | .le => .le, |
| | 78758 | }) }, |
| | 78759 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { |
| | 78760 | else => unreachable, |
| | 78761 | .l => .lt, |
| | 78762 | .le => .le, |
| | 78763 | }) }, |
| | 78764 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 78765 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, |
| | 78766 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 78767 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, |
| | 78768 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 78769 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 78770 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, |
| | 78771 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78772 | } }, |
| | 78773 | }, .{ |
| | 78774 | .required_features = .{ .avx, null, null, null }, |
| | 78775 | .src_constraints = .{ |
| | 78776 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 78777 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 78778 | .any, |
| | 78779 | }, |
| | 78780 | .patterns = &.{ |
| | 78781 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78782 | }, |
| | 78783 | .extra_temps = .{ |
| | 78784 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78785 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 78786 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 78787 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 78788 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78789 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78790 | .unused, |
| | 78791 | .unused, |
| | 78792 | .unused, |
| | 78793 | .unused, |
| | 78794 | .unused, |
| | 78795 | }, |
| | 78796 | .dst_temps = .{ .mem, .unused }, |
| | 78797 | .clobbers = .{ .eflags = true }, |
| | 78798 | .each = .{ .once = &.{ |
| | 78799 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78800 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 78801 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 78802 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, |
| | 78803 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 78804 | else => unreachable, |
| | 78805 | .l => .lt, |
| | 78806 | .le => .le, |
| | 78807 | }) }, |
| | 78808 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { |
| | 78809 | else => unreachable, |
| | 78810 | .l => .lt, |
| | 78811 | .le => .le, |
| | 78812 | }) }, |
| | 78813 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 78814 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, |
| | 78815 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 78816 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, |
| | 78817 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 78818 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, |
| | 78819 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, |
| | 78820 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78821 | } }, |
| | 78822 | }, .{ |
| | 78823 | .required_features = .{ .avx, null, null, null }, |
| | 78824 | .src_constraints = .{ |
| | 78825 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 78826 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 78827 | .any, |
| | 78828 | }, |
| | 78829 | .patterns = &.{ |
| | 78830 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78831 | }, |
| | 78832 | .extra_temps = .{ |
| | 78833 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78834 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 78835 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78836 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 78837 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78838 | .unused, |
| | 78839 | .unused, |
| | 78840 | .unused, |
| | 78841 | .unused, |
| | 78842 | .unused, |
| | 78843 | .unused, |
| | 78844 | }, |
| | 78845 | .dst_temps = .{ .mem, .unused }, |
| | 78846 | .clobbers = .{ .eflags = true }, |
| | 78847 | .each = .{ .once = &.{ |
| | 78848 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78849 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78850 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 78851 | .{ .@"0:", .v_pd, .mova, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 78852 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 78853 | else => unreachable, |
| | 78854 | .l => .lt, |
| | 78855 | .le => .le, |
| | 78856 | }) }, |
| | 78857 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp3y, ._, ._ }, |
| | 78858 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| | 78859 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| | 78860 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| | 78861 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 78862 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78863 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| | 78864 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| | 78865 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| | 78866 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 78867 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 78868 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78869 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 78870 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78871 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 78872 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 78873 | } }, |
| | 78874 | }, .{ |
| | 78875 | .required_features = .{ .sse2, null, null, null }, |
| | 78876 | .src_constraints = .{ |
| | 78877 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 78878 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 78879 | .any, |
| | 78880 | }, |
| | 78881 | .patterns = &.{ |
| | 78882 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 78883 | }, |
| | 78884 | .extra_temps = .{ |
| | 78885 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78886 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 78887 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78888 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 78889 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78890 | .unused, |
| | 78891 | .unused, |
| | 78892 | .unused, |
| | 78893 | .unused, |
| | 78894 | .unused, |
| | 78895 | .unused, |
| | 78896 | }, |
| | 78897 | .dst_temps = .{ .mem, .unused }, |
| | 78898 | .clobbers = .{ .eflags = true }, |
| | 78899 | .each = .{ .once = &.{ |
| | 78900 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78901 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78902 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 78903 | .{ .@"0:", ._pd, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 78904 | .{ ._, ._pd, .cmp, .tmp3x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 78905 | else => unreachable, |
| | 78906 | .l => .lt, |
| | 78907 | .le => .le, |
| | 78908 | }), ._ }, |
| | 78909 | .{ ._, ._pd, .movmsk, .tmp4d, .tmp3x, ._, ._ }, |
| | 78910 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| | 78911 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| | 78912 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| | 78913 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 78914 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78915 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| | 78916 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| | 78917 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| | 78918 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 78919 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 78920 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78921 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 78922 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78923 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 78924 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 78925 | } }, |
| | 78926 | }, .{ |
| | 78927 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, |
| | 78928 | .src_constraints = .{ |
| | 78929 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 78930 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 78931 | .any, |
| | 78932 | }, |
| | 78933 | .patterns = &.{ |
| | 78934 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 78935 | }, |
| | 78936 | .extra_temps = .{ |
| | 78937 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78938 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 78939 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78940 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78941 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 78942 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 78943 | .unused, |
| | 78944 | .unused, |
| | 78945 | .unused, |
| | 78946 | .unused, |
| | 78947 | .unused, |
| | 78948 | }, |
| | 78949 | .dst_temps = .{ .mem, .unused }, |
| | 78950 | .clobbers = .{ .eflags = true }, |
| | 78951 | .each = .{ .once = &.{ |
| | 78952 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 78953 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 78954 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 78955 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 78956 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, |
| | 78957 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, |
| | 78958 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, |
| | 78959 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, |
| | 78960 | .{ ._, .fromCond(switch (cc) { |
| | 78961 | else => unreachable, |
| | 78962 | .l => .a, |
| | 78963 | .le => .ae, |
| | 78964 | }), .set, .tmp3b, ._, ._, ._ }, |
| | 78965 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 78966 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 78967 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 78968 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 78969 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 78970 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 78971 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 78972 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 78973 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 78974 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 78975 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 78976 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 78977 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 78978 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 78979 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 78980 | } }, |
| | 78981 | }, .{ |
| | 78982 | .required_features = .{ .x87, .cmov, null, null }, |
| | 78983 | .src_constraints = .{ |
| | 78984 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 78985 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 78986 | .any, |
| | 78987 | }, |
| | 78988 | .patterns = &.{ |
| | 78989 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 78990 | }, |
| | 78991 | .extra_temps = .{ |
| | 78992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 78993 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 78994 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 78995 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 78996 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 78997 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 78998 | .unused, |
| | 78999 | .unused, |
| | 79000 | .unused, |
| | 79001 | .unused, |
| | 79002 | .unused, |
| | 79003 | }, |
| | 79004 | .dst_temps = .{ .mem, .unused }, |
| | 79005 | .clobbers = .{ .eflags = true }, |
| | 79006 | .each = .{ .once = &.{ |
| | 79007 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79008 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79009 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79010 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 79011 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, |
| | 79012 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, |
| | 79013 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, |
| | 79014 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, |
| | 79015 | .{ ._, .fromCond(switch (cc) { |
| | 79016 | else => unreachable, |
| | 79017 | .l => .a, |
| | 79018 | .le => .ae, |
| | 79019 | }), .set, .tmp3b, ._, ._, ._ }, |
| | 79020 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 79021 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 79022 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79023 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79024 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79025 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 79026 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 79027 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 79028 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79029 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 79030 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79031 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79032 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79033 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 79034 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 79035 | } }, |
| | 79036 | }, .{ |
| | 79037 | .required_features = .{ .x87, null, null, null }, |
| | 79038 | .src_constraints = .{ |
| | 79039 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 79040 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 79041 | .any, |
| | 79042 | }, |
| | 79043 | .patterns = &.{ |
| | 79044 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 79045 | }, |
| | 79046 | .extra_temps = .{ |
| | 79047 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79048 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 79049 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79050 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 79051 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 79052 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 79053 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 79054 | .unused, |
| | 79055 | .unused, |
| | 79056 | .unused, |
| | 79057 | .unused, |
| | 79058 | }, |
| | 79059 | .dst_temps = .{ .mem, .unused }, |
| | 79060 | .clobbers = .{ .eflags = true }, |
| | 79061 | .each = .{ .once = &.{ |
| | 79062 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79063 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79064 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79065 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 79066 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, |
| | 79067 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, |
| | 79068 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 79069 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, |
| | 79070 | switch (cc) { |
| | 79071 | else => unreachable, |
| | 79072 | .l => .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_001), ._, ._ }, |
| | 79073 | .le => .{ ._, ._r, .sh, .tmp6h, .ui(1), ._, ._ }, |
| | 79074 | }, |
| | 79075 | .{ ._, .fromCond(switch (cc) { |
| | 79076 | else => unreachable, |
| | 79077 | .l => .z, |
| | 79078 | .le => .nc, |
| | 79079 | }), .set, .tmp3b, ._, ._, ._ }, |
| | 79080 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 79081 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 79082 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79083 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79084 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79085 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 79086 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 79087 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 79088 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79089 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 79090 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79091 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79092 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79093 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 79094 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 79095 | } }, |
| | 79096 | }, .{ |
| | 79097 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, |
| | 79098 | .src_constraints = .{ |
| | 79099 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 79100 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 79101 | .any, |
| | 79102 | }, |
| | 79103 | .patterns = &.{ |
| | 79104 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 79105 | }, |
| | 79106 | .extra_temps = .{ |
| | 79107 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79108 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 79109 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79110 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 79111 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 79112 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 79113 | .unused, |
| | 79114 | .unused, |
| | 79115 | .unused, |
| | 79116 | .unused, |
| | 79117 | .unused, |
| | 79118 | }, |
| | 79119 | .dst_temps = .{ .mem, .unused }, |
| | 79120 | .clobbers = .{ .eflags = true }, |
| | 79121 | .each = .{ .once = &.{ |
| | 79122 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79123 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79124 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79125 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 79126 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, |
| | 79127 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, |
| | 79128 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, |
| | 79129 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, |
| | 79130 | .{ ._, .fromCond(switch (cc) { |
| | 79131 | else => unreachable, |
| | 79132 | .l => .a, |
| | 79133 | .le => .ae, |
| | 79134 | }), .set, .tmp3b, ._, ._, ._ }, |
| | 79135 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 79136 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 79137 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 79138 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79139 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79140 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 79141 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 79142 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 79143 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79144 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79146 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79147 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79148 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 79149 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 79150 | } }, |
| | 79151 | }, .{ |
| | 79152 | .required_features = .{ .x87, .cmov, null, null }, |
| | 79153 | .src_constraints = .{ |
| | 79154 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 79155 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 79156 | .any, |
| | 79157 | }, |
| | 79158 | .patterns = &.{ |
| | 79159 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 79160 | }, |
| | 79161 | .extra_temps = .{ |
| | 79162 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79163 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 79164 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79165 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 79166 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 79167 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 79168 | .unused, |
| | 79169 | .unused, |
| | 79170 | .unused, |
| | 79171 | .unused, |
| | 79172 | .unused, |
| | 79173 | }, |
| | 79174 | .dst_temps = .{ .mem, .unused }, |
| | 79175 | .clobbers = .{ .eflags = true }, |
| | 79176 | .each = .{ .once = &.{ |
| | 79177 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79178 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79179 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79180 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 79181 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, |
| | 79182 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, |
| | 79183 | .{ ._, .f_p, .ucomi, .tmp4t, .tmp5t, ._, ._ }, |
| | 79184 | .{ ._, .f_p, .st, .tmp5t, ._, ._, ._ }, |
| | 79185 | .{ ._, .fromCond(switch (cc) { |
| | 79186 | else => unreachable, |
| | 79187 | .l => .a, |
| | 79188 | .le => .ae, |
| | 79189 | }), .set, .tmp3b, ._, ._, ._ }, |
| | 79190 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 79191 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 79192 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79193 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79194 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79195 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 79196 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 79197 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 79198 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79199 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79200 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79201 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79202 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79203 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 79204 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 79205 | } }, |
| | 79206 | }, .{ |
| | 79207 | .required_features = .{ .x87, null, null, null }, |
| | 79208 | .src_constraints = .{ |
| | 79209 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 79210 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 79211 | .any, |
| | 79212 | }, |
| | 79213 | .patterns = &.{ |
| | 79214 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| | 79215 | }, |
| | 79216 | .extra_temps = .{ |
| | 79217 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79218 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 79219 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79220 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 79221 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 79222 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 79223 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 79224 | .unused, |
| | 79225 | .unused, |
| | 79226 | .unused, |
| | 79227 | .unused, |
| | 79228 | }, |
| | 79229 | .dst_temps = .{ .mem, .unused }, |
| | 79230 | .clobbers = .{ .eflags = true }, |
| | 79231 | .each = .{ .once = &.{ |
| | 79232 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79233 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79234 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79235 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 79236 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, |
| | 79237 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, |
| | 79238 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 79239 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, |
| | 79240 | switch (cc) { |
| | 79241 | else => unreachable, |
| | 79242 | .l => .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_001), ._, ._ }, |
| | 79243 | .le => .{ ._, ._r, .sh, .tmp6h, .ui(1), ._, ._ }, |
| | 79244 | }, |
| | 79245 | .{ ._, .fromCond(switch (cc) { |
| | 79246 | else => unreachable, |
| | 79247 | .l => .z, |
| | 79248 | .le => .nc, |
| | 79249 | }), .set, .tmp3b, ._, ._, ._ }, |
| | 79250 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 79251 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 79252 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79253 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79254 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79255 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 79256 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 79257 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 79258 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79259 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79261 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 79262 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79263 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 79264 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 79265 | } }, |
| | 79266 | }, .{ |
| | 79267 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 79268 | .src_constraints = .{ |
| | 79269 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79270 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79271 | .any, |
| | 79272 | }, |
| | 79273 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 79274 | .patterns = &.{ |
| | 79275 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79276 | }, |
| | 79277 | .call_frame = .{ .alignment = .@"16" }, |
| | 79278 | .extra_temps = .{ |
| | 79279 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79280 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79281 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79282 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79283 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79284 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79285 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79286 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 79287 | .unused, |
| | 79288 | .unused, |
| | 79289 | .unused, |
| | 79290 | }, |
| | 79291 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 79292 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79293 | .each = .{ .once = &.{ |
| | 79294 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 79295 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79296 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79297 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79298 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79299 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 79300 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 79301 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 79302 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 79303 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79304 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 79305 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 79306 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 79307 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79308 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79309 | } }, |
| | 79310 | }, .{ |
| | 79311 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 79312 | .src_constraints = .{ |
| | 79313 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79314 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79315 | .any, |
| | 79316 | }, |
| | 79317 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 79318 | .patterns = &.{ |
| | 79319 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79320 | }, |
| | 79321 | .call_frame = .{ .alignment = .@"16" }, |
| | 79322 | .extra_temps = .{ |
| | 79323 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79324 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79325 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79326 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79327 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79328 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79329 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79330 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 79331 | .unused, |
| | 79332 | .unused, |
| | 79333 | .unused, |
| | 79334 | }, |
| | 79335 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 79336 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79337 | .each = .{ .once = &.{ |
| | 79338 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 79339 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79340 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79341 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79342 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79343 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 79344 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 79345 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 79346 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 79347 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79348 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 79349 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 79350 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79351 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79352 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79353 | } }, |
| | 79354 | }, .{ |
| | 79355 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 79356 | .src_constraints = .{ |
| | 79357 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79358 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79359 | .any, |
| | 79360 | }, |
| | 79361 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 79362 | .patterns = &.{ |
| | 79363 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79364 | }, |
| | 79365 | .call_frame = .{ .alignment = .@"16" }, |
| | 79366 | .extra_temps = .{ |
| | 79367 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79368 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79369 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79370 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79371 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79372 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79373 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79374 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 79375 | .unused, |
| | 79376 | .unused, |
| | 79377 | .unused, |
| | 79378 | }, |
| | 79379 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 79380 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79381 | .each = .{ .once = &.{ |
| | 79382 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 79383 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79384 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79385 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79386 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79387 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 79388 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 79389 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 79390 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 79391 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79392 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 79393 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 79394 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 79395 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79396 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79397 | } }, |
| | 79398 | }, .{ |
| | 79399 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 79400 | .src_constraints = .{ |
| | 79401 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79402 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79403 | .any, |
| | 79404 | }, |
| | 79405 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 79406 | .patterns = &.{ |
| | 79407 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79408 | }, |
| | 79409 | .call_frame = .{ .alignment = .@"16" }, |
| | 79410 | .extra_temps = .{ |
| | 79411 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79412 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79413 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79414 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79415 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79416 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79417 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79418 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 79419 | .unused, |
| | 79420 | .unused, |
| | 79421 | .unused, |
| | 79422 | }, |
| | 79423 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 79424 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79425 | .each = .{ .once = &.{ |
| | 79426 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 79427 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79428 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79429 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79430 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79431 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 79432 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 79433 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 79434 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 79435 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79436 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 79437 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 79438 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79439 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79440 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79441 | } }, |
| | 79442 | }, .{ |
| | 79443 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| | 79444 | .src_constraints = .{ |
| | 79445 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79446 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79447 | .any, |
| | 79448 | }, |
| | 79449 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 79450 | .patterns = &.{ |
| | 79451 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79452 | }, |
| | 79453 | .call_frame = .{ .alignment = .@"16" }, |
| | 79454 | .extra_temps = .{ |
| | 79455 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79456 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79457 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79458 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79459 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79460 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79461 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79462 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 79463 | .unused, |
| | 79464 | .unused, |
| | 79465 | .unused, |
| | 79466 | }, |
| | 79467 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 79468 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79469 | .each = .{ .once = &.{ |
| | 79470 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 79471 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79472 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79473 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79474 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79475 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 79476 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 79477 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 79478 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 79479 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79480 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 79481 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 79482 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 79483 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79484 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79485 | } }, |
| | 79486 | }, .{ |
| | 79487 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 79488 | .src_constraints = .{ |
| | 79489 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79490 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79491 | .any, |
| | 79492 | }, |
| | 79493 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 79494 | .patterns = &.{ |
| | 79495 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79496 | }, |
| | 79497 | .call_frame = .{ .alignment = .@"16" }, |
| | 79498 | .extra_temps = .{ |
| | 79499 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79500 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79501 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79502 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79503 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79504 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79505 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79506 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 79507 | .unused, |
| | 79508 | .unused, |
| | 79509 | .unused, |
| | 79510 | }, |
| | 79511 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 79512 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79513 | .each = .{ .once = &.{ |
| | 79514 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 79515 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79516 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79517 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79518 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79519 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 79520 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 79521 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 79522 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 79523 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79524 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 79525 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 79526 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79527 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79528 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79529 | } }, |
| | 79530 | }, .{ |
| | 79531 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, |
| | 79532 | .src_constraints = .{ |
| | 79533 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79534 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79535 | .any, |
| | 79536 | }, |
| | 79537 | .patterns = &.{ |
| | 79538 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79539 | }, |
| | 79540 | .call_frame = .{ .alignment = .@"16" }, |
| | 79541 | .extra_temps = .{ |
| | 79542 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79543 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79544 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 79545 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79546 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79547 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79548 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79549 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79550 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 79551 | .unused, |
| | 79552 | .unused, |
| | 79553 | }, |
| | 79554 | .dst_temps = .{ .mem, .unused }, |
| | 79555 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79556 | .each = .{ .once = &.{ |
| | 79557 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79558 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79559 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79560 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79561 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79562 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 79563 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 79564 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 79565 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 79566 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 79567 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 79568 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 79569 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 79570 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79571 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79572 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79573 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 79574 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 79575 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79576 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79577 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79578 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79579 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79580 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 79581 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| | 79582 | } }, |
| | 79583 | }, .{ |
| | 79584 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 79585 | .src_constraints = .{ |
| | 79586 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79587 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79588 | .any, |
| | 79589 | }, |
| | 79590 | .patterns = &.{ |
| | 79591 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79592 | }, |
| | 79593 | .call_frame = .{ .alignment = .@"16" }, |
| | 79594 | .extra_temps = .{ |
| | 79595 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79596 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79597 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 79598 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79599 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79600 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79601 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79602 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79603 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 79604 | .unused, |
| | 79605 | .unused, |
| | 79606 | }, |
| | 79607 | .dst_temps = .{ .mem, .unused }, |
| | 79608 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79609 | .each = .{ .once = &.{ |
| | 79610 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79611 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79612 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79613 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79614 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79615 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 79616 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 79617 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 79618 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 79619 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 79620 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 79621 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 79622 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79623 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79624 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79625 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79626 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 79627 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 79628 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79629 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79630 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79631 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79632 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79633 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 79634 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| | 79635 | } }, |
| | 79636 | }, .{ |
| | 79637 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, |
| | 79638 | .src_constraints = .{ |
| | 79639 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79640 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79641 | .any, |
| | 79642 | }, |
| | 79643 | .patterns = &.{ |
| | 79644 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79645 | }, |
| | 79646 | .call_frame = .{ .alignment = .@"16" }, |
| | 79647 | .extra_temps = .{ |
| | 79648 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79649 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79650 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 79651 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79652 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79653 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79654 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79655 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79656 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 79657 | .unused, |
| | 79658 | .unused, |
| | 79659 | }, |
| | 79660 | .dst_temps = .{ .mem, .unused }, |
| | 79661 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79662 | .each = .{ .once = &.{ |
| | 79663 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79664 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79665 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79666 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79667 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79668 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 79669 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 79670 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 79671 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 79672 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 79673 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 79674 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 79675 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 79676 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79677 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79678 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79679 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 79680 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 79681 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79682 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79683 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79684 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79685 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79686 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 79687 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| | 79688 | } }, |
| | 79689 | }, .{ |
| | 79690 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| | 79691 | .src_constraints = .{ |
| | 79692 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79693 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79694 | .any, |
| | 79695 | }, |
| | 79696 | .patterns = &.{ |
| | 79697 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79698 | }, |
| | 79699 | .call_frame = .{ .alignment = .@"16" }, |
| | 79700 | .extra_temps = .{ |
| | 79701 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79702 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79703 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 79704 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79705 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79706 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79707 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79708 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79709 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 79710 | .unused, |
| | 79711 | .unused, |
| | 79712 | }, |
| | 79713 | .dst_temps = .{ .mem, .unused }, |
| | 79714 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79715 | .each = .{ .once = &.{ |
| | 79716 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79717 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79718 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79719 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79720 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79721 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 79722 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 79723 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 79724 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 79725 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 79726 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 79727 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 79728 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79729 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79730 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79731 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79732 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 79733 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 79734 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79735 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79736 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79737 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79738 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79739 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 79740 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| | 79741 | } }, |
| | 79742 | }, .{ |
| | 79743 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, |
| | 79744 | .src_constraints = .{ |
| | 79745 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79746 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79747 | .any, |
| | 79748 | }, |
| | 79749 | .patterns = &.{ |
| | 79750 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79751 | }, |
| | 79752 | .call_frame = .{ .alignment = .@"16" }, |
| | 79753 | .extra_temps = .{ |
| | 79754 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79755 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79756 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 79757 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79758 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79759 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79760 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79761 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79762 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 79763 | .unused, |
| | 79764 | .unused, |
| | 79765 | }, |
| | 79766 | .dst_temps = .{ .mem, .unused }, |
| | 79767 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79768 | .each = .{ .once = &.{ |
| | 79769 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79770 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79771 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79772 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79773 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79774 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 79775 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 79776 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 79777 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 79778 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 79779 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 79780 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 79781 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 79782 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79783 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79784 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79785 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 79786 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 79787 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79788 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79789 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79790 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79791 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79792 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 79793 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| | 79794 | } }, |
| | 79795 | }, .{ |
| | 79796 | .required_features = .{ .@"64bit", .sse, null, null }, |
| | 79797 | .src_constraints = .{ |
| | 79798 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79799 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 79800 | .any, |
| | 79801 | }, |
| | 79802 | .patterns = &.{ |
| | 79803 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 79804 | }, |
| | 79805 | .call_frame = .{ .alignment = .@"16" }, |
| | 79806 | .extra_temps = .{ |
| | 79807 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 79808 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 79809 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 79810 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 79811 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 79812 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 79813 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 79814 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 79815 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 79816 | .unused, |
| | 79817 | .unused, |
| | 79818 | }, |
| | 79819 | .dst_temps = .{ .mem, .unused }, |
| | 79820 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 79821 | .each = .{ .once = &.{ |
| | 79822 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 79823 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 79824 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79825 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 79826 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 79827 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 79828 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 79829 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 79830 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 79831 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 79832 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 79833 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 79834 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 79835 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79836 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 79837 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 79838 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 79839 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 79840 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 79841 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 79842 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 79843 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 79844 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 79845 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 79846 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| | 79847 | } }, |
| | 79848 | } }, |
| | 79849 | }); |
| | 79850 | }, |
| | 79851 | .eq, .neq => |cmp_op| cg.select(&res, &.{ty_pl.ty.toType()}, &ops, switch (@as(Condition, switch (cmp_op) { |
| | 79852 | else => unreachable, |
| | 79853 | .eq => .e, |
| | 79854 | .neq => .ne, |
| | 79855 | })) { |
| | 79856 | else => unreachable, |
| | 79857 | inline .e, .ne => |cc| comptime &.{ .{ |
| | 79858 | .src_constraints = .{ .{ .bool_vec = .byte }, .{ .bool_vec = .byte }, .any }, |
| | 79859 | .patterns = &.{ |
| | 79860 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 79861 | .{ .src = .{ .imm8, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| | 79862 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 79863 | .{ .src = .{ .imm8, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| | 79864 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, |
| | 79865 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| | 79866 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, |
| | 79867 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| | 79868 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, |
| | 79869 | }, |
| | 79870 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 79871 | .clobbers = .{ .eflags = true }, |
| | 79872 | .each = .{ .once = switch (cc) { |
| 82410 | else => unreachable, | 79873 | else => unreachable, |
| 82411 | .down => "floor", | 79874 | .e => &.{ |
| 82412 | .up => "ceil", | 79875 | .{ ._, ._, .xor, .dst0b, .src1b, ._, ._ }, |
| 82413 | .zero => "trunc", | 79876 | .{ ._, ._, .not, .dst0b, ._, ._, ._ }, |
| 82414 | } } } }, | 79877 | }, |
| 82415 | .unused, | 79878 | .ne => &.{ |
| 82416 | .unused, | 79879 | .{ ._, ._, .xor, .dst0b, .src1b, ._, ._ }, |
| 82417 | .unused, | 79880 | }, |
| 82418 | .unused, | 79881 | } }, |
| 82419 | .unused, | 79882 | }, .{ |
| 82420 | .unused, | 79883 | .src_constraints = .{ .{ .bool_vec = .word }, .{ .bool_vec = .word }, .any }, |
| 82421 | .unused, | 79884 | .patterns = &.{ |
| 82422 | .unused, | 79885 | .{ .src = .{ .mut_mem, .imm16, .none } }, |
| 82423 | }, | 79886 | .{ .src = .{ .imm16, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 82424 | .dst_temps = .{ .mem, .unused }, | 79887 | .{ .src = .{ .to_mut_gpr, .imm16, .none } }, |
| 82425 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 79888 | .{ .src = .{ .imm16, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 82426 | .each = .{ .once = &.{ | 79889 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, |
| 82427 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 79890 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 82428 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 79891 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, |
| 82429 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 79892 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 82430 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 79893 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, |
| 82431 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 79894 | }, |
| 82432 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 79895 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 82433 | } }, | 79896 | .clobbers = .{ .eflags = true }, |
| 82434 | }, .{ | 79897 | .each = .{ .once = switch (cc) { |
| 82435 | .required_features = .{ .sse2, null, null, null }, | | |
| 82436 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | | |
| 82437 | .patterns = &.{ | | |
| 82438 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 82439 | }, | | |
| 82440 | .call_frame = .{ .alignment = .@"16" }, | | |
| 82441 | .extra_temps = .{ | | |
| 82442 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 82443 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | | |
| 82444 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | | |
| 82445 | else => unreachable, | 79898 | else => unreachable, |
| 82446 | .down => "floor", | 79899 | .e => &.{ |
| 82447 | .up => "ceil", | 79900 | .{ ._, ._, .xor, .dst0w, .src1w, ._, ._ }, |
| 82448 | .zero => "trunc", | 79901 | .{ ._, ._, .not, .dst0w, ._, ._, ._ }, |
| 82449 | } } } }, | 79902 | }, |
| 82450 | .unused, | 79903 | .ne => &.{ |
| 82451 | .unused, | 79904 | .{ ._, ._, .xor, .dst0w, .src1w, ._, ._ }, |
| 82452 | .unused, | 79905 | }, |
| 82453 | .unused, | 79906 | } }, |
| 82454 | .unused, | 79907 | }, .{ |
| 82455 | .unused, | 79908 | .src_constraints = .{ .{ .bool_vec = .dword }, .{ .bool_vec = .dword }, .any }, |
| 82456 | .unused, | 79909 | .patterns = &.{ |
| 82457 | .unused, | 79910 | .{ .src = .{ .mut_mem, .imm32, .none } }, |
| 82458 | }, | 79911 | .{ .src = .{ .imm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 82459 | .dst_temps = .{ .mem, .unused }, | 79912 | .{ .src = .{ .to_mut_gpr, .imm32, .none } }, |
| 82460 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 79913 | .{ .src = .{ .imm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 82461 | .each = .{ .once = &.{ | 79914 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, |
| 82462 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 79915 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 82463 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 79916 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, |
| 82464 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 79917 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 82465 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 79918 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, |
| 82466 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 79919 | }, |
| 82467 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 79920 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 82468 | } }, | 79921 | .clobbers = .{ .eflags = true }, |
| 82469 | }, .{ | 79922 | .each = .{ .once = switch (cc) { |
| 82470 | .required_features = .{ .sse, null, null, null }, | | |
| 82471 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | | |
| 82472 | .patterns = &.{ | | |
| 82473 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 82474 | }, | | |
| 82475 | .call_frame = .{ .alignment = .@"16" }, | | |
| 82476 | .extra_temps = .{ | | |
| 82477 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 82478 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | | |
| 82479 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | | |
| 82480 | else => unreachable, | 79923 | else => unreachable, |
| 82481 | .down => "floor", | 79924 | .e => &.{ |
| 82482 | .up => "ceil", | 79925 | .{ ._, ._, .xor, .dst0d, .src1d, ._, ._ }, |
| 82483 | .zero => "trunc", | 79926 | .{ ._, ._, .not, .dst0d, ._, ._, ._ }, |
| 82484 | } } } }, | 79927 | }, |
| 82485 | .unused, | 79928 | .ne => &.{ |
| 82486 | .unused, | 79929 | .{ ._, ._, .xor, .dst0d, .src1d, ._, ._ }, |
| 82487 | .unused, | 79930 | }, |
| 82488 | .unused, | 79931 | } }, |
| 82489 | .unused, | 79932 | }, .{ |
| 82490 | .unused, | 79933 | .required_features = .{ .@"64bit", null, null, null }, |
| 82491 | .unused, | 79934 | .src_constraints = .{ .{ .bool_vec = .qword }, .{ .bool_vec = .qword }, .any }, |
| 82492 | .unused, | 79935 | .patterns = &.{ |
| 82493 | }, | 79936 | .{ .src = .{ .mut_mem, .simm32, .none } }, |
| 82494 | .dst_temps = .{ .mem, .unused }, | 79937 | .{ .src = .{ .simm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 82495 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 79938 | .{ .src = .{ .to_mut_gpr, .simm32, .none } }, |
| 82496 | .each = .{ .once = &.{ | 79939 | .{ .src = .{ .simm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 82497 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 79940 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, |
| 82498 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 79941 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 82499 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 79942 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, |
| 82500 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 79943 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 82501 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 79944 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, |
| 82502 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 79945 | }, |
| 82503 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 79946 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 82504 | } }, | 79947 | .clobbers = .{ .eflags = true }, |
| 82505 | }, .{ | 79948 | .each = .{ .once = switch (cc) { |
| 82506 | .required_features = .{ .avx, .x87, null, null }, | | |
| 82507 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | | |
| 82508 | .patterns = &.{ | | |
| 82509 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 82510 | }, | | |
| 82511 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 82512 | .extra_temps = .{ | | |
| 82513 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | | |
| 82514 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | | |
| 82515 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | | |
| 82516 | else => unreachable, | 79949 | else => unreachable, |
| 82517 | .down => "__floorx", | 79950 | .e => &.{ |
| 82518 | .up => "__ceilx", | 79951 | .{ ._, ._, .xor, .dst0q, .src1q, ._, ._ }, |
| 82519 | .zero => "__truncx", | 79952 | .{ ._, ._, .not, .dst0q, ._, ._, ._ }, |
| 82520 | } } } }, | 79953 | }, |
| 82521 | .unused, | 79954 | .ne => &.{ |
| 82522 | .unused, | 79955 | .{ ._, ._, .xor, .dst0q, .src1q, ._, ._ }, |
| 82523 | .unused, | 79956 | }, |
| 82524 | .unused, | 79957 | } }, |
| 82525 | .unused, | 79958 | }, .{ |
| 82526 | .unused, | 79959 | .src_constraints = .{ .any_bool_vec, .any_bool_vec, .any }, |
| 82527 | .unused, | 79960 | .patterns = &.{ |
| 82528 | .unused, | 79961 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82529 | }, | 79962 | }, |
| 82530 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, | 79963 | .extra_temps = .{ |
| 82531 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 79964 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82532 | .each = .{ .once = &.{ | 79965 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 82533 | .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, | 79966 | .unused, |
| 82534 | .{ ._, .v_dqa, .mov, .mem(.tmp1x), .tmp0x, ._, ._ }, | 79967 | .unused, |
| 82535 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 79968 | .unused, |
| 82536 | } }, | 79969 | .unused, |
| 82537 | }, .{ | 79970 | .unused, |
| 82538 | .required_features = .{ .sse2, .x87, null, null }, | 79971 | .unused, |
| 82539 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 79972 | .unused, |
| 82540 | .patterns = &.{ | 79973 | .unused, |
| 82541 | .{ .src = .{ .to_mem, .none, .none } }, | 79974 | .unused, |
| 82542 | }, | 79975 | }, |
| 82543 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 79976 | .dst_temps = .{ .mem, .unused }, |
| 82544 | .extra_temps = .{ | 79977 | .clobbers = .{ .eflags = true }, |
| 82545 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 79978 | .each = .{ .once = switch (cc) { |
| 82546 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | | |
| 82547 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | | |
| 82548 | else => unreachable, | 79979 | else => unreachable, |
| 82549 | .down => "__floorx", | 79980 | .e => &.{ |
| 82550 | .up => "__ceilx", | 79981 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82551 | .zero => "__truncx", | 79982 | .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ }, |
| 82552 | } } } }, | 79983 | .{ ._, ._, .xor, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ }, |
| 82553 | .unused, | 79984 | .{ ._, ._, .not, .tmp1p, ._, ._, ._ }, |
| 82554 | .unused, | 79985 | .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ }, |
| 82555 | .unused, | 79986 | .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ }, |
| 82556 | .unused, | 79987 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82557 | .unused, | 79988 | }, |
| 82558 | .unused, | 79989 | .ne => &.{ |
| 82559 | .unused, | 79990 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82560 | .unused, | 79991 | .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ }, |
| 82561 | }, | 79992 | .{ ._, ._, .xor, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ }, |
| 82562 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, | 79993 | .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ }, |
| 82563 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 79994 | .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ }, |
| 82564 | .each = .{ .once = &.{ | 79995 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82565 | .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, | 79996 | }, |
| 82566 | .{ ._, ._dqa, .mov, .mem(.tmp1x), .tmp0x, ._, ._ }, | 79997 | } }, |
| 82567 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 79998 | }, .{ |
| 82568 | } }, | 79999 | .required_features = .{ .avx, null, null, null }, |
| 82569 | }, .{ | 80000 | .src_constraints = .{ |
| 82570 | .required_features = .{ .sse, .x87, null, null }, | 80001 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, |
| 82571 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 80002 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, |
| 82572 | .patterns = &.{ | 80003 | .any, |
| 82573 | .{ .src = .{ .to_mem, .none, .none } }, | 80004 | }, |
| 82574 | }, | 80005 | .patterns = &.{ |
| 82575 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 80006 | .{ .src = .{ .to_sse, .mem, .none } }, |
| 82576 | .extra_temps = .{ | 80007 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 82577 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 80008 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| 82578 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 80009 | }, |
| 82579 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80010 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80011 | .kind = .all, |
| | 80012 | .inverted = switch (cc) { |
| | 80013 | else => unreachable, |
| | 80014 | .e => false, |
| | 80015 | .ne => true, |
| | 80016 | }, |
| | 80017 | .scalar = .byte, |
| | 80018 | } } }, .unused }, |
| | 80019 | .each = .{ .once = &.{ |
| | 80020 | .{ ._, .vp_b, .cmpeq, .dst0x, .src0x, .src1x, ._ }, |
| | 80021 | } }, |
| | 80022 | }, .{ |
| | 80023 | .required_features = .{ .avx, null, null, null }, |
| | 80024 | .src_constraints = .{ |
| | 80025 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, |
| | 80026 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, |
| | 80027 | .any, |
| | 80028 | }, |
| | 80029 | .patterns = &.{ |
| | 80030 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 80031 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80032 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 80033 | }, |
| | 80034 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80035 | .kind = .all, |
| | 80036 | .inverted = switch (cc) { |
| | 80037 | else => unreachable, |
| | 80038 | .e => false, |
| | 80039 | .ne => true, |
| | 80040 | }, |
| | 80041 | .scalar = .word, |
| | 80042 | } } }, .unused }, |
| | 80043 | .each = .{ .once = &.{ |
| | 80044 | .{ ._, .vp_w, .cmpeq, .dst0x, .src0x, .src1x, ._ }, |
| | 80045 | } }, |
| | 80046 | }, .{ |
| | 80047 | .required_features = .{ .avx, null, null, null }, |
| | 80048 | .src_constraints = .{ |
| | 80049 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, |
| | 80050 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, |
| | 80051 | .any, |
| | 80052 | }, |
| | 80053 | .patterns = &.{ |
| | 80054 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 80055 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80056 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 80057 | }, |
| | 80058 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80059 | .kind = .all, |
| | 80060 | .inverted = switch (cc) { |
| | 80061 | else => unreachable, |
| | 80062 | .e => false, |
| | 80063 | .ne => true, |
| | 80064 | }, |
| | 80065 | .scalar = .dword, |
| | 80066 | } } }, .unused }, |
| | 80067 | .each = .{ .once = &.{ |
| | 80068 | .{ ._, .vp_d, .cmpeq, .dst0x, .src0x, .src1x, ._ }, |
| | 80069 | } }, |
| | 80070 | }, .{ |
| | 80071 | .required_features = .{ .avx, null, null, null }, |
| | 80072 | .src_constraints = .{ |
| | 80073 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, |
| | 80074 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, |
| | 80075 | .any, |
| | 80076 | }, |
| | 80077 | .patterns = &.{ |
| | 80078 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 80079 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80080 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 80081 | }, |
| | 80082 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80083 | .kind = .all, |
| | 80084 | .inverted = switch (cc) { |
| | 80085 | else => unreachable, |
| | 80086 | .e => false, |
| | 80087 | .ne => true, |
| | 80088 | }, |
| | 80089 | .scalar = .qword, |
| | 80090 | } } }, .unused }, |
| | 80091 | .each = .{ .once = &.{ |
| | 80092 | .{ ._, .vp_q, .cmpeq, .dst0x, .src0x, .src1x, ._ }, |
| | 80093 | } }, |
| | 80094 | }, .{ |
| | 80095 | .required_features = .{ .sse2, null, null, null }, |
| | 80096 | .src_constraints = .{ |
| | 80097 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, |
| | 80098 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, |
| | 80099 | .any, |
| | 80100 | }, |
| | 80101 | .patterns = &.{ |
| | 80102 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 80103 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80104 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 80105 | }, |
| | 80106 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ |
| | 80107 | .kind = .all, |
| | 80108 | .inverted = switch (cc) { |
| | 80109 | else => unreachable, |
| | 80110 | .e => false, |
| | 80111 | .ne => true, |
| | 80112 | }, |
| | 80113 | .scalar = .byte, |
| | 80114 | } } }, .unused }, |
| | 80115 | .each = .{ .once = &.{ |
| | 80116 | .{ ._, .p_b, .cmpeq, .dst0x, .src1x, ._, ._ }, |
| | 80117 | } }, |
| | 80118 | }, .{ |
| | 80119 | .required_features = .{ .sse2, null, null, null }, |
| | 80120 | .src_constraints = .{ |
| | 80121 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, |
| | 80122 | .{ .scalar_int = .{ .of = .xword, .is = .word } }, |
| | 80123 | .any, |
| | 80124 | }, |
| | 80125 | .patterns = &.{ |
| | 80126 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 80127 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80128 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 80129 | }, |
| | 80130 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ |
| | 80131 | .kind = .all, |
| | 80132 | .inverted = switch (cc) { |
| | 80133 | else => unreachable, |
| | 80134 | .e => false, |
| | 80135 | .ne => true, |
| | 80136 | }, |
| | 80137 | .scalar = .word, |
| | 80138 | } } }, .unused }, |
| | 80139 | .each = .{ .once = &.{ |
| | 80140 | .{ ._, .p_w, .cmpeq, .dst0x, .src1x, ._, ._ }, |
| | 80141 | } }, |
| | 80142 | }, .{ |
| | 80143 | .required_features = .{ .sse2, null, null, null }, |
| | 80144 | .src_constraints = .{ |
| | 80145 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, |
| | 80146 | .{ .scalar_int = .{ .of = .xword, .is = .dword } }, |
| | 80147 | .any, |
| | 80148 | }, |
| | 80149 | .patterns = &.{ |
| | 80150 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 80151 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80152 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 80153 | }, |
| | 80154 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ |
| | 80155 | .kind = .all, |
| | 80156 | .inverted = switch (cc) { |
| | 80157 | else => unreachable, |
| | 80158 | .e => false, |
| | 80159 | .ne => true, |
| | 80160 | }, |
| | 80161 | .scalar = .dword, |
| | 80162 | } } }, .unused }, |
| | 80163 | .each = .{ .once = &.{ |
| | 80164 | .{ ._, .p_d, .cmpeq, .dst0x, .src1x, ._, ._ }, |
| | 80165 | } }, |
| | 80166 | }, .{ |
| | 80167 | .required_features = .{ .sse4_1, null, null, null }, |
| | 80168 | .src_constraints = .{ |
| | 80169 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, |
| | 80170 | .{ .scalar_int = .{ .of = .xword, .is = .qword } }, |
| | 80171 | .any, |
| | 80172 | }, |
| | 80173 | .patterns = &.{ |
| | 80174 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 80175 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80176 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 80177 | }, |
| | 80178 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ |
| | 80179 | .kind = .all, |
| | 80180 | .inverted = switch (cc) { |
| | 80181 | else => unreachable, |
| | 80182 | .e => false, |
| | 80183 | .ne => true, |
| | 80184 | }, |
| | 80185 | .scalar = .qword, |
| | 80186 | } } }, .unused }, |
| | 80187 | .each = .{ .once = &.{ |
| | 80188 | .{ ._, .p_q, .cmpeq, .dst0x, .src1x, ._, ._ }, |
| | 80189 | } }, |
| | 80190 | }, .{ |
| | 80191 | .required_features = .{ .mmx, null, null, null }, |
| | 80192 | .src_constraints = .{ |
| | 80193 | .{ .scalar_int = .{ .of = .qword, .is = .byte } }, |
| | 80194 | .{ .scalar_int = .{ .of = .qword, .is = .byte } }, |
| | 80195 | .any, |
| | 80196 | }, |
| | 80197 | .patterns = &.{ |
| | 80198 | .{ .src = .{ .to_mut_mmx, .mem, .none } }, |
| | 80199 | .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, |
| | 80200 | .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, |
| | 80201 | }, |
| | 80202 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ |
| | 80203 | .kind = .all, |
| | 80204 | .inverted = switch (cc) { |
| | 80205 | else => unreachable, |
| | 80206 | .e => false, |
| | 80207 | .ne => true, |
| | 80208 | }, |
| | 80209 | .scalar = .byte, |
| | 80210 | } } }, .unused }, |
| | 80211 | .each = .{ .once = &.{ |
| | 80212 | .{ ._, .p_b, .cmpeq, .dst0q, .src1q, ._, ._ }, |
| | 80213 | } }, |
| | 80214 | }, .{ |
| | 80215 | .required_features = .{ .mmx, null, null, null }, |
| | 80216 | .src_constraints = .{ |
| | 80217 | .{ .scalar_int = .{ .of = .qword, .is = .word } }, |
| | 80218 | .{ .scalar_int = .{ .of = .qword, .is = .word } }, |
| | 80219 | .any, |
| | 80220 | }, |
| | 80221 | .patterns = &.{ |
| | 80222 | .{ .src = .{ .to_mut_mmx, .mem, .none } }, |
| | 80223 | .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, |
| | 80224 | .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, |
| | 80225 | }, |
| | 80226 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ |
| | 80227 | .kind = .all, |
| | 80228 | .inverted = switch (cc) { |
| | 80229 | else => unreachable, |
| | 80230 | .e => false, |
| | 80231 | .ne => true, |
| | 80232 | }, |
| | 80233 | .scalar = .word, |
| | 80234 | } } }, .unused }, |
| | 80235 | .each = .{ .once = &.{ |
| | 80236 | .{ ._, .p_w, .cmpeq, .dst0q, .src1q, ._, ._ }, |
| | 80237 | } }, |
| | 80238 | }, .{ |
| | 80239 | .required_features = .{ .mmx, null, null, null }, |
| | 80240 | .src_constraints = .{ |
| | 80241 | .{ .scalar_int = .{ .of = .qword, .is = .dword } }, |
| | 80242 | .{ .scalar_int = .{ .of = .qword, .is = .dword } }, |
| | 80243 | .any, |
| | 80244 | }, |
| | 80245 | .patterns = &.{ |
| | 80246 | .{ .src = .{ .to_mut_mmx, .mem, .none } }, |
| | 80247 | .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } }, |
| | 80248 | .{ .src = .{ .to_mut_mmx, .to_mmx, .none } }, |
| | 80249 | }, |
| | 80250 | .dst_temps = .{ .{ .ref_mask = .{ .ref = .src0, .info = .{ |
| | 80251 | .kind = .all, |
| | 80252 | .inverted = switch (cc) { |
| | 80253 | else => unreachable, |
| | 80254 | .e => false, |
| | 80255 | .ne => true, |
| | 80256 | }, |
| | 80257 | .scalar = .dword, |
| | 80258 | } } }, .unused }, |
| | 80259 | .each = .{ .once = &.{ |
| | 80260 | .{ ._, .p_d, .cmpeq, .dst0q, .src1q, ._, ._ }, |
| | 80261 | } }, |
| | 80262 | }, .{ |
| | 80263 | .required_features = .{ .avx2, null, null, null }, |
| | 80264 | .src_constraints = .{ |
| | 80265 | .{ .scalar_int = .{ .of = .yword, .is = .byte } }, |
| | 80266 | .{ .scalar_int = .{ .of = .yword, .is = .byte } }, |
| | 80267 | .any, |
| | 80268 | }, |
| | 80269 | .patterns = &.{ |
| | 80270 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 80271 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80272 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 80273 | }, |
| | 80274 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80275 | .kind = .all, |
| | 80276 | .inverted = switch (cc) { |
| | 80277 | else => unreachable, |
| | 80278 | .e => false, |
| | 80279 | .ne => true, |
| | 80280 | }, |
| | 80281 | .scalar = .byte, |
| | 80282 | } } }, .unused }, |
| | 80283 | .each = .{ .once = &.{ |
| | 80284 | .{ ._, .vp_b, .cmpeq, .dst0y, .src0y, .src1y, ._ }, |
| | 80285 | } }, |
| | 80286 | }, .{ |
| | 80287 | .required_features = .{ .avx2, null, null, null }, |
| | 80288 | .src_constraints = .{ |
| | 80289 | .{ .scalar_int = .{ .of = .yword, .is = .word } }, |
| | 80290 | .{ .scalar_int = .{ .of = .yword, .is = .word } }, |
| | 80291 | .any, |
| | 80292 | }, |
| | 80293 | .patterns = &.{ |
| | 80294 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 80295 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80296 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 80297 | }, |
| | 80298 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80299 | .kind = .all, |
| | 80300 | .inverted = switch (cc) { |
| | 80301 | else => unreachable, |
| | 80302 | .e => false, |
| | 80303 | .ne => true, |
| | 80304 | }, |
| | 80305 | .scalar = .word, |
| | 80306 | } } }, .unused }, |
| | 80307 | .each = .{ .once = &.{ |
| | 80308 | .{ ._, .vp_w, .cmpeq, .dst0y, .src0y, .src1y, ._ }, |
| | 80309 | } }, |
| | 80310 | }, .{ |
| | 80311 | .required_features = .{ .avx2, null, null, null }, |
| | 80312 | .src_constraints = .{ |
| | 80313 | .{ .scalar_int = .{ .of = .yword, .is = .dword } }, |
| | 80314 | .{ .scalar_int = .{ .of = .yword, .is = .dword } }, |
| | 80315 | .any, |
| | 80316 | }, |
| | 80317 | .patterns = &.{ |
| | 80318 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 80319 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80320 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 80321 | }, |
| | 80322 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80323 | .kind = .all, |
| | 80324 | .inverted = switch (cc) { |
| | 80325 | else => unreachable, |
| | 80326 | .e => false, |
| | 80327 | .ne => true, |
| | 80328 | }, |
| | 80329 | .scalar = .dword, |
| | 80330 | } } }, .unused }, |
| | 80331 | .each = .{ .once = &.{ |
| | 80332 | .{ ._, .vp_d, .cmpeq, .dst0y, .src0y, .src1y, ._ }, |
| | 80333 | } }, |
| | 80334 | }, .{ |
| | 80335 | .required_features = .{ .avx2, null, null, null }, |
| | 80336 | .src_constraints = .{ |
| | 80337 | .{ .scalar_int = .{ .of = .yword, .is = .qword } }, |
| | 80338 | .{ .scalar_int = .{ .of = .yword, .is = .qword } }, |
| | 80339 | .any, |
| | 80340 | }, |
| | 80341 | .patterns = &.{ |
| | 80342 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 80343 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 80344 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 80345 | }, |
| | 80346 | .dst_temps = .{ .{ .mut_rc_mask = .{ .ref = .src0, .rc = .sse, .info = .{ |
| | 80347 | .kind = .all, |
| | 80348 | .inverted = switch (cc) { |
| | 80349 | else => unreachable, |
| | 80350 | .e => false, |
| | 80351 | .ne => true, |
| | 80352 | }, |
| | 80353 | .scalar = .qword, |
| | 80354 | } } }, .unused }, |
| | 80355 | .each = .{ .once = &.{ |
| | 80356 | .{ ._, .vp_q, .cmpeq, .dst0y, .src0y, .src1y, ._ }, |
| | 80357 | } }, |
| | 80358 | }, .{ |
| | 80359 | .required_features = .{ .avx2, null, null, null }, |
| | 80360 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| | 80361 | .patterns = &.{ |
| | 80362 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 80363 | }, |
| | 80364 | .extra_temps = .{ |
| | 80365 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 80366 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 80367 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 80368 | .{ .kind = .{ .rc = .sse } }, |
| | 80369 | .unused, |
| | 80370 | .unused, |
| | 80371 | .unused, |
| | 80372 | .unused, |
| | 80373 | .unused, |
| | 80374 | .unused, |
| | 80375 | .unused, |
| | 80376 | }, |
| | 80377 | .dst_temps = .{ .mem, .unused }, |
| | 80378 | .clobbers = .{ .eflags = true }, |
| | 80379 | .each = .{ .once = switch (cc) { |
| 82580 | else => unreachable, | 80380 | else => unreachable, |
| 82581 | .down => "__floorx", | 80381 | .e => &.{ |
| 82582 | .up => "__ceilx", | 80382 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82583 | .zero => "__truncx", | 80383 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82584 | } } } }, | 80384 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 82585 | .unused, | 80385 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 82586 | .unused, | 80386 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 82587 | .unused, | 80387 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, |
| 82588 | .unused, | 80388 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 82589 | .unused, | 80389 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 82590 | .unused, | 80390 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82591 | .unused, | 80391 | }, |
| 82592 | .unused, | 80392 | .ne => &.{ |
| 82593 | }, | 80393 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82594 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, | 80394 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82595 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80395 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 82596 | .each = .{ .once = &.{ | 80396 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 82597 | .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, | 80397 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 82598 | .{ ._, ._ps, .mova, .mem(.tmp1x), .tmp0x, ._, ._ }, | 80398 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 82599 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 80399 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, |
| 82600 | } }, | 80400 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 82601 | }, .{ | 80401 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 82602 | .required_features = .{ .avx, .x87, null, null }, | 80402 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82603 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 80403 | }, |
| 82604 | .patterns = &.{ | 80404 | } }, |
| 82605 | .{ .src = .{ .to_mem, .none, .none } }, | 80405 | }, .{ |
| 82606 | }, | 80406 | .required_features = .{ .avx2, null, null, null }, |
| 82607 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 80407 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 82608 | .extra_temps = .{ | 80408 | .patterns = &.{ |
| 82609 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 80409 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82610 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 80410 | }, |
| 82611 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 80411 | .extra_temps = .{ |
| 82612 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80412 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 80413 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 80414 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 80415 | .{ .kind = .{ .rc = .sse } }, |
| | 80416 | .unused, |
| | 80417 | .unused, |
| | 80418 | .unused, |
| | 80419 | .unused, |
| | 80420 | .unused, |
| | 80421 | .unused, |
| | 80422 | .unused, |
| | 80423 | }, |
| | 80424 | .dst_temps = .{ .mem, .unused }, |
| | 80425 | .clobbers = .{ .eflags = true }, |
| | 80426 | .each = .{ .once = switch (cc) { |
| 82613 | else => unreachable, | 80427 | else => unreachable, |
| 82614 | .down => "__floorx", | 80428 | .e => &.{ |
| 82615 | .up => "__ceilx", | 80429 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82616 | .zero => "__truncx", | 80430 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82617 | } } } }, | 80431 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 82618 | .unused, | 80432 | .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 82619 | .unused, | 80433 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, |
| 82620 | .unused, | 80434 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 82621 | .unused, | 80435 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 82622 | .unused, | 80436 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 82623 | .unused, | 80437 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 82624 | .unused, | 80438 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82625 | }, | 80439 | }, |
| 82626 | .dst_temps = .{ .mem, .unused }, | 80440 | .ne => &.{ |
| 82627 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80441 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82628 | .each = .{ .once = &.{ | 80442 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82629 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 80443 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 82630 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 80444 | .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 82631 | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, | 80445 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, |
| 82632 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 80446 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 82633 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 80447 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 82634 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 80448 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 82635 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 80449 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 82636 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 80450 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 82637 | } }, | 80451 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82638 | }, .{ | 80452 | }, |
| 82639 | .required_features = .{ .sse2, .x87, null, null }, | 80453 | } }, |
| 82640 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 80454 | }, .{ |
| 82641 | .patterns = &.{ | 80455 | .required_features = .{ .avx2, null, null, null }, |
| 82642 | .{ .src = .{ .to_mem, .none, .none } }, | 80456 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 82643 | }, | 80457 | .patterns = &.{ |
| 82644 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 80458 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82645 | .extra_temps = .{ | 80459 | }, |
| 82646 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 80460 | .extra_temps = .{ |
| 82647 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 80461 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82648 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 80462 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 82649 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80463 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 80464 | .{ .kind = .{ .rc = .sse } }, |
| | 80465 | .unused, |
| | 80466 | .unused, |
| | 80467 | .unused, |
| | 80468 | .unused, |
| | 80469 | .unused, |
| | 80470 | .unused, |
| | 80471 | .unused, |
| | 80472 | }, |
| | 80473 | .dst_temps = .{ .mem, .unused }, |
| | 80474 | .clobbers = .{ .eflags = true }, |
| | 80475 | .each = .{ .once = switch (cc) { |
| 82650 | else => unreachable, | 80476 | else => unreachable, |
| 82651 | .down => "__floorx", | 80477 | .e => &.{ |
| 82652 | .up => "__ceilx", | 80478 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82653 | .zero => "__truncx", | 80479 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82654 | } } } }, | 80480 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 82655 | .unused, | 80481 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 82656 | .unused, | 80482 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 82657 | .unused, | 80483 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82658 | .unused, | 80484 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 82659 | .unused, | 80485 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 82660 | .unused, | 80486 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82661 | .unused, | 80487 | }, |
| 82662 | }, | 80488 | .ne => &.{ |
| 82663 | .dst_temps = .{ .mem, .unused }, | 80489 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82664 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80490 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82665 | .each = .{ .once = &.{ | 80491 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 82666 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 80492 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 82667 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 80493 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 82668 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, | 80494 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 82669 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 80495 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82670 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 80496 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 82671 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 80497 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 82672 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 80498 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82673 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 80499 | }, |
| 82674 | } }, | 80500 | } }, |
| 82675 | }, .{ | 80501 | }, .{ |
| 82676 | .required_features = .{ .sse, .x87, null, null }, | 80502 | .required_features = .{ .avx2, null, null, null }, |
| 82677 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 80503 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| 82678 | .patterns = &.{ | 80504 | .patterns = &.{ |
| 82679 | .{ .src = .{ .to_mem, .none, .none } }, | 80505 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82680 | }, | 80506 | }, |
| 82681 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 80507 | .extra_temps = .{ |
| 82682 | .extra_temps = .{ | 80508 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82683 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 80509 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 82684 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 80510 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 82685 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 80511 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 82686 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80512 | .{ .kind = .{ .rc = .sse } }, |
| | 80513 | .unused, |
| | 80514 | .unused, |
| | 80515 | .unused, |
| | 80516 | .unused, |
| | 80517 | .unused, |
| | 80518 | .unused, |
| | 80519 | }, |
| | 80520 | .dst_temps = .{ .mem, .unused }, |
| | 80521 | .clobbers = .{ .eflags = true }, |
| | 80522 | .each = .{ .once = switch (cc) { |
| | 80523 | else => unreachable, |
| | 80524 | .e => &.{ |
| | 80525 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 80526 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 80527 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| | 80528 | .{ .@"0:", .v_dqu, .mov, .tmp4y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 80529 | .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| | 80530 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ }, |
| | 80531 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 80532 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 80533 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| | 80534 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80535 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 80536 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 80537 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 80538 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 80539 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| | 80540 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 80541 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 80542 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80543 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 80544 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 80545 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 80546 | }, |
| | 80547 | .ne => &.{ |
| | 80548 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 80549 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 80550 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| | 80551 | .{ .@"0:", .v_dqu, .mov, .tmp4y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 80552 | .{ ._, .vp_q, .cmpeq, .tmp4y, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| | 80553 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4y, ._, ._ }, |
| | 80554 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, |
| | 80555 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 80556 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 80557 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| | 80558 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80559 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 80560 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 80561 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 80562 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 80563 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| | 80564 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 80565 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 80566 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80567 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 80568 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 80569 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 80570 | }, |
| | 80571 | } }, |
| | 80572 | }, .{ |
| | 80573 | .required_features = .{ .avx, null, null, null }, |
| | 80574 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| | 80575 | .patterns = &.{ |
| | 80576 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 80577 | }, |
| | 80578 | .extra_temps = .{ |
| | 80579 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 80580 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 80581 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 80582 | .{ .kind = .{ .rc = .sse } }, |
| | 80583 | .unused, |
| | 80584 | .unused, |
| | 80585 | .unused, |
| | 80586 | .unused, |
| | 80587 | .unused, |
| | 80588 | .unused, |
| | 80589 | .unused, |
| | 80590 | }, |
| | 80591 | .dst_temps = .{ .mem, .unused }, |
| | 80592 | .clobbers = .{ .eflags = true }, |
| | 80593 | .each = .{ .once = switch (cc) { |
| | 80594 | else => unreachable, |
| | 80595 | .e => &.{ |
| | 80596 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 80597 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 80598 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 80599 | .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| | 80600 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| | 80601 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| | 80602 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| | 80603 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 80604 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 80605 | }, |
| | 80606 | .ne => &.{ |
| | 80607 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 80608 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 80609 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 80610 | .{ ._, .vp_b, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| | 80611 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| | 80612 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| | 80613 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| | 80614 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| | 80615 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 80616 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 80617 | }, |
| | 80618 | } }, |
| | 80619 | }, .{ |
| | 80620 | .required_features = .{ .avx, null, null, null }, |
| | 80621 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| | 80622 | .patterns = &.{ |
| | 80623 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 80624 | }, |
| | 80625 | .extra_temps = .{ |
| | 80626 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 80627 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 80628 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 80629 | .{ .kind = .{ .rc = .sse } }, |
| | 80630 | .unused, |
| | 80631 | .unused, |
| | 80632 | .unused, |
| | 80633 | .unused, |
| | 80634 | .unused, |
| | 80635 | .unused, |
| | 80636 | .unused, |
| | 80637 | }, |
| | 80638 | .dst_temps = .{ .mem, .unused }, |
| | 80639 | .clobbers = .{ .eflags = true }, |
| | 80640 | .each = .{ .once = switch (cc) { |
| 82687 | else => unreachable, | 80641 | else => unreachable, |
| 82688 | .down => "__floorx", | 80642 | .e => &.{ |
| 82689 | .up => "__ceilx", | 80643 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82690 | .zero => "__truncx", | 80644 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82691 | } } } }, | 80645 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82692 | .unused, | 80646 | .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 82693 | .unused, | 80647 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| 82694 | .unused, | 80648 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 82695 | .unused, | 80649 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82696 | .unused, | 80650 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 82697 | .unused, | 80651 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82698 | .unused, | 80652 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82699 | }, | 80653 | }, |
| 82700 | .dst_temps = .{ .mem, .unused }, | 80654 | .ne => &.{ |
| 82701 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80655 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82702 | .each = .{ .once = &.{ | 80656 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82703 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 80657 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82704 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 80658 | .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 82705 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, | 80659 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| 82706 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 80660 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 82707 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 80661 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 82708 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 80662 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82709 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 80663 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 82710 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 80664 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82711 | } }, | 80665 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82712 | }, .{ | 80666 | }, |
| 82713 | .required_features = .{ .sse, null, null, null }, | 80667 | } }, |
| 82714 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 80668 | }, .{ |
| 82715 | .patterns = &.{ | 80669 | .required_features = .{ .avx, null, null, null }, |
| 82716 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 80670 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 82717 | }, | 80671 | .patterns = &.{ |
| 82718 | .call_frame = .{ .alignment = .@"16" }, | 80672 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82719 | .extra_temps = .{ | 80673 | }, |
| 82720 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80674 | .extra_temps = .{ |
| | 80675 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 80676 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 80677 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 80678 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 80679 | .{ .kind = .{ .rc = .sse } }, |
| | 80680 | .unused, |
| | 80681 | .unused, |
| | 80682 | .unused, |
| | 80683 | .unused, |
| | 80684 | .unused, |
| | 80685 | .unused, |
| | 80686 | }, |
| | 80687 | .dst_temps = .{ .mem, .unused }, |
| | 80688 | .clobbers = .{ .eflags = true }, |
| | 80689 | .each = .{ .once = switch (cc) { |
| 82721 | else => unreachable, | 80690 | else => unreachable, |
| 82722 | .down => "floorq", | 80691 | .e => &.{ |
| 82723 | .up => "ceilq", | 80692 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82724 | .zero => "truncq", | 80693 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82725 | } } } }, | 80694 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82726 | .unused, | 80695 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82727 | .unused, | 80696 | .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 82728 | .unused, | 80697 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82729 | .unused, | 80698 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 82730 | .unused, | 80699 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 82731 | .unused, | 80700 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 82732 | .unused, | 80701 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82733 | .unused, | 80702 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 82734 | .unused, | 80703 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 82735 | .unused, | 80704 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 82736 | }, | 80705 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 82737 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 80706 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82738 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80707 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82739 | .each = .{ .once = &.{ | 80708 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82740 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 80709 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82741 | } }, | 80710 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 82742 | }, .{ | 80711 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 82743 | .required_features = .{ .avx, null, null, null }, | 80712 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82744 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 80713 | }, |
| 82745 | .patterns = &.{ | 80714 | .ne => &.{ |
| 82746 | .{ .src = .{ .to_mem, .none, .none } }, | 80715 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82747 | }, | 80716 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82748 | .call_frame = .{ .alignment = .@"16" }, | 80717 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82749 | .extra_temps = .{ | 80718 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82750 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 80719 | .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 82751 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 80720 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82752 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80721 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, |
| | 80722 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 80723 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 80724 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| | 80725 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80726 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 80727 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 80728 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 80729 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 80730 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| | 80731 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 80732 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 80733 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80734 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 80735 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 80736 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 80737 | }, |
| | 80738 | } }, |
| | 80739 | }, .{ |
| | 80740 | .required_features = .{ .avx, null, null, null }, |
| | 80741 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| | 80742 | .patterns = &.{ |
| | 80743 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 80744 | }, |
| | 80745 | .extra_temps = .{ |
| | 80746 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 80747 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 80748 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 80749 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 80750 | .{ .kind = .{ .rc = .sse } }, |
| | 80751 | .unused, |
| | 80752 | .unused, |
| | 80753 | .unused, |
| | 80754 | .unused, |
| | 80755 | .unused, |
| | 80756 | .unused, |
| | 80757 | }, |
| | 80758 | .dst_temps = .{ .mem, .unused }, |
| | 80759 | .clobbers = .{ .eflags = true }, |
| | 80760 | .each = .{ .once = switch (cc) { |
| 82753 | else => unreachable, | 80761 | else => unreachable, |
| 82754 | .down => "floorq", | 80762 | .e => &.{ |
| 82755 | .up => "ceilq", | 80763 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82756 | .zero => "truncq", | 80764 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82757 | } } } }, | 80765 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82758 | .unused, | 80766 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82759 | .unused, | 80767 | .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 82760 | .unused, | 80768 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82761 | .unused, | 80769 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 82762 | .unused, | 80770 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 82763 | .unused, | 80771 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 82764 | .unused, | 80772 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82765 | .unused, | 80773 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 82766 | }, | 80774 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 82767 | .dst_temps = .{ .mem, .unused }, | 80775 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 82768 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80776 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 82769 | .each = .{ .once = &.{ | 80777 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82770 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 80778 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82771 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 80779 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82772 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 80780 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82773 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 80781 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 82774 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 80782 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 82775 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 80783 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82776 | } }, | 80784 | }, |
| 82777 | }, .{ | 80785 | .ne => &.{ |
| 82778 | .required_features = .{ .sse2, null, null, null }, | 80786 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82779 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 80787 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82780 | .patterns = &.{ | 80788 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82781 | .{ .src = .{ .to_mem, .none, .none } }, | 80789 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82782 | }, | 80790 | .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 82783 | .call_frame = .{ .alignment = .@"16" }, | 80791 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82784 | .extra_temps = .{ | 80792 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, |
| 82785 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 80793 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 82786 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 80794 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 82787 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80795 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| | 80796 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80797 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 80798 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 80799 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 80800 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 80801 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| | 80802 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 80803 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 80804 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 80805 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 80806 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 80807 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 80808 | }, |
| | 80809 | } }, |
| | 80810 | }, .{ |
| | 80811 | .required_features = .{ .sse2, null, null, null }, |
| | 80812 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| | 80813 | .patterns = &.{ |
| | 80814 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 80815 | }, |
| | 80816 | .extra_temps = .{ |
| | 80817 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 80818 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 80819 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 80820 | .{ .kind = .{ .rc = .sse } }, |
| | 80821 | .unused, |
| | 80822 | .unused, |
| | 80823 | .unused, |
| | 80824 | .unused, |
| | 80825 | .unused, |
| | 80826 | .unused, |
| | 80827 | .unused, |
| | 80828 | }, |
| | 80829 | .dst_temps = .{ .mem, .unused }, |
| | 80830 | .clobbers = .{ .eflags = true }, |
| | 80831 | .each = .{ .once = switch (cc) { |
| 82788 | else => unreachable, | 80832 | else => unreachable, |
| 82789 | .down => "floorq", | 80833 | .e => &.{ |
| 82790 | .up => "ceilq", | 80834 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82791 | .zero => "truncq", | 80835 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82792 | } } } }, | 80836 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82793 | .unused, | 80837 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82794 | .unused, | 80838 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 82795 | .unused, | 80839 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 82796 | .unused, | 80840 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 82797 | .unused, | 80841 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82798 | .unused, | 80842 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82799 | .unused, | 80843 | }, |
| 82800 | .unused, | 80844 | .ne => &.{ |
| 82801 | }, | 80845 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82802 | .dst_temps = .{ .mem, .unused }, | 80846 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82803 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80847 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82804 | .each = .{ .once = &.{ | 80848 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82805 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 80849 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 82806 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 80850 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 82807 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 80851 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 82808 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 80852 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 82809 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 80853 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82810 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 80854 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82811 | } }, | 80855 | }, |
| 82812 | }, .{ | 80856 | } }, |
| 82813 | .required_features = .{ .sse, null, null, null }, | 80857 | }, .{ |
| 82814 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 80858 | .required_features = .{ .sse2, null, null, null }, |
| 82815 | .patterns = &.{ | 80859 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 82816 | .{ .src = .{ .to_mem, .none, .none } }, | 80860 | .patterns = &.{ |
| 82817 | }, | 80861 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82818 | .call_frame = .{ .alignment = .@"16" }, | 80862 | }, |
| 82819 | .extra_temps = .{ | 80863 | .extra_temps = .{ |
| 82820 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 80864 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82821 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 80865 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 82822 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { | 80866 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 80867 | .{ .kind = .{ .rc = .sse } }, |
| | 80868 | .unused, |
| | 80869 | .unused, |
| | 80870 | .unused, |
| | 80871 | .unused, |
| | 80872 | .unused, |
| | 80873 | .unused, |
| | 80874 | .unused, |
| | 80875 | }, |
| | 80876 | .dst_temps = .{ .mem, .unused }, |
| | 80877 | .clobbers = .{ .eflags = true }, |
| | 80878 | .each = .{ .once = switch (cc) { |
| 82823 | else => unreachable, | 80879 | else => unreachable, |
| 82824 | .down => "floorq", | 80880 | .e => &.{ |
| 82825 | .up => "ceilq", | 80881 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82826 | .zero => "truncq", | 80882 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82827 | } } } }, | 80883 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82828 | .unused, | 80884 | .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82829 | .unused, | 80885 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, |
| 82830 | .unused, | 80886 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 82831 | .unused, | 80887 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82832 | .unused, | 80888 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 82833 | .unused, | 80889 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82834 | .unused, | 80890 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82835 | .unused, | 80891 | }, |
| 82836 | }, | 80892 | .ne => &.{ |
| 82837 | .dst_temps = .{ .mem, .unused }, | 80893 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82838 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 80894 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82839 | .each = .{ .once = &.{ | 80895 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82840 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 80896 | .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82841 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 80897 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, |
| 82842 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 80898 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 82843 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 80899 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 82844 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 80900 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82845 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 80901 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 82846 | } }, | 80902 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82847 | } }, | 80903 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82848 | }) catch |err| switch (err) { | 80904 | }, |
| 82849 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ | 80905 | } }, |
| 82850 | @tagName(air_tag), | 80906 | }, .{ |
| 82851 | cg.typeOf(un_op).fmt(pt), | 80907 | .required_features = .{ .sse2, null, null, null }, |
| 82852 | ops[0].tracking(cg), | 80908 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 82853 | }), | 80909 | .patterns = &.{ |
| 82854 | else => |e| return e, | 80910 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82855 | }; | 80911 | }, |
| 82856 | try res[0].finish(inst, &.{un_op}, &ops, cg); | 80912 | .extra_temps = .{ |
| 82857 | }, | 80913 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82858 | .neg, .neg_optimized => |air_tag| if (use_old) try cg.airFloatSign(inst, .neg) else { | 80914 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 82859 | const un_op = air_datas[@intFromEnum(inst)].un_op; | 80915 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 82860 | var ops = try cg.tempsFromOperands(inst, .{un_op}); | 80916 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 82861 | var res: [1]Temp = undefined; | 80917 | .{ .kind = .{ .rc = .sse } }, |
| 82862 | cg.select(&res, &.{cg.typeOf(un_op)}, &ops, comptime &.{ .{ | 80918 | .unused, |
| 82863 | .required_features = .{ .avx, null, null, null }, | 80919 | .unused, |
| 82864 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 80920 | .unused, |
| 82865 | .patterns = &.{ | 80921 | .unused, |
| 82866 | .{ .src = .{ .to_sse, .none, .none } }, | 80922 | .unused, |
| 82867 | }, | 80923 | .unused, |
| 82868 | .extra_temps = .{ | 80924 | }, |
| 82869 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 80925 | .dst_temps = .{ .mem, .unused }, |
| 82870 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 80926 | .clobbers = .{ .eflags = true }, |
| 82871 | .unused, | 80927 | .each = .{ .once = switch (cc) { |
| 82872 | .unused, | 80928 | else => unreachable, |
| 82873 | .unused, | 80929 | .e => &.{ |
| 82874 | .unused, | 80930 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82875 | .unused, | 80931 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82876 | .unused, | 80932 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82877 | .unused, | 80933 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82878 | .unused, | 80934 | .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82879 | .unused, | 80935 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82880 | }, | 80936 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 82881 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 80937 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 82882 | .each = .{ .once = &.{ | 80938 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 82883 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 80939 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82884 | .{ ._, .v_ps, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, | 80940 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 82885 | } }, | 80941 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 82886 | }, .{ | 80942 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 82887 | .required_features = .{ .sse, null, null, null }, | 80943 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 82888 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 80944 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82889 | .patterns = &.{ | 80945 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82890 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 80946 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82891 | }, | 80947 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82892 | .extra_temps = .{ | 80948 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 82893 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 80949 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 82894 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 80950 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82895 | .unused, | 80951 | }, |
| 82896 | .unused, | 80952 | .ne => &.{ |
| 82897 | .unused, | 80953 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82898 | .unused, | 80954 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82899 | .unused, | 80955 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82900 | .unused, | 80956 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82901 | .unused, | 80957 | .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82902 | .unused, | 80958 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82903 | .unused, | 80959 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, |
| 82904 | }, | 80960 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 82905 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 80961 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 82906 | .each = .{ .once = &.{ | 80962 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 82907 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 80963 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82908 | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, | 80964 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 82909 | } }, | 80965 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 82910 | }, .{ | 80966 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 82911 | .required_features = .{ .avx, null, null, null }, | 80967 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 82912 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, | 80968 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82913 | .patterns = &.{ | 80969 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82914 | .{ .src = .{ .to_sse, .none, .none } }, | 80970 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82915 | }, | 80971 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82916 | .extra_temps = .{ | 80972 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 82917 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 80973 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 82918 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 80974 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82919 | .unused, | 80975 | }, |
| 82920 | .unused, | 80976 | } }, |
| 82921 | .unused, | 80977 | }, .{ |
| 82922 | .unused, | 80978 | .required_features = .{ .sse4_1, null, null, null }, |
| 82923 | .unused, | 80979 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| 82924 | .unused, | 80980 | .patterns = &.{ |
| 82925 | .unused, | 80981 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82926 | .unused, | 80982 | }, |
| 82927 | .unused, | 80983 | .extra_temps = .{ |
| 82928 | }, | 80984 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82929 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 80985 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 82930 | .each = .{ .once = &.{ | 80986 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 82931 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 80987 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 82932 | .{ ._, .v_ps, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, | 80988 | .{ .kind = .{ .rc = .sse } }, |
| 82933 | } }, | 80989 | .unused, |
| 82934 | }, .{ | 80990 | .unused, |
| 82935 | .required_features = .{ .avx, null, null, null }, | 80991 | .unused, |
| 82936 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 80992 | .unused, |
| 82937 | .patterns = &.{ | 80993 | .unused, |
| 82938 | .{ .src = .{ .to_sse, .none, .none } }, | 80994 | .unused, |
| 82939 | }, | 80995 | }, |
| 82940 | .extra_temps = .{ | 80996 | .dst_temps = .{ .mem, .unused }, |
| 82941 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 80997 | .clobbers = .{ .eflags = true }, |
| 82942 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 80998 | .each = .{ .once = switch (cc) { |
| 82943 | .unused, | 80999 | else => unreachable, |
| 82944 | .unused, | 81000 | .e => &.{ |
| 82945 | .unused, | 81001 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82946 | .unused, | 81002 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82947 | .unused, | 81003 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82948 | .unused, | 81004 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82949 | .unused, | 81005 | .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82950 | .unused, | 81006 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82951 | .unused, | 81007 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 82952 | }, | 81008 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 82953 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 81009 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 82954 | .each = .{ .once = &.{ | 81010 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82955 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81011 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 82956 | .{ ._, .v_pd, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, | 81012 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 82957 | } }, | 81013 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 82958 | }, .{ | 81014 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 82959 | .required_features = .{ .sse2, null, null, null }, | 81015 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82960 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 81016 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82961 | .patterns = &.{ | 81017 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82962 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 81018 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82963 | }, | 81019 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 82964 | .extra_temps = .{ | 81020 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 82965 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 81021 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82966 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81022 | }, |
| 82967 | .unused, | 81023 | .ne => &.{ |
| 82968 | .unused, | 81024 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 82969 | .unused, | 81025 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 82970 | .unused, | 81026 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82971 | .unused, | 81027 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 82972 | .unused, | 81028 | .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 82973 | .unused, | 81029 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 82974 | .unused, | 81030 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, |
| 82975 | .unused, | 81031 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 82976 | }, | 81032 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 82977 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 81033 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 82978 | .each = .{ .once = &.{ | 81034 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82979 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81035 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 82980 | .{ ._, ._pd, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, | 81036 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 82981 | } }, | 81037 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 82982 | }, .{ | 81038 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 82983 | .required_features = .{ .avx, null, null, null }, | 81039 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 82984 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 81040 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82985 | .patterns = &.{ | 81041 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82986 | .{ .src = .{ .to_sse, .none, .none } }, | 81042 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 82987 | }, | 81043 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 82988 | .extra_temps = .{ | 81044 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 82989 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 81045 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 82990 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 81046 | }, |
| 82991 | .unused, | 81047 | } }, |
| 82992 | .unused, | 81048 | }, .{ |
| 82993 | .unused, | 81049 | .required_features = .{ .sse, .mmx, null, null }, |
| 82994 | .unused, | 81050 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| 82995 | .unused, | 81051 | .patterns = &.{ |
| 82996 | .unused, | 81052 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 82997 | .unused, | 81053 | }, |
| 82998 | .unused, | 81054 | .extra_temps = .{ |
| 82999 | .unused, | 81055 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83000 | }, | 81056 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83001 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 81057 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83002 | .each = .{ .once = &.{ | 81058 | .{ .kind = .{ .rc = .mmx } }, |
| 83003 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81059 | .unused, |
| 83004 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, | 81060 | .unused, |
| 83005 | } }, | 81061 | .unused, |
| 83006 | }, .{ | 81062 | .unused, |
| 83007 | .required_features = .{ .x87, null, null, null }, | 81063 | .unused, |
| 83008 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 81064 | .unused, |
| 83009 | .patterns = &.{ | 81065 | .unused, |
| 83010 | .{ .src = .{ .mem, .none, .none } }, | 81066 | }, |
| 83011 | .{ .src = .{ .to_x87, .none, .none } }, | 81067 | .dst_temps = .{ .mem, .unused }, |
| 83012 | }, | 81068 | .clobbers = .{ .eflags = true }, |
| 83013 | .extra_temps = .{ | 81069 | .each = .{ .once = switch (cc) { |
| 83014 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 81070 | else => unreachable, |
| 83015 | .unused, | 81071 | .e => &.{ |
| 83016 | .unused, | 81072 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83017 | .unused, | 81073 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83018 | .unused, | 81074 | .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 83019 | .unused, | 81075 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 83020 | .unused, | 81076 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, |
| 83021 | .unused, | 81077 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83022 | .unused, | 81078 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 83023 | .unused, | 81079 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 83024 | .unused, | 81080 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83025 | }, | 81081 | }, |
| 83026 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused }, | 81082 | .ne => &.{ |
| 83027 | .each = .{ .once = &.{ | 81083 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83028 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 81084 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83029 | .{ ._, .f_, .chs, ._, ._, ._, ._ }, | 81085 | .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 83030 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 81086 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 83031 | } }, | 81087 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, |
| 83032 | }, .{ | 81088 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 83033 | .required_features = .{ .avx, null, null, null }, | 81089 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83034 | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, | 81090 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 83035 | .patterns = &.{ | 81091 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 83036 | .{ .src = .{ .to_sse, .none, .none } }, | 81092 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83037 | }, | 81093 | }, |
| 83038 | .extra_temps = .{ | 81094 | } }, |
| 83039 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 81095 | }, .{ |
| 83040 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81096 | .required_features = .{ .sse, .mmx, null, null }, |
| 83041 | .unused, | 81097 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 83042 | .unused, | 81098 | .patterns = &.{ |
| 83043 | .unused, | 81099 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83044 | .unused, | 81100 | }, |
| 83045 | .unused, | 81101 | .extra_temps = .{ |
| 83046 | .unused, | 81102 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83047 | .unused, | 81103 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83048 | .unused, | 81104 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83049 | .unused, | 81105 | .{ .kind = .{ .rc = .mmx } }, |
| 83050 | }, | 81106 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83051 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 81107 | .{ .kind = .{ .rc = .mmx } }, |
| 83052 | .each = .{ .once = &.{ | 81108 | .unused, |
| 83053 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81109 | .unused, |
| 83054 | .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, | 81110 | .unused, |
| 83055 | } }, | 81111 | .unused, |
| 83056 | }, .{ | 81112 | .unused, |
| 83057 | .required_features = .{ .sse2, null, null, null }, | 81113 | }, |
| 83058 | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, | 81114 | .dst_temps = .{ .mem, .unused }, |
| 83059 | .patterns = &.{ | 81115 | .clobbers = .{ .eflags = true }, |
| 83060 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 81116 | .each = .{ .once = switch (cc) { |
| 83061 | }, | 81117 | else => unreachable, |
| 83062 | .extra_temps = .{ | 81118 | .e => &.{ |
| 83063 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 81119 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83064 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81120 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83065 | .unused, | 81121 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83066 | .unused, | 81122 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 83067 | .unused, | 81123 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 83068 | .unused, | 81124 | .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 83069 | .unused, | 81125 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 83070 | .unused, | 81126 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 83071 | .unused, | 81127 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 83072 | .unused, | 81128 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 83073 | .unused, | 81129 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 83074 | }, | 81130 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83075 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 81131 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 83076 | .each = .{ .once = &.{ | 81132 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 83077 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81133 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 83078 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, | 81134 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 83079 | } }, | 81135 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83080 | }, .{ | 81136 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 83081 | .required_features = .{ .sse, null, null, null }, | 81137 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83082 | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, | 81138 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83083 | .patterns = &.{ | 81139 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 83084 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 81140 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 83085 | }, | 81141 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83086 | .extra_temps = .{ | 81142 | }, |
| 83087 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 81143 | .ne => &.{ |
| 83088 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81144 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83089 | .unused, | 81145 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83090 | .unused, | 81146 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83091 | .unused, | 81147 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 83092 | .unused, | 81148 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 83093 | .unused, | 81149 | .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 83094 | .unused, | 81150 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 83095 | .unused, | 81151 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 83096 | .unused, | 81152 | .{ ._, ._, .xor, .tmp4b, .si(0b1111), ._, ._ }, |
| 83097 | .unused, | 81153 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 83098 | }, | 81154 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 83099 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 81155 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 83100 | .each = .{ .once = &.{ | 81156 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83101 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81157 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 83102 | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, | 81158 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 83103 | } }, | 81159 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 83104 | }, .{ | 81160 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 83105 | .required_features = .{ .avx2, null, null, null }, | 81161 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83106 | .src_constraints = .{ .{ .scalar_any_float = .yword }, .any, .any }, | 81162 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 83107 | .patterns = &.{ | 81163 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83108 | .{ .src = .{ .to_sse, .none, .none } }, | 81164 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83109 | }, | 81165 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 83110 | .extra_temps = .{ | 81166 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 83111 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 81167 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83112 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 81168 | }, |
| 83113 | .unused, | 81169 | } }, |
| 83114 | .unused, | 81170 | }, .{ |
| 83115 | .unused, | 81171 | .required_features = .{ .sse, .mmx, null, null }, |
| 83116 | .unused, | 81172 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 83117 | .unused, | 81173 | .patterns = &.{ |
| 83118 | .unused, | 81174 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83119 | .unused, | 81175 | }, |
| 83120 | .unused, | 81176 | .extra_temps = .{ |
| 83121 | .unused, | 81177 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83122 | }, | 81178 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 83123 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 81179 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83124 | .each = .{ .once = &.{ | 81180 | .{ .kind = .{ .rc = .mmx } }, |
| 83125 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81181 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83126 | .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, | 81182 | .{ .kind = .{ .rc = .mmx } }, |
| 83127 | } }, | 81183 | .unused, |
| 83128 | }, .{ | 81184 | .unused, |
| 83129 | .required_features = .{ .avx, null, null, null }, | 81185 | .unused, |
| 83130 | .src_constraints = .{ .{ .scalar_any_float = .yword }, .any, .any }, | 81186 | .unused, |
| 83131 | .patterns = &.{ | 81187 | .unused, |
| 83132 | .{ .src = .{ .to_sse, .none, .none } }, | 81188 | }, |
| 83133 | }, | 81189 | .dst_temps = .{ .mem, .unused }, |
| 83134 | .extra_temps = .{ | 81190 | .clobbers = .{ .eflags = true }, |
| 83135 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 81191 | .each = .{ .once = switch (cc) { |
| 83136 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 81192 | else => unreachable, |
| 83137 | .unused, | 81193 | .e => &.{ |
| 83138 | .unused, | 81194 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83139 | .unused, | 81195 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83140 | .unused, | 81196 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83141 | .unused, | 81197 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 83142 | .unused, | 81198 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 83143 | .unused, | 81199 | .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 83144 | .unused, | 81200 | .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ }, |
| 83145 | .unused, | 81201 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 83146 | }, | 81202 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 83147 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 81203 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 83148 | .each = .{ .once = &.{ | 81204 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 83149 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81205 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 83150 | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, | 81206 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83151 | } }, | 81207 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 83152 | }, .{ | 81208 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 83153 | .required_features = .{ .avx, null, null, null }, | 81209 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 83154 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, | 81210 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 83155 | .patterns = &.{ | 81211 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83156 | .{ .src = .{ .to_mem, .none, .none } }, | 81212 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 83157 | }, | 81213 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83158 | .extra_temps = .{ | 81214 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83159 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81215 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 83160 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 81216 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 83161 | .{ .kind = .{ .rc = .sse } }, | 81217 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83162 | .{ .kind = .{ .rc = .sse } }, | 81218 | }, |
| 83163 | .unused, | 81219 | .ne => &.{ |
| 83164 | .unused, | 81220 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83165 | .unused, | 81221 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83166 | .unused, | 81222 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83167 | .unused, | 81223 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 83168 | .unused, | 81224 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 83169 | .unused, | 81225 | .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 83170 | }, | 81226 | .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ }, |
| 83171 | .dst_temps = .{ .mem, .unused }, | 81227 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 83172 | .each = .{ .once = &.{ | 81228 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 83173 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81229 | .{ ._, ._, .xor, .tmp4b, .si(0b11), ._, ._ }, |
| 83174 | .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, | 81230 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 83175 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81231 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 83176 | .{ .@"0:", .v_ps, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 81232 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 83177 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 81233 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83178 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 81234 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 83179 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81235 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 83180 | } }, | 81236 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 83181 | }, .{ | 81237 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 83182 | .required_features = .{ .sse, null, null, null }, | 81238 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 83183 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 81239 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 83184 | .patterns = &.{ | 81240 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83185 | .{ .src = .{ .to_mem, .none, .none } }, | 81241 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 83186 | }, | 81242 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 83187 | .extra_temps = .{ | 81243 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 83188 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81244 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83189 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81245 | }, |
| 83190 | .{ .kind = .{ .rc = .sse } }, | 81246 | } }, |
| 83191 | .{ .kind = .{ .rc = .sse } }, | 81247 | }, .{ |
| 83192 | .unused, | 81248 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| 83193 | .unused, | 81249 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 83194 | .unused, | 81250 | .patterns = &.{ |
| 83195 | .unused, | 81251 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83196 | .unused, | 81252 | }, |
| 83197 | .unused, | 81253 | .extra_temps = .{ |
| 83198 | .unused, | 81254 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83199 | }, | 81255 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83200 | .dst_temps = .{ .mem, .unused }, | 81256 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83201 | .each = .{ .once = &.{ | 81257 | .unused, |
| 83202 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81258 | .unused, |
| 83203 | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, | 81259 | .unused, |
| 83204 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81260 | .unused, |
| 83205 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 81261 | .unused, |
| 83206 | .{ ._, ._ps, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 81262 | .unused, |
| 83207 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 81263 | .unused, |
| 83208 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 81264 | .unused, |
| 83209 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81265 | }, |
| 83210 | } }, | 81266 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 83211 | }, .{ | 81267 | .clobbers = .{ .eflags = true }, |
| 83212 | .required_features = .{ .avx, null, null, null }, | 81268 | .each = .{ .once = &.{ |
| 83213 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 81269 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 83214 | .patterns = &.{ | 81270 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83215 | .{ .src = .{ .to_mem, .none, .none } }, | 81271 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 83216 | }, | 81272 | .{ .@"0:", ._, .mov, .tmp2b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, |
| 83217 | .extra_temps = .{ | 81273 | .{ ._, ._, .cmp, .tmp2b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, |
| 83218 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81274 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 83219 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 81275 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 83220 | .{ .kind = .{ .rc = .sse } }, | 81276 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 83221 | .{ .kind = .{ .rc = .sse } }, | 81277 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 83222 | .unused, | 81278 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 83223 | .unused, | 81279 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83224 | .unused, | 81280 | } }, |
| 83225 | .unused, | 81281 | }, .{ |
| 83226 | .unused, | 81282 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 83227 | .unused, | 81283 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 83228 | .unused, | 81284 | .patterns = &.{ |
| 83229 | }, | 81285 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83230 | .dst_temps = .{ .mem, .unused }, | 81286 | }, |
| 83231 | .each = .{ .once = &.{ | 81287 | .extra_temps = .{ |
| 83232 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81288 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83233 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, | 81289 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83234 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81290 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 83235 | .{ .@"0:", .v_pd, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 81291 | .unused, |
| 83236 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 81292 | .unused, |
| 83237 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 81293 | .unused, |
| 83238 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81294 | .unused, |
| 83239 | } }, | 81295 | .unused, |
| 83240 | }, .{ | 81296 | .unused, |
| 83241 | .required_features = .{ .sse2, null, null, null }, | 81297 | .unused, |
| 83242 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 81298 | .unused, |
| 83243 | .patterns = &.{ | 81299 | }, |
| 83244 | .{ .src = .{ .to_mem, .none, .none } }, | 81300 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 83245 | }, | 81301 | .clobbers = .{ .eflags = true }, |
| 83246 | .extra_temps = .{ | 81302 | .each = .{ .once = &.{ |
| 83247 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81303 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 83248 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81304 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83249 | .{ .kind = .{ .rc = .sse } }, | 81305 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 83250 | .{ .kind = .{ .rc = .sse } }, | 81306 | .{ .@"0:", ._, .mov, .tmp2w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 83251 | .unused, | 81307 | .{ ._, ._, .cmp, .tmp2w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, |
| 83252 | .unused, | 81308 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 83253 | .unused, | 81309 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| 83254 | .unused, | 81310 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| 83255 | .unused, | 81311 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 83256 | .unused, | 81312 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 83257 | .unused, | 81313 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83258 | }, | 81314 | } }, |
| 83259 | .dst_temps = .{ .mem, .unused }, | 81315 | }, .{ |
| 83260 | .each = .{ .once = &.{ | 81316 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 83261 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81317 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 83262 | .{ ._, ._pd, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, | 81318 | .patterns = &.{ |
| 83263 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81319 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83264 | .{ .@"0:", ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, | 81320 | }, |
| 83265 | .{ ._, ._pd, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 81321 | .extra_temps = .{ |
| 83266 | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 81322 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83267 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 81323 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83268 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81324 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83269 | } }, | 81325 | .unused, |
| 83270 | }, .{ | 81326 | .unused, |
| 83271 | .required_features = .{ .avx2, null, null, null }, | 81327 | .unused, |
| 83272 | .src_constraints = .{ .{ .multiple_scalar_any_float = .yword }, .any, .any }, | 81328 | .unused, |
| 83273 | .patterns = &.{ | 81329 | .unused, |
| 83274 | .{ .src = .{ .to_mem, .none, .none } }, | 81330 | .unused, |
| 83275 | }, | 81331 | .unused, |
| 83276 | .extra_temps = .{ | 81332 | .unused, |
| 83277 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81333 | }, |
| 83278 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 81334 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 83279 | .{ .kind = .{ .rc = .sse } }, | 81335 | .clobbers = .{ .eflags = true }, |
| 83280 | .{ .kind = .{ .rc = .sse } }, | 81336 | .each = .{ .once = &.{ |
| 83281 | .unused, | 81337 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 83282 | .unused, | 81338 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83283 | .unused, | 81339 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 83284 | .unused, | 81340 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 83285 | .unused, | 81341 | .{ ._, ._, .cmp, .tmp2d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, |
| 83286 | .unused, | 81342 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 83287 | .unused, | 81343 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 83288 | }, | 81344 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 83289 | .dst_temps = .{ .mem, .unused }, | 81345 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 83290 | .each = .{ .once = &.{ | 81346 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 83291 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81347 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83292 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, | 81348 | } }, |
| 83293 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81349 | }, .{ |
| 83294 | .{ .@"0:", .vp_, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 81350 | .required_features = .{ .@"64bit", null, null, null }, |
| 83295 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 81351 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| 83296 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 81352 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 83297 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81353 | .patterns = &.{ |
| 83298 | } }, | 81354 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83299 | }, .{ | 81355 | }, |
| 83300 | .required_features = .{ .avx, null, null, null }, | 81356 | .extra_temps = .{ |
| 83301 | .src_constraints = .{ .{ .multiple_scalar_any_float = .yword }, .any, .any }, | 81357 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83302 | .patterns = &.{ | 81358 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83303 | .{ .src = .{ .to_mem, .none, .none } }, | 81359 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83304 | }, | 81360 | .unused, |
| 83305 | .extra_temps = .{ | 81361 | .unused, |
| 83306 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81362 | .unused, |
| 83307 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, | 81363 | .unused, |
| 83308 | .{ .kind = .{ .rc = .sse } }, | 81364 | .unused, |
| 83309 | .{ .kind = .{ .rc = .sse } }, | 81365 | .unused, |
| 83310 | .unused, | 81366 | .unused, |
| 83311 | .unused, | 81367 | .unused, |
| 83312 | .unused, | 81368 | }, |
| 83313 | .unused, | 81369 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 83314 | .unused, | 81370 | .clobbers = .{ .eflags = true }, |
| 83315 | .unused, | 81371 | .each = .{ .once = &.{ |
| 83316 | .unused, | 81372 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 83317 | }, | 81373 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83318 | .dst_temps = .{ .mem, .unused }, | 81374 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 83319 | .each = .{ .once = &.{ | 81375 | .{ .@"0:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 83320 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81376 | .{ ._, ._, .cmp, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 83321 | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, | 81377 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 83322 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81378 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 83323 | .{ .@"0:", .v_pd, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, | 81379 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 83324 | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, | 81380 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 83325 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 81381 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 83326 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81382 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83327 | } }, | 81383 | } }, |
| 83328 | }, .{ | 81384 | }, .{ |
| 83329 | .required_features = .{ .sse2, null, null, null }, | 81385 | .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, |
| 83330 | .src_constraints = .{ .{ .multiple_scalar_any_float = .xword }, .any, .any }, | 81386 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 83331 | .patterns = &.{ | 81387 | .patterns = &.{ |
| 83332 | .{ .src = .{ .to_mem, .none, .none } }, | 81388 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83333 | }, | 81389 | }, |
| 83334 | .extra_temps = .{ | 81390 | .extra_temps = .{ |
| 83335 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81391 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83336 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81392 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83337 | .{ .kind = .{ .rc = .sse } }, | 81393 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83338 | .{ .kind = .{ .rc = .sse } }, | 81394 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83339 | .unused, | 81395 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83340 | .unused, | 81396 | .unused, |
| 83341 | .unused, | 81397 | .unused, |
| 83342 | .unused, | 81398 | .unused, |
| 83343 | .unused, | 81399 | .unused, |
| 83344 | .unused, | 81400 | .unused, |
| 83345 | .unused, | 81401 | .unused, |
| 83346 | }, | 81402 | }, |
| 83347 | .dst_temps = .{ .mem, .unused }, | 81403 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 83348 | .each = .{ .once = &.{ | 81404 | .clobbers = .{ .eflags = true }, |
| 83349 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81405 | .each = .{ .once = &.{ |
| 83350 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 81406 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 83351 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81407 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 83352 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | 81408 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 83353 | .{ ._, .p_, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 81409 | .{ .@"0:", ._, .mov, .tmp2d, .sa(.src0p, .add_elem_limbs), ._, ._ }, |
| 83354 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 81410 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 83355 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 81411 | .{ .@"1:", ._, .mov, .tmp4p, .memi(.src0p, .tmp0), ._, ._ }, |
| 83356 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81412 | .{ ._, ._, .xor, .tmp4p, .memi(.src1p, .tmp0), ._, ._ }, |
| 83357 | } }, | 81413 | .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ }, |
| 83358 | }, .{ | 81414 | .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ }, |
| 83359 | .required_features = .{ .sse, null, null, null }, | 81415 | .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ }, |
| 83360 | .src_constraints = .{ .{ .multiple_scalar_any_float = .xword }, .any, .any }, | 81416 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, |
| 83361 | .patterns = &.{ | 81417 | .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ }, |
| 83362 | .{ .src = .{ .to_mem, .none, .none } }, | 81418 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 83363 | }, | 81419 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 83364 | .extra_temps = .{ | 81420 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 83365 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 81421 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 83366 | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, | 81422 | .{ ._, ._, .cmp, .tmp1b, .sa(.dst0, .add_len), ._, ._ }, |
| 83367 | .{ .kind = .{ .rc = .sse } }, | 81423 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| 83368 | .{ .kind = .{ .rc = .sse } }, | 81424 | } }, |
| 83369 | .unused, | 81425 | }, .{ |
| 83370 | .unused, | 81426 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| 83371 | .unused, | 81427 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| 83372 | .unused, | 81428 | .patterns = &.{ |
| 83373 | .unused, | 81429 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83374 | .unused, | 81430 | }, |
| 83375 | .unused, | 81431 | .extra_temps = .{ |
| 83376 | }, | 81432 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83377 | .dst_temps = .{ .mem, .unused }, | 81433 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83378 | .each = .{ .once = &.{ | 81434 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83379 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 81435 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83380 | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, | 81436 | .unused, |
| 83381 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 81437 | .unused, |
| 83382 | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | 81438 | .unused, |
| 83383 | .{ ._, ._ps, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 81439 | .unused, |
| 83384 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, | 81440 | .unused, |
| 83385 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 81441 | .unused, |
| 83386 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 81442 | .unused, |
| 83387 | } }, | 81443 | }, |
| 83388 | } }) catch |err| switch (err) { | 81444 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 83389 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ | 81445 | .clobbers = .{ .eflags = true }, |
| 83390 | @tagName(air_tag), | 81446 | .each = .{ .once = &.{ |
| 83391 | cg.typeOf(un_op).fmt(pt), | 81447 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| 83392 | ops[0].tracking(cg), | 81448 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83393 | }), | 81449 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 83394 | else => |e| return e, | 81450 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 83395 | }; | 81451 | .{ ._, ._, .mov, .tmp3b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, |
| 83396 | try res[0].finish(inst, &.{un_op}, &ops, cg); | 81452 | .{ ._, ._, .cmp, .tmp3b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, |
| 83397 | }, | 81453 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 83398 | | 81454 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| 83399 | .cmp_lt, | 81455 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| 83400 | .cmp_lt_optimized, | 81456 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 83401 | .cmp_lte, | 81457 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 83402 | .cmp_lte_optimized, | 81458 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83403 | .cmp_gte, | 81459 | } }, |
| 83404 | .cmp_gte_optimized, | 81460 | }, .{ |
| 83405 | .cmp_gt, | 81461 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 83406 | .cmp_gt_optimized, | 81462 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| 83407 | => |air_tag| if (use_old) try cg.airCmp(inst, air_tag.toCmpOp().?) else { | 81463 | .patterns = &.{ |
| 83408 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | 81464 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83409 | const cmp_op = air_tag.toCmpOp().?; | 81465 | }, |
| 83410 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | 81466 | .extra_temps = .{ |
| 83411 | var res: [1]Temp = undefined; | 81467 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83412 | (if (cg.floatBits(cg.typeOf(bin_op.lhs))) |_| err: { | 81468 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83413 | switch (cmp_op) { | 81469 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83414 | else => unreachable, | 81470 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 83415 | .lt, .lte => {}, | 81471 | .unused, |
| 83416 | .gt, .gte => std.mem.swap(Temp, &ops[0], &ops[1]), | 81472 | .unused, |
| 83417 | } | 81473 | .unused, |
| 83418 | break :err cg.select(&res, &.{.bool}, &ops, switch (switch (cmp_op) { | 81474 | .unused, |
| 83419 | else => unreachable, | 81475 | .unused, |
| 83420 | .lt, .gt => true, | 81476 | .unused, |
| 83421 | .lte, .gte => false, | 81477 | .unused, |
| 83422 | }) { | 81478 | }, |
| 83423 | inline false, true => |strict| comptime &.{ .{ | 81479 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81480 | .clobbers = .{ .eflags = true }, |
| | 81481 | .each = .{ .once = &.{ |
| | 81482 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81483 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81484 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81485 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81486 | .{ ._, ._, .mov, .tmp3w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| | 81487 | .{ ._, ._, .cmp, .tmp3w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, |
| | 81488 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81489 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| | 81490 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| | 81491 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81492 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 81493 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81494 | } }, |
| | 81495 | }, .{ |
| | 81496 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| | 81497 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 81498 | .patterns = &.{ |
| | 81499 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81500 | }, |
| | 81501 | .extra_temps = .{ |
| | 81502 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81503 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81504 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 81505 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 81506 | .unused, |
| | 81507 | .unused, |
| | 81508 | .unused, |
| | 81509 | .unused, |
| | 81510 | .unused, |
| | 81511 | .unused, |
| | 81512 | .unused, |
| | 81513 | }, |
| | 81514 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81515 | .clobbers = .{ .eflags = true }, |
| | 81516 | .each = .{ .once = &.{ |
| | 81517 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81518 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81519 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81520 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81521 | .{ ._, ._, .mov, .tmp3d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| | 81522 | .{ ._, ._, .cmp, .tmp3d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, |
| | 81523 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81524 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| | 81525 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| | 81526 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81527 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 81528 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81529 | } }, |
| | 81530 | }, .{ |
| | 81531 | .required_features = .{ .@"64bit", null, null, null }, |
| | 81532 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| | 81533 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 81534 | .patterns = &.{ |
| | 81535 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81536 | }, |
| | 81537 | .extra_temps = .{ |
| | 81538 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81539 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81540 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 81541 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 81542 | .unused, |
| | 81543 | .unused, |
| | 81544 | .unused, |
| | 81545 | .unused, |
| | 81546 | .unused, |
| | 81547 | .unused, |
| | 81548 | .unused, |
| | 81549 | }, |
| | 81550 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81551 | .clobbers = .{ .eflags = true }, |
| | 81552 | .each = .{ .once = &.{ |
| | 81553 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81554 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81555 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81556 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81557 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| | 81558 | .{ ._, ._, .cmp, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| | 81559 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81560 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| | 81561 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| | 81562 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81563 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 81564 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81565 | } }, |
| | 81566 | }, .{ |
| | 81567 | .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, |
| | 81568 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 81569 | .patterns = &.{ |
| | 81570 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81571 | }, |
| | 81572 | .extra_temps = .{ |
| | 81573 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81574 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81575 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 81576 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81577 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81578 | .unused, |
| | 81579 | .unused, |
| | 81580 | .unused, |
| | 81581 | .unused, |
| | 81582 | .unused, |
| | 81583 | .unused, |
| | 81584 | }, |
| | 81585 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81586 | .clobbers = .{ .eflags = true }, |
| | 81587 | .each = .{ .once = &.{ |
| | 81588 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81589 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 81590 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81591 | .{ .@"0:", ._, .mov, .tmp2d, .sa(.src0p, .add_elem_limbs), ._, ._ }, |
| | 81592 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 81593 | .{ .@"1:", ._, .mov, .tmp4p, .memi(.src0p, .tmp0), ._, ._ }, |
| | 81594 | .{ ._, ._, .xor, .tmp4p, .memi(.src1p, .tmp0), ._, ._ }, |
| | 81595 | .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ }, |
| | 81596 | .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ }, |
| | 81597 | .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ }, |
| | 81598 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, |
| | 81599 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81600 | .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ }, |
| | 81601 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81602 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| | 81603 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| | 81604 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81605 | .{ ._, ._, .cmp, .tmp1b, .sa(.dst0, .add_len), ._, ._ }, |
| | 81606 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 81607 | } }, |
| | 81608 | }, .{ |
| | 81609 | .required_features = .{ .@"64bit", null, null, null }, |
| | 81610 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| | 81611 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, |
| | 81612 | .patterns = &.{ |
| | 81613 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81614 | }, |
| | 81615 | .extra_temps = .{ |
| | 81616 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81617 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81618 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 81619 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 81620 | .unused, |
| | 81621 | .unused, |
| | 81622 | .unused, |
| | 81623 | .unused, |
| | 81624 | .unused, |
| | 81625 | .unused, |
| | 81626 | .unused, |
| | 81627 | }, |
| | 81628 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81629 | .clobbers = .{ .eflags = true }, |
| | 81630 | .each = .{ .once = &.{ |
| | 81631 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81632 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81633 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81634 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81635 | .{ ._, ._, .mov, .tmp3b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, |
| | 81636 | .{ ._, ._, .cmp, .tmp3b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, |
| | 81637 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81638 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, |
| | 81639 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, |
| | 81640 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81641 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 81642 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81643 | } }, |
| | 81644 | }, .{ |
| | 81645 | .required_features = .{ .@"64bit", null, null, null }, |
| | 81646 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| | 81647 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, |
| | 81648 | .patterns = &.{ |
| | 81649 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81650 | }, |
| | 81651 | .extra_temps = .{ |
| | 81652 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81653 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81654 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 81655 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 81656 | .unused, |
| | 81657 | .unused, |
| | 81658 | .unused, |
| | 81659 | .unused, |
| | 81660 | .unused, |
| | 81661 | .unused, |
| | 81662 | .unused, |
| | 81663 | }, |
| | 81664 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81665 | .clobbers = .{ .eflags = true }, |
| | 81666 | .each = .{ .once = &.{ |
| | 81667 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81668 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81669 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81670 | .{ ._, ._, .mov, .tmp3w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| | 81671 | .{ ._, ._, .cmp, .tmp3w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, |
| | 81672 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81673 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, |
| | 81674 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, |
| | 81675 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81676 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 81677 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81678 | } }, |
| | 81679 | }, .{ |
| | 81680 | .required_features = .{ .@"64bit", null, null, null }, |
| | 81681 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| | 81682 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, |
| | 81683 | .patterns = &.{ |
| | 81684 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81685 | }, |
| | 81686 | .extra_temps = .{ |
| | 81687 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81688 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81689 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 81690 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 81691 | .unused, |
| | 81692 | .unused, |
| | 81693 | .unused, |
| | 81694 | .unused, |
| | 81695 | .unused, |
| | 81696 | .unused, |
| | 81697 | .unused, |
| | 81698 | }, |
| | 81699 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81700 | .clobbers = .{ .eflags = true }, |
| | 81701 | .each = .{ .once = &.{ |
| | 81702 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81703 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81704 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81705 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81706 | .{ ._, ._, .mov, .tmp3d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| | 81707 | .{ ._, ._, .cmp, .tmp3d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, |
| | 81708 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81709 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, |
| | 81710 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, |
| | 81711 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81712 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 81713 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81714 | } }, |
| | 81715 | }, .{ |
| | 81716 | .required_features = .{ .@"64bit", null, null, null }, |
| | 81717 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| | 81718 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, |
| | 81719 | .patterns = &.{ |
| | 81720 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81721 | }, |
| | 81722 | .extra_temps = .{ |
| | 81723 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81724 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81725 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 81726 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 81727 | .unused, |
| | 81728 | .unused, |
| | 81729 | .unused, |
| | 81730 | .unused, |
| | 81731 | .unused, |
| | 81732 | .unused, |
| | 81733 | .unused, |
| | 81734 | }, |
| | 81735 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81736 | .clobbers = .{ .eflags = true }, |
| | 81737 | .each = .{ .once = &.{ |
| | 81738 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81739 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81740 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81741 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81742 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| | 81743 | .{ ._, ._, .cmp, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| | 81744 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81745 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, |
| | 81746 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, |
| | 81747 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81748 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 81749 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81750 | } }, |
| | 81751 | }, .{ |
| | 81752 | .required_features = .{ .@"64bit", null, null, null }, |
| | 81753 | .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, |
| | 81754 | .dst_constraints = .{ .{ .bool_vec = .qword }, .any }, |
| | 81755 | .patterns = &.{ |
| | 81756 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81757 | }, |
| | 81758 | .extra_temps = .{ |
| | 81759 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81760 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 81761 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81762 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81763 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81764 | .unused, |
| | 81765 | .unused, |
| | 81766 | .unused, |
| | 81767 | .unused, |
| | 81768 | .unused, |
| | 81769 | .unused, |
| | 81770 | }, |
| | 81771 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 81772 | .clobbers = .{ .eflags = true }, |
| | 81773 | .each = .{ .once = &.{ |
| | 81774 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 81775 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 81776 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| | 81777 | .{ .@"0:", ._, .mov, .tmp2d, .sa(.src0p, .add_elem_limbs), ._, ._ }, |
| | 81778 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 81779 | .{ .@"1:", ._, .mov, .tmp4p, .memi(.src0p, .tmp0), ._, ._ }, |
| | 81780 | .{ ._, ._, .xor, .tmp4p, .memi(.src1p, .tmp0), ._, ._ }, |
| | 81781 | .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ }, |
| | 81782 | .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ }, |
| | 81783 | .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ }, |
| | 81784 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, |
| | 81785 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81786 | .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ }, |
| | 81787 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| | 81788 | .{ ._, ._l, .sh, .tmp2q, .tmp1b, ._, ._ }, |
| | 81789 | .{ ._, ._, .@"or", .dst0q, .tmp2q, ._, ._ }, |
| | 81790 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| | 81791 | .{ ._, ._, .cmp, .tmp1b, .sa(.dst0, .add_len), ._, ._ }, |
| | 81792 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 81793 | } }, |
| | 81794 | }, .{ |
| | 81795 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| | 81796 | .patterns = &.{ |
| | 81797 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81798 | }, |
| | 81799 | .extra_temps = .{ |
| | 81800 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81801 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 81802 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81803 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81804 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 81805 | .unused, |
| | 81806 | .unused, |
| | 81807 | .unused, |
| | 81808 | .unused, |
| | 81809 | .unused, |
| | 81810 | .unused, |
| | 81811 | }, |
| | 81812 | .dst_temps = .{ .mem, .unused }, |
| | 81813 | .clobbers = .{ .eflags = true }, |
| | 81814 | .each = .{ .once = &.{ |
| | 81815 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81816 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 81817 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81818 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 81819 | .{ ._, ._, .mov, .tmp4b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, |
| | 81820 | .{ ._, ._, .cmp, .tmp4b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, |
| | 81821 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 81822 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, |
| | 81823 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, |
| | 81824 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, |
| | 81825 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81826 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 81827 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 81828 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 81829 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, |
| | 81830 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81831 | .{ .@"1:", ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 81832 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81833 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81834 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 81835 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 81836 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, |
| | 81837 | } }, |
| | 81838 | }, .{ |
| | 81839 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| | 81840 | .patterns = &.{ |
| | 81841 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81842 | }, |
| | 81843 | .extra_temps = .{ |
| | 81844 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81845 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 81846 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81847 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81848 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 81849 | .unused, |
| | 81850 | .unused, |
| | 81851 | .unused, |
| | 81852 | .unused, |
| | 81853 | .unused, |
| | 81854 | .unused, |
| | 81855 | }, |
| | 81856 | .dst_temps = .{ .mem, .unused }, |
| | 81857 | .clobbers = .{ .eflags = true }, |
| | 81858 | .each = .{ .once = &.{ |
| | 81859 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81860 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 81861 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81862 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 81863 | .{ ._, ._, .mov, .tmp4w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| | 81864 | .{ ._, ._, .cmp, .tmp4w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, |
| | 81865 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 81866 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, |
| | 81867 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, |
| | 81868 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, |
| | 81869 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81870 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 81871 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 81872 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 81873 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, |
| | 81874 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81875 | .{ .@"1:", ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 81876 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81877 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81878 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 81879 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 81880 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, |
| | 81881 | } }, |
| | 81882 | }, .{ |
| | 81883 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| | 81884 | .patterns = &.{ |
| | 81885 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81886 | }, |
| | 81887 | .extra_temps = .{ |
| | 81888 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81889 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 81890 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81891 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81892 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 81893 | .unused, |
| | 81894 | .unused, |
| | 81895 | .unused, |
| | 81896 | .unused, |
| | 81897 | .unused, |
| | 81898 | .unused, |
| | 81899 | }, |
| | 81900 | .dst_temps = .{ .mem, .unused }, |
| | 81901 | .clobbers = .{ .eflags = true }, |
| | 81902 | .each = .{ .once = &.{ |
| | 81903 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81904 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 81905 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81906 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 81907 | .{ ._, ._, .mov, .tmp4d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| | 81908 | .{ ._, ._, .cmp, .tmp4d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, |
| | 81909 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 81910 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, |
| | 81911 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, |
| | 81912 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, |
| | 81913 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81914 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 81915 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 81916 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 81917 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, |
| | 81918 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81919 | .{ .@"1:", ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 81920 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81921 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81922 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 81923 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 81924 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, |
| | 81925 | } }, |
| | 81926 | }, .{ |
| | 81927 | .required_features = .{ .@"64bit", null, null, null }, |
| | 81928 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| | 81929 | .patterns = &.{ |
| | 81930 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 81931 | }, |
| | 81932 | .extra_temps = .{ |
| | 81933 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 81934 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 81935 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81936 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 81937 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 81938 | .unused, |
| | 81939 | .unused, |
| | 81940 | .unused, |
| | 81941 | .unused, |
| | 81942 | .unused, |
| | 81943 | .unused, |
| | 81944 | }, |
| | 81945 | .dst_temps = .{ .mem, .unused }, |
| | 81946 | .clobbers = .{ .eflags = true }, |
| | 81947 | .each = .{ .once = &.{ |
| | 81948 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 81949 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 81950 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81951 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 81952 | .{ ._, ._, .mov, .tmp4q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| | 81953 | .{ ._, ._, .cmp, .tmp4q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| | 81954 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 81955 | .{ ._, ._l, .sh, .tmp3p, .tmp1b, ._, ._ }, |
| | 81956 | .{ ._, ._, .@"or", .tmp2p, .tmp3p, ._, ._ }, |
| | 81957 | .{ ._, ._, .add, .tmp1d, .si(1), ._, ._ }, |
| | 81958 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81959 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 81960 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 81961 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 81962 | .{ ._, ._, .mov, .memia(.dst0p, .tmp3, .sub_ptr_size), .tmp2p, ._, ._ }, |
| | 81963 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 81964 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 81965 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 81966 | .{ ._, ._, .@"test", .tmp1d, .sia(-1, .none, .add_ptr_bit_size), ._, ._ }, |
| | 81967 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 81968 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 81969 | .{ ._, ._, .mov, .memsi(.dst0p, .@"8", .tmp1), .tmp2p, ._, ._ }, |
| | 81970 | } }, |
| | 81971 | }, .{ |
| 83424 | .required_features = .{ .f16c, null, null, null }, | 81972 | .required_features = .{ .f16c, null, null, null }, |
| 83425 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, | 81973 | .src_constraints = .{ |
| | 81974 | .{ .scalar_float = .{ .of = .word, .is = .word } }, |
| | 81975 | .{ .scalar_float = .{ .of = .word, .is = .word } }, |
| | 81976 | .any, |
| | 81977 | }, |
| | 81978 | .patterns = &.{ |
| | 81979 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 81980 | }, |
| | 81981 | .extra_temps = .{ |
| | 81982 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| | 81983 | .unused, |
| | 81984 | .unused, |
| | 81985 | .unused, |
| | 81986 | .unused, |
| | 81987 | .unused, |
| | 81988 | .unused, |
| | 81989 | .unused, |
| | 81990 | .unused, |
| | 81991 | .unused, |
| | 81992 | .unused, |
| | 81993 | }, |
| | 81994 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 81995 | .ref = .src0, |
| | 81996 | .rc = .sse, |
| | 81997 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 81998 | } }, .unused }, |
| | 81999 | .each = .{ .once = &.{ |
| | 82000 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 82001 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, |
| | 82002 | .{ ._, .v_ss, .cmp, .dst0x, .dst0x, .tmp0d, .vp(switch (cc) { |
| | 82003 | else => unreachable, |
| | 82004 | .e => .eq, |
| | 82005 | .ne => .neq, |
| | 82006 | }) }, |
| | 82007 | } }, |
| | 82008 | }, .{ |
| | 82009 | .required_features = .{ .f16c, null, null, null }, |
| | 82010 | .src_constraints = .{ |
| | 82011 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, |
| | 82012 | .{ .scalar_float = .{ .of = .qword, .is = .word } }, |
| | 82013 | .any, |
| | 82014 | }, |
| | 82015 | .patterns = &.{ |
| | 82016 | .{ .src = .{ .mem, .mem, .none } }, |
| | 82017 | .{ .src = .{ .sse, .mem, .none } }, |
| | 82018 | .{ .src = .{ .mem, .sse, .none } }, |
| | 82019 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82020 | }, |
| | 82021 | .extra_temps = .{ |
| | 82022 | .{ .kind = .{ .rc = .sse } }, |
| | 82023 | .unused, |
| | 82024 | .unused, |
| | 82025 | .unused, |
| | 82026 | .unused, |
| | 82027 | .unused, |
| | 82028 | .unused, |
| | 82029 | .unused, |
| | 82030 | .unused, |
| | 82031 | .unused, |
| | 82032 | .unused, |
| | 82033 | }, |
| | 82034 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82035 | .ref = .src0, |
| | 82036 | .rc = .sse, |
| | 82037 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 82038 | } }, .unused }, |
| | 82039 | .each = .{ .once = &.{ |
| | 82040 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| | 82041 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, |
| | 82042 | .{ ._, .v_ps, .cmp, .dst0x, .dst0x, .tmp0x, .vp(switch (cc) { |
| | 82043 | else => unreachable, |
| | 82044 | .e => .eq, |
| | 82045 | .ne => .neq, |
| | 82046 | }) }, |
| | 82047 | } }, |
| | 82048 | }, .{ |
| | 82049 | .required_features = .{ .f16c, null, null, null }, |
| | 82050 | .src_constraints = .{ |
| | 82051 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, |
| | 82052 | .{ .scalar_float = .{ .of = .xword, .is = .word } }, |
| | 82053 | .any, |
| | 82054 | }, |
| | 82055 | .patterns = &.{ |
| | 82056 | .{ .src = .{ .mem, .mem, .none } }, |
| | 82057 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 82058 | .{ .src = .{ .mem, .to_sse, .none } }, |
| | 82059 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82060 | }, |
| | 82061 | .extra_temps = .{ |
| | 82062 | .{ .kind = .{ .rc = .sse } }, |
| | 82063 | .unused, |
| | 82064 | .unused, |
| | 82065 | .unused, |
| | 82066 | .unused, |
| | 82067 | .unused, |
| | 82068 | .unused, |
| | 82069 | .unused, |
| | 82070 | .unused, |
| | 82071 | .unused, |
| | 82072 | .unused, |
| | 82073 | }, |
| | 82074 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82075 | .ref = .src0, |
| | 82076 | .rc = .sse, |
| | 82077 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 82078 | } }, .unused }, |
| | 82079 | .each = .{ .once = &.{ |
| | 82080 | .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, |
| | 82081 | .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, |
| | 82082 | .{ ._, .v_ps, .cmp, .dst0y, .dst0y, .tmp0y, .vp(switch (cc) { |
| | 82083 | else => unreachable, |
| | 82084 | .e => .eq, |
| | 82085 | .ne => .neq, |
| | 82086 | }) }, |
| | 82087 | } }, |
| | 82088 | }, .{ |
| | 82089 | .required_features = .{ .avx, null, null, null }, |
| | 82090 | .src_constraints = .{ |
| | 82091 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 82092 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 82093 | .any, |
| | 82094 | }, |
| | 82095 | .patterns = &.{ |
| | 82096 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 82097 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82098 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82099 | }, |
| | 82100 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82101 | .ref = .src0, |
| | 82102 | .rc = .sse, |
| | 82103 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 82104 | } }, .unused }, |
| | 82105 | .each = .{ .once = &.{ |
| | 82106 | .{ ._, .v_ss, .cmp, .dst0x, .src0x, .src1d, .vp(switch (cc) { |
| | 82107 | else => unreachable, |
| | 82108 | .e => .eq, |
| | 82109 | .ne => .neq, |
| | 82110 | }) }, |
| | 82111 | } }, |
| | 82112 | }, .{ |
| | 82113 | .required_features = .{ .sse, null, null, null }, |
| | 82114 | .src_constraints = .{ |
| | 82115 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 82116 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| | 82117 | .any, |
| | 82118 | }, |
| | 82119 | .patterns = &.{ |
| | 82120 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 82121 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82122 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 82123 | }, |
| | 82124 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 82125 | .ref = .src0, |
| | 82126 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 82127 | } }, .unused }, |
| | 82128 | .each = .{ .once = &.{ |
| | 82129 | .{ ._, ._ss, .cmp, .dst0x, .src1d, .sp(switch (cc) { |
| | 82130 | else => unreachable, |
| | 82131 | .e => .eq, |
| | 82132 | .ne => .neq, |
| | 82133 | }), ._ }, |
| | 82134 | } }, |
| | 82135 | }, .{ |
| | 82136 | .required_features = .{ .avx, null, null, null }, |
| | 82137 | .src_constraints = .{ |
| | 82138 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 82139 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 82140 | .any, |
| | 82141 | }, |
| | 82142 | .patterns = &.{ |
| | 82143 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 82144 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82145 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82146 | }, |
| | 82147 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82148 | .ref = .src0, |
| | 82149 | .rc = .sse, |
| | 82150 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 82151 | } }, .unused }, |
| | 82152 | .each = .{ .once = &.{ |
| | 82153 | .{ ._, .v_ps, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { |
| | 82154 | else => unreachable, |
| | 82155 | .e => .eq, |
| | 82156 | .ne => .neq, |
| | 82157 | }) }, |
| | 82158 | } }, |
| | 82159 | }, .{ |
| | 82160 | .required_features = .{ .sse, null, null, null }, |
| | 82161 | .src_constraints = .{ |
| | 82162 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 82163 | .{ .scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 82164 | .any, |
| | 82165 | }, |
| | 82166 | .patterns = &.{ |
| | 82167 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 82168 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82169 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 82170 | }, |
| | 82171 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 82172 | .ref = .src0, |
| | 82173 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 82174 | } }, .unused }, |
| | 82175 | .each = .{ .once = &.{ |
| | 82176 | .{ ._, ._ps, .cmp, .dst0x, .src1x, .sp(switch (cc) { |
| | 82177 | else => unreachable, |
| | 82178 | .e => .eq, |
| | 82179 | .ne => .neq, |
| | 82180 | }), ._ }, |
| | 82181 | } }, |
| | 82182 | }, .{ |
| | 82183 | .required_features = .{ .avx, null, null, null }, |
| | 82184 | .src_constraints = .{ |
| | 82185 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 82186 | .{ .scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 82187 | .any, |
| | 82188 | }, |
| | 82189 | .patterns = &.{ |
| | 82190 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 82191 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82192 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82193 | }, |
| | 82194 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82195 | .ref = .src0, |
| | 82196 | .rc = .sse, |
| | 82197 | .info = .{ .kind = .all, .scalar = .dword }, |
| | 82198 | } }, .unused }, |
| | 82199 | .each = .{ .once = &.{ |
| | 82200 | .{ ._, .v_ps, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { |
| | 82201 | else => unreachable, |
| | 82202 | .e => .eq, |
| | 82203 | .ne => .neq, |
| | 82204 | }) }, |
| | 82205 | } }, |
| | 82206 | }, .{ |
| | 82207 | .required_features = .{ .avx, null, null, null }, |
| | 82208 | .src_constraints = .{ |
| | 82209 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 82210 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 82211 | .any, |
| | 82212 | }, |
| | 82213 | .patterns = &.{ |
| | 82214 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 82215 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82216 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82217 | }, |
| | 82218 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82219 | .ref = .src0, |
| | 82220 | .rc = .sse, |
| | 82221 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 82222 | } }, .unused }, |
| | 82223 | .each = .{ .once = &.{ |
| | 82224 | .{ ._, .v_sd, .cmp, .dst0x, .src0x, .src1q, .vp(switch (cc) { |
| | 82225 | else => unreachable, |
| | 82226 | .e => .eq, |
| | 82227 | .ne => .neq, |
| | 82228 | }) }, |
| | 82229 | } }, |
| | 82230 | }, .{ |
| | 82231 | .required_features = .{ .sse2, null, null, null }, |
| | 82232 | .src_constraints = .{ |
| | 82233 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 82234 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 82235 | .any, |
| | 82236 | }, |
| | 82237 | .patterns = &.{ |
| | 82238 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 82239 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82240 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 82241 | }, |
| | 82242 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 82243 | .ref = .src0, |
| | 82244 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 82245 | } }, .unused }, |
| | 82246 | .each = .{ .once = &.{ |
| | 82247 | .{ ._, ._sd, .cmp, .dst0x, .src1q, .sp(switch (cc) { |
| | 82248 | else => unreachable, |
| | 82249 | .e => .eq, |
| | 82250 | .ne => .neq, |
| | 82251 | }), ._ }, |
| | 82252 | } }, |
| | 82253 | }, .{ |
| | 82254 | .required_features = .{ .avx, null, null, null }, |
| | 82255 | .src_constraints = .{ |
| | 82256 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 82257 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 82258 | .any, |
| | 82259 | }, |
| | 82260 | .patterns = &.{ |
| | 82261 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 82262 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82263 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82264 | }, |
| | 82265 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82266 | .ref = .src0, |
| | 82267 | .rc = .sse, |
| | 82268 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 82269 | } }, .unused }, |
| | 82270 | .each = .{ .once = &.{ |
| | 82271 | .{ ._, .v_pd, .cmp, .dst0x, .src0x, .src1x, .vp(switch (cc) { |
| | 82272 | else => unreachable, |
| | 82273 | .e => .eq, |
| | 82274 | .ne => .neq, |
| | 82275 | }) }, |
| | 82276 | } }, |
| | 82277 | }, .{ |
| | 82278 | .required_features = .{ .sse2, null, null, null }, |
| | 82279 | .src_constraints = .{ |
| | 82280 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 82281 | .{ .scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 82282 | .any, |
| | 82283 | }, |
| | 82284 | .patterns = &.{ |
| | 82285 | .{ .src = .{ .to_mut_sse, .mem, .none } }, |
| | 82286 | .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82287 | .{ .src = .{ .to_mut_sse, .to_sse, .none } }, |
| | 82288 | }, |
| | 82289 | .dst_temps = .{ .{ .ref_mask = .{ |
| | 82290 | .ref = .src0, |
| | 82291 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 82292 | } }, .unused }, |
| | 82293 | .each = .{ .once = &.{ |
| | 82294 | .{ ._, ._pd, .cmp, .dst0x, .src1x, .sp(switch (cc) { |
| | 82295 | else => unreachable, |
| | 82296 | .e => .eq, |
| | 82297 | .ne => .neq, |
| | 82298 | }), ._ }, |
| | 82299 | } }, |
| | 82300 | }, .{ |
| | 82301 | .required_features = .{ .avx, null, null, null }, |
| | 82302 | .src_constraints = .{ |
| | 82303 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 82304 | .{ .scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 82305 | .any, |
| | 82306 | }, |
| | 82307 | .patterns = &.{ |
| | 82308 | .{ .src = .{ .to_sse, .mem, .none } }, |
| | 82309 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| | 82310 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| | 82311 | }, |
| | 82312 | .dst_temps = .{ .{ .mut_rc_mask = .{ |
| | 82313 | .ref = .src0, |
| | 82314 | .rc = .sse, |
| | 82315 | .info = .{ .kind = .all, .scalar = .qword }, |
| | 82316 | } }, .unused }, |
| | 82317 | .each = .{ .once = &.{ |
| | 82318 | .{ ._, .v_pd, .cmp, .dst0y, .src0y, .src1y, .vp(switch (cc) { |
| | 82319 | else => unreachable, |
| | 82320 | .e => .eq, |
| | 82321 | .ne => .neq, |
| | 82322 | }) }, |
| | 82323 | } }, |
| | 82324 | }, .{ |
| | 82325 | .required_features = .{ .f16c, .slow_incdec, null, null }, |
| | 82326 | .src_constraints = .{ |
| | 82327 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 82328 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 82329 | .any, |
| | 82330 | }, |
| | 82331 | .patterns = &.{ |
| | 82332 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82333 | }, |
| | 82334 | .extra_temps = .{ |
| | 82335 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 82336 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 82337 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 82338 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 82339 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 82340 | .unused, |
| | 82341 | .unused, |
| | 82342 | .unused, |
| | 82343 | .unused, |
| | 82344 | .unused, |
| | 82345 | .unused, |
| | 82346 | }, |
| | 82347 | .dst_temps = .{ .mem, .unused }, |
| | 82348 | .clobbers = .{ .eflags = true }, |
| | 82349 | .each = .{ .once = &.{ |
| | 82350 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 82351 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 82352 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 82353 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 82354 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { |
| | 82355 | else => unreachable, |
| | 82356 | .e => .eq, |
| | 82357 | .ne => .neq, |
| | 82358 | }) }, |
| | 82359 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 82360 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 82361 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 82362 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 82363 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 82364 | } }, |
| | 82365 | }, .{ |
| | 82366 | .required_features = .{ .f16c, null, null, null }, |
| | 82367 | .src_constraints = .{ |
| | 82368 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 82369 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, |
| | 82370 | .any, |
| | 82371 | }, |
| | 82372 | .patterns = &.{ |
| | 82373 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82374 | }, |
| | 82375 | .extra_temps = .{ |
| | 82376 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 82377 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 82378 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 82379 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 82380 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 82381 | .unused, |
| | 82382 | .unused, |
| | 82383 | .unused, |
| | 82384 | .unused, |
| | 82385 | .unused, |
| | 82386 | .unused, |
| | 82387 | }, |
| | 82388 | .dst_temps = .{ .mem, .unused }, |
| | 82389 | .clobbers = .{ .eflags = true }, |
| | 82390 | .each = .{ .once = &.{ |
| | 82391 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 82392 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 82393 | .{ .@"0:", .v_ps, .cvtph2, .tmp2y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 82394 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 82395 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .tmp3y, .vp(switch (cc) { |
| | 82396 | else => unreachable, |
| | 82397 | .e => .eq, |
| | 82398 | .ne => .neq, |
| | 82399 | }) }, |
| | 82400 | .{ ._, .v_ps, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 82401 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 82402 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| | 82403 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 82404 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 82405 | } }, |
| | 82406 | }, .{ |
| | 82407 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 82408 | .src_constraints = .{ |
| | 82409 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82410 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82411 | .any, |
| | 82412 | }, |
| | 82413 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 82414 | .patterns = &.{ |
| | 82415 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82416 | }, |
| | 82417 | .call_frame = .{ .alignment = .@"16" }, |
| | 82418 | .extra_temps = .{ |
| | 82419 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82420 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82421 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82422 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82423 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82424 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82425 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 82426 | .unused, |
| | 82427 | .unused, |
| | 82428 | .unused, |
| | 82429 | .unused, |
| | 82430 | }, |
| | 82431 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 82432 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82433 | .each = .{ .once = &.{ |
| | 82434 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 82435 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82436 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, |
| | 82437 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 82438 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 82439 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 82440 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 82441 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 82442 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 82443 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82444 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 82445 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 82446 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, |
| | 82447 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82448 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82449 | } }, |
| | 82450 | }, .{ |
| | 82451 | .required_features = .{ .avx, null, null, null }, |
| | 82452 | .src_constraints = .{ |
| | 82453 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82454 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82455 | .any, |
| | 82456 | }, |
| | 82457 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 82458 | .patterns = &.{ |
| | 82459 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82460 | }, |
| | 82461 | .call_frame = .{ .alignment = .@"16" }, |
| | 82462 | .extra_temps = .{ |
| | 82463 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82464 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82465 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82466 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82467 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82468 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82469 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 82470 | .unused, |
| | 82471 | .unused, |
| | 82472 | .unused, |
| | 82473 | .unused, |
| | 82474 | }, |
| | 82475 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 82476 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82477 | .each = .{ .once = &.{ |
| | 82478 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 82479 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82480 | .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, |
| | 82481 | .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 82482 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 82483 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 82484 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 82485 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 82486 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 82487 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82488 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 82489 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 82490 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 82491 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82492 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82493 | } }, |
| | 82494 | }, .{ |
| | 82495 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 82496 | .src_constraints = .{ |
| | 82497 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82498 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82499 | .any, |
| | 82500 | }, |
| | 82501 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 82502 | .patterns = &.{ |
| | 82503 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82504 | }, |
| | 82505 | .call_frame = .{ .alignment = .@"16" }, |
| | 82506 | .extra_temps = .{ |
| | 82507 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82508 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82509 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82510 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82511 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82512 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82513 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 82514 | .unused, |
| | 82515 | .unused, |
| | 82516 | .unused, |
| | 82517 | .unused, |
| | 82518 | }, |
| | 82519 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 82520 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82521 | .each = .{ .once = &.{ |
| | 82522 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 82523 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82524 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 82525 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 82526 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82527 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82528 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 82529 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 82530 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 82531 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 82532 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82533 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 82534 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 82535 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, |
| | 82536 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82537 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82538 | } }, |
| | 82539 | }, .{ |
| | 82540 | .required_features = .{ .sse2, null, null, null }, |
| | 82541 | .src_constraints = .{ |
| | 82542 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82543 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82544 | .any, |
| | 82545 | }, |
| | 82546 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 82547 | .patterns = &.{ |
| | 82548 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82549 | }, |
| | 82550 | .call_frame = .{ .alignment = .@"16" }, |
| | 82551 | .extra_temps = .{ |
| | 82552 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82553 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82554 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82555 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82556 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82557 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82558 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 82559 | .unused, |
| | 82560 | .unused, |
| | 82561 | .unused, |
| | 82562 | .unused, |
| | 82563 | }, |
| | 82564 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 82565 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82566 | .each = .{ .once = &.{ |
| | 82567 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 82568 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82569 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 82570 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 82571 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82572 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82573 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 82574 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 82575 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 82576 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 82577 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82578 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 82579 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 82580 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 82581 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82582 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82583 | } }, |
| | 82584 | }, .{ |
| | 82585 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| | 82586 | .src_constraints = .{ |
| | 82587 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82588 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82589 | .any, |
| | 82590 | }, |
| | 82591 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 82592 | .patterns = &.{ |
| | 82593 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82594 | }, |
| | 82595 | .call_frame = .{ .alignment = .@"16" }, |
| | 82596 | .extra_temps = .{ |
| | 82597 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82598 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82599 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82600 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82601 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82602 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82603 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 82604 | .{ .type = .f32, .kind = .mem }, |
| | 82605 | .unused, |
| | 82606 | .unused, |
| | 82607 | .unused, |
| | 82608 | }, |
| | 82609 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 82610 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82611 | .each = .{ .once = &.{ |
| | 82612 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 82613 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82614 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 82615 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 82616 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, |
| | 82617 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 82618 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 82619 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, |
| | 82620 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 82621 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 82622 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 82623 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 82624 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82625 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 82626 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 82627 | .{ ._, ._, .add, .tmp0d, .si(1), ._, ._ }, |
| | 82628 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82629 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82630 | } }, |
| | 82631 | }, .{ |
| | 82632 | .required_features = .{ .sse, null, null, null }, |
| | 82633 | .src_constraints = .{ |
| | 82634 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82635 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82636 | .any, |
| | 82637 | }, |
| | 82638 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 82639 | .patterns = &.{ |
| | 82640 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82641 | }, |
| | 82642 | .call_frame = .{ .alignment = .@"16" }, |
| | 82643 | .extra_temps = .{ |
| | 82644 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82645 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82646 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82647 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82648 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82649 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82650 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 82651 | .{ .type = .f32, .kind = .mem }, |
| | 82652 | .unused, |
| | 82653 | .unused, |
| | 82654 | .unused, |
| | 82655 | }, |
| | 82656 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 82657 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82658 | .each = .{ .once = &.{ |
| | 82659 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 82660 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82661 | .{ .@"0:", ._, .movzx, .tmp4d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 82662 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 82663 | .{ ._, ._ss, .mov, .tmp1x, .mem(.tmp7d), ._, ._ }, |
| | 82664 | .{ ._, ._, .movzx, .tmp4d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 82665 | .{ ._, ._, .mov, .mem(.tmp7d), .tmp4d, ._, ._ }, |
| | 82666 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp7d), ._, ._ }, |
| | 82667 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 82668 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 82669 | .{ ._, ._, .@"test", .tmp4d, .tmp4d, ._, ._ }, |
| | 82670 | .{ ._, .fromCond(cc), .set, .tmp6b, ._, ._, ._ }, |
| | 82671 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82672 | .{ ._, ._l, .sh, .tmp6d, .tmp5b, ._, ._ }, |
| | 82673 | .{ ._, ._, .@"or", .dst0d, .tmp6d, ._, ._ }, |
| | 82674 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 82675 | .{ ._, ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82676 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82677 | } }, |
| | 82678 | }, .{ |
| | 82679 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, |
| | 82680 | .src_constraints = .{ |
| | 82681 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82682 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82683 | .any, |
| | 82684 | }, |
| | 82685 | .patterns = &.{ |
| | 82686 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82687 | }, |
| | 82688 | .call_frame = .{ .alignment = .@"16" }, |
| | 82689 | .extra_temps = .{ |
| | 82690 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82691 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 82692 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82693 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82694 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82695 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82696 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82697 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 82698 | .unused, |
| | 82699 | .unused, |
| | 82700 | .unused, |
| | 82701 | }, |
| | 82702 | .dst_temps = .{ .mem, .unused }, |
| | 82703 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82704 | .each = .{ .once = &.{ |
| | 82705 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82706 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82707 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| | 82708 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 82709 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 82710 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 82711 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 82712 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 82713 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 82714 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 82715 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 82716 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 82717 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| | 82718 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82719 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 82720 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82721 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 82722 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 82723 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82724 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82725 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82726 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82727 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 82728 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 82729 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 82730 | } }, |
| | 82731 | }, .{ |
| | 82732 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 82733 | .src_constraints = .{ |
| | 82734 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82735 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82736 | .any, |
| | 82737 | }, |
| | 82738 | .patterns = &.{ |
| | 82739 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82740 | }, |
| | 82741 | .call_frame = .{ .alignment = .@"16" }, |
| | 82742 | .extra_temps = .{ |
| | 82743 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82744 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 82745 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82746 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82747 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82748 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82749 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82750 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 82751 | .unused, |
| | 82752 | .unused, |
| | 82753 | .unused, |
| | 82754 | }, |
| | 82755 | .dst_temps = .{ .mem, .unused }, |
| | 82756 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82757 | .each = .{ .once = &.{ |
| | 82758 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82759 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82760 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| | 82761 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| | 82762 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0) }, |
| | 82763 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 82764 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 82765 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 82766 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 82767 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 82768 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 82769 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 82770 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 82771 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82772 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 82773 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82774 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 82775 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 82776 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82777 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82778 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82779 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82780 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 82781 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 82782 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 82783 | } }, |
| | 82784 | }, .{ |
| | 82785 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, |
| | 82786 | .src_constraints = .{ |
| | 82787 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82788 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82789 | .any, |
| | 82790 | }, |
| | 82791 | .patterns = &.{ |
| | 82792 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82793 | }, |
| | 82794 | .call_frame = .{ .alignment = .@"16" }, |
| | 82795 | .extra_temps = .{ |
| | 82796 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82797 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 82798 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82799 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82800 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82801 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82802 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82803 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 82804 | .unused, |
| | 82805 | .unused, |
| | 82806 | .unused, |
| | 82807 | }, |
| | 82808 | .dst_temps = .{ .mem, .unused }, |
| | 82809 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82810 | .each = .{ .once = &.{ |
| | 82811 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82812 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82813 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 82814 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82815 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| | 82816 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82817 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 82818 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 82819 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 82820 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 82821 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 82822 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 82823 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 82824 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| | 82825 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82826 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 82827 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82828 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 82829 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 82830 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82831 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82832 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82833 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82834 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 82835 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 82836 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 82837 | } }, |
| | 82838 | }, .{ |
| | 82839 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| | 82840 | .src_constraints = .{ |
| | 82841 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82842 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82843 | .any, |
| | 82844 | }, |
| | 82845 | .patterns = &.{ |
| | 82846 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82847 | }, |
| | 82848 | .call_frame = .{ .alignment = .@"16" }, |
| | 82849 | .extra_temps = .{ |
| | 82850 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82851 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 82852 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82853 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82854 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82855 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82856 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82857 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 82858 | .unused, |
| | 82859 | .unused, |
| | 82860 | .unused, |
| | 82861 | }, |
| | 82862 | .dst_temps = .{ .mem, .unused }, |
| | 82863 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82864 | .each = .{ .once = &.{ |
| | 82865 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82866 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82867 | .{ .@"0:", .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| | 82868 | .{ ._, .p_w, .insr, .tmp2x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82869 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| | 82870 | .{ ._, .p_w, .insr, .tmp3x, .memsi(.src1w, .@"2", .tmp0), .ui(0), ._ }, |
| | 82871 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 82872 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 82873 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 82874 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 82875 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 82876 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 82877 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 82878 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 82879 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82880 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 82881 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82882 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 82883 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 82884 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82885 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82886 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82887 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82888 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 82889 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 82890 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 82891 | } }, |
| | 82892 | }, .{ |
| | 82893 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, |
| | 82894 | .src_constraints = .{ |
| | 82895 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82896 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82897 | .any, |
| | 82898 | }, |
| | 82899 | .patterns = &.{ |
| | 82900 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 82901 | }, |
| | 82902 | .call_frame = .{ .alignment = .@"16" }, |
| | 82903 | .extra_temps = .{ |
| | 82904 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 82905 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 82906 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82907 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82908 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82909 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82910 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82911 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 82912 | .{ .type = .f32, .kind = .mem }, |
| | 82913 | .unused, |
| | 82914 | .unused, |
| | 82915 | }, |
| | 82916 | .dst_temps = .{ .mem, .unused }, |
| | 82917 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82918 | .each = .{ .once = &.{ |
| | 82919 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82920 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82921 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 82922 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 82923 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, |
| | 82924 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 82925 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 82926 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, |
| | 82927 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 82928 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 82929 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 82930 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 82931 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 82932 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 82933 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 82934 | .{ ._, ._, .lea, .tmp0d, .lead(.tmp0, 1), ._, ._ }, |
| | 82935 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82936 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 82937 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82938 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 82939 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 82940 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82941 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82942 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82943 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82944 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 82945 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 82946 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 82947 | } }, |
| | 82948 | }, .{ |
| | 82949 | .required_features = .{ .@"64bit", .sse, null, null }, |
| | 82950 | .src_constraints = .{ |
| | 82951 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82952 | .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, |
| | 82953 | .any, |
| | 82954 | }, |
| 83426 | .patterns = &.{ | 82955 | .patterns = &.{ |
| 83427 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, | 82956 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83428 | }, | 82957 | }, |
| | 82958 | .call_frame = .{ .alignment = .@"16" }, |
| 83429 | .extra_temps = .{ | 82959 | .extra_temps = .{ |
| 83430 | .{ .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 82960 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83431 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, | 82961 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 82962 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 82963 | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| | 82964 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| | 82965 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 82966 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 82967 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 82968 | .{ .type = .f32, .kind = .mem }, |
| 83432 | .unused, | 82969 | .unused, |
| 83433 | .unused, | 82970 | .unused, |
| | 82971 | }, |
| | 82972 | .dst_temps = .{ .mem, .unused }, |
| | 82973 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 82974 | .each = .{ .once = &.{ |
| | 82975 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 82976 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82977 | .{ .@"0:", ._, .movzx, .tmp5d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| | 82978 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 82979 | .{ ._, ._ss, .mov, .tmp2x, .mem(.tmp8d), ._, ._ }, |
| | 82980 | .{ ._, ._, .movzx, .tmp5d, .memsi(.src1w, .@"2", .tmp0), ._, ._ }, |
| | 82981 | .{ ._, ._, .mov, .mem(.tmp8d), .tmp5d, ._, ._ }, |
| | 82982 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp8d), ._, ._ }, |
| | 82983 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 82984 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 82985 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 82986 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 82987 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 82988 | .{ ._, ._l, .sh, .tmp7q, .tmp6b, ._, ._ }, |
| | 82989 | .{ ._, ._, .@"or", .tmp1q, .tmp7q, ._, ._ }, |
| | 82990 | .{ ._, ._c, .in, .tmp0d, ._, ._, ._ }, |
| | 82991 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 82992 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 82993 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 82994 | .{ ._, ._r, .sh, .tmp5d, .ui(3), ._, ._ }, |
| | 82995 | .{ ._, ._, .mov, .memid(.dst0q, .tmp5, -8), .tmp1q, ._, ._ }, |
| | 82996 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 82997 | .{ .@"1:", ._, .cmp, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 82998 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| | 82999 | .{ ._, ._, .@"test", .tmp0d, .si(0b111111), ._, ._ }, |
| | 83000 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83001 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 83002 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q, ._, ._ }, |
| | 83003 | } }, |
| | 83004 | }, .{ |
| | 83005 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 83006 | .src_constraints = .{ |
| | 83007 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83008 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83009 | .any, |
| | 83010 | }, |
| | 83011 | .patterns = &.{ |
| | 83012 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83013 | }, |
| | 83014 | .extra_temps = .{ |
| | 83015 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83016 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 83017 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 83018 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83434 | .unused, | 83019 | .unused, |
| 83435 | .unused, | 83020 | .unused, |
| 83436 | .unused, | 83021 | .unused, |
| ... | @@ -83439,142 +83024,552 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -83439,142 +83024,552 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83439 | .unused, | 83024 | .unused, |
| 83440 | .unused, | 83025 | .unused, |
| 83441 | }, | 83026 | }, |
| 83442 | .dst_temps = .{ .{ .cc = switch (strict) { | 83027 | .dst_temps = .{ .mem, .unused }, |
| 83443 | true => .a, | | |
| 83444 | false => .ae, | | |
| 83445 | } }, .unused }, | | |
| 83446 | .clobbers = .{ .eflags = true }, | 83028 | .clobbers = .{ .eflags = true }, |
| 83447 | .each = .{ .once = &.{ | 83029 | .each = .{ .once = &.{ |
| 83448 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 83030 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83449 | .{ ._, .v_ps, .cvtph2, .tmp1x, .src1q, ._, ._ }, | 83031 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 83450 | .{ ._, .v_ss, .ucomi, .tmp0x, .tmp1d, ._, ._ }, | 83032 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 83033 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 83034 | else => unreachable, |
| | 83035 | .e => .eq, |
| | 83036 | .ne => .neq, |
| | 83037 | }) }, |
| | 83038 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, |
| | 83039 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 83040 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 83041 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 83042 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83451 | } }, | 83043 | } }, |
| 83452 | }, .{ | 83044 | }, .{ |
| 83453 | .required_features = .{ .sse, null, null, null }, | 83045 | .required_features = .{ .avx, null, null, null }, |
| 83454 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, | 83046 | .src_constraints = .{ |
| | 83047 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83048 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83049 | .any, |
| | 83050 | }, |
| 83455 | .patterns = &.{ | 83051 | .patterns = &.{ |
| 83456 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, | 83052 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83457 | }, | 83053 | }, |
| 83458 | .call_frame = .{ .alignment = .@"16" }, | | |
| 83459 | .extra_temps = .{ | 83054 | .extra_temps = .{ |
| 83460 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | 83055 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83461 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 83056 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 83057 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| | 83058 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83059 | .unused, |
| | 83060 | .unused, |
| 83462 | .unused, | 83061 | .unused, |
| 83463 | .unused, | 83062 | .unused, |
| 83464 | .unused, | 83063 | .unused, |
| 83465 | .unused, | 83064 | .unused, |
| 83466 | .unused, | 83065 | .unused, |
| | 83066 | }, |
| | 83067 | .dst_temps = .{ .mem, .unused }, |
| | 83068 | .clobbers = .{ .eflags = true }, |
| | 83069 | .each = .{ .once = &.{ |
| | 83070 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83071 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 83072 | .{ .@"0:", .v_ps, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 83073 | .{ ._, .v_ps, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 83074 | else => unreachable, |
| | 83075 | .e => .eq, |
| | 83076 | .ne => .neq, |
| | 83077 | }) }, |
| | 83078 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp2y, ._, ._ }, |
| | 83079 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 83080 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, |
| | 83081 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 83082 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83083 | } }, |
| | 83084 | }, .{ |
| | 83085 | .required_features = .{ .sse2, null, null, null }, |
| | 83086 | .src_constraints = .{ |
| | 83087 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83088 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83089 | .any, |
| | 83090 | }, |
| | 83091 | .patterns = &.{ |
| | 83092 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83093 | }, |
| | 83094 | .extra_temps = .{ |
| | 83095 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83096 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 83097 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 83098 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 83099 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83100 | .unused, |
| | 83101 | .unused, |
| 83467 | .unused, | 83102 | .unused, |
| 83468 | .unused, | 83103 | .unused, |
| 83469 | .unused, | 83104 | .unused, |
| 83470 | .unused, | 83105 | .unused, |
| 83471 | }, | 83106 | }, |
| 83472 | .dst_temps = .{ .{ .cc = switch (strict) { | 83107 | .dst_temps = .{ .mem, .unused }, |
| 83473 | true => .l, | 83108 | .clobbers = .{ .eflags = true }, |
| 83474 | false => .le, | | |
| 83475 | } }, .unused }, | | |
| 83476 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 83477 | .each = .{ .once = &.{ | 83109 | .each = .{ .once = &.{ |
| 83478 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 83110 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83479 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, | 83111 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 83112 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83113 | .{ ._, ._ps, .mova, .tmp3x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, |
| | 83114 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 83115 | else => unreachable, |
| | 83116 | .e => .eq, |
| | 83117 | .ne => .neq, |
| | 83118 | }), ._ }, |
| | 83119 | .{ ._, ._ps, .cmp, .tmp3x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { |
| | 83120 | else => unreachable, |
| | 83121 | .e => .eq, |
| | 83122 | .ne => .neq, |
| | 83123 | }), ._ }, |
| | 83124 | .{ ._, .p_w, .ackssd, .tmp2x, .tmp3x, ._, ._ }, |
| | 83125 | .{ ._, .p_b, .ackssw, .tmp2x, .tmp2x, ._, ._ }, |
| | 83126 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| | 83127 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 83128 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 83129 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 83130 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83480 | } }, | 83131 | } }, |
| 83481 | }, .{ | 83132 | }, .{ |
| 83482 | .required_features = .{ .avx, null, null, null }, | 83133 | .required_features = .{ .sse, null, null, null }, |
| 83483 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, | 83134 | .src_constraints = .{ |
| | 83135 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83136 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| | 83137 | .any, |
| | 83138 | }, |
| 83484 | .patterns = &.{ | 83139 | .patterns = &.{ |
| 83485 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | 83140 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83486 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 83487 | }, | 83141 | }, |
| 83488 | .dst_temps = .{ .{ .cc = switch (strict) { | 83142 | .extra_temps = .{ |
| 83489 | true => .a, | 83143 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83490 | false => .ae, | 83144 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83491 | } }, .unused }, | 83145 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 83146 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83147 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83148 | .unused, |
| | 83149 | .unused, |
| | 83150 | .unused, |
| | 83151 | .unused, |
| | 83152 | .unused, |
| | 83153 | .unused, |
| | 83154 | }, |
| | 83155 | .dst_temps = .{ .mem, .unused }, |
| 83492 | .clobbers = .{ .eflags = true }, | 83156 | .clobbers = .{ .eflags = true }, |
| 83493 | .each = .{ .once = &.{ | 83157 | .each = .{ .once = &.{ |
| 83494 | .{ ._, .v_ss, .ucomi, .src0x, .src1d, ._, ._ }, | 83158 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83159 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 83160 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83161 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 83162 | else => unreachable, |
| | 83163 | .e => .eq, |
| | 83164 | .ne => .neq, |
| | 83165 | }), ._ }, |
| | 83166 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, |
| | 83167 | .{ ._, ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, 16), ._, ._ }, |
| | 83168 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, 16), .sp(switch (cc) { |
| | 83169 | else => unreachable, |
| | 83170 | .e => .eq, |
| | 83171 | .ne => .neq, |
| | 83172 | }), ._ }, |
| | 83173 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| | 83174 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, |
| | 83175 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, |
| | 83176 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 83177 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 83178 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 83179 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83495 | } }, | 83180 | } }, |
| 83496 | }, .{ | 83181 | }, .{ |
| 83497 | .required_features = .{ .sse, null, null, null }, | 83182 | .required_features = .{ .sse, null, null, null }, |
| 83498 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, | 83183 | .src_constraints = .{ |
| | 83184 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 83185 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, |
| | 83186 | .any, |
| | 83187 | }, |
| 83499 | .patterns = &.{ | 83188 | .patterns = &.{ |
| 83500 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | 83189 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83501 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 83502 | }, | 83190 | }, |
| 83503 | .dst_temps = .{ .{ .cc = switch (strict) { | 83191 | .extra_temps = .{ |
| 83504 | true => .a, | 83192 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83505 | false => .ae, | 83193 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83506 | } }, .unused }, | 83194 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| | 83195 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83196 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83197 | .unused, |
| | 83198 | .unused, |
| | 83199 | .unused, |
| | 83200 | .unused, |
| | 83201 | .unused, |
| | 83202 | .unused, |
| | 83203 | }, |
| | 83204 | .dst_temps = .{ .mem, .unused }, |
| 83507 | .clobbers = .{ .eflags = true }, | 83205 | .clobbers = .{ .eflags = true }, |
| 83508 | .each = .{ .once = &.{ | 83206 | .each = .{ .once = &.{ |
| 83509 | .{ ._, ._ss, .ucomi, .src0x, .src1d, ._, ._ }, | 83207 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83208 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 83209 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 83210 | .{ .@"0:", ._ps, .mova, .tmp2x, .memiad(.src0x, .tmp0, .add_size, -16), ._, ._ }, |
| | 83211 | .{ ._, ._ps, .cmp, .tmp2x, .memiad(.src1x, .tmp0, .add_size, -16), .sp(switch (cc) { |
| | 83212 | else => unreachable, |
| | 83213 | .e => .eq, |
| | 83214 | .ne => .neq, |
| | 83215 | }), ._ }, |
| | 83216 | .{ ._, ._ps, .movmsk, .tmp4d, .tmp2x, ._, ._ }, |
| | 83217 | .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, |
| | 83218 | .{ ._, ._, .@"or", .tmp3b, .tmp4b, ._, ._ }, |
| | 83219 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 83220 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 83221 | .{ .@"1:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83222 | .{ ._, ._ps, .cmp, .tmp2x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 83223 | else => unreachable, |
| | 83224 | .e => .eq, |
| | 83225 | .ne => .neq, |
| | 83226 | }), ._ }, |
| | 83227 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp2x, ._, ._ }, |
| | 83228 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 83229 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83230 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp3b, ._, ._ }, |
| | 83231 | } }, |
| | 83232 | }, .{ |
| | 83233 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 83234 | .src_constraints = .{ |
| | 83235 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 83236 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 83237 | .any, |
| | 83238 | }, |
| | 83239 | .patterns = &.{ |
| | 83240 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83241 | }, |
| | 83242 | .extra_temps = .{ |
| | 83243 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83244 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 83245 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 83246 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 83247 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83248 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83249 | .unused, |
| | 83250 | .unused, |
| | 83251 | .unused, |
| | 83252 | .unused, |
| | 83253 | .unused, |
| | 83254 | }, |
| | 83255 | .dst_temps = .{ .mem, .unused }, |
| | 83256 | .clobbers = .{ .eflags = true }, |
| | 83257 | .each = .{ .once = &.{ |
| | 83258 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83259 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 83260 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 83261 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, |
| | 83262 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 83263 | else => unreachable, |
| | 83264 | .e => .eq, |
| | 83265 | .ne => .neq, |
| | 83266 | }) }, |
| | 83267 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { |
| | 83268 | else => unreachable, |
| | 83269 | .e => .eq, |
| | 83270 | .ne => .neq, |
| | 83271 | }) }, |
| | 83272 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 83273 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, |
| | 83274 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 83275 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, |
| | 83276 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 83277 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 1), ._, ._ }, |
| | 83278 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, |
| | 83279 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83510 | } }, | 83280 | } }, |
| 83511 | }, .{ | 83281 | }, .{ |
| 83512 | .required_features = .{ .avx, null, null, null }, | 83282 | .required_features = .{ .avx, null, null, null }, |
| 83513 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | 83283 | .src_constraints = .{ |
| | 83284 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 83285 | .{ .multiple_scalar_float = .{ .of = .zword, .is = .qword } }, |
| | 83286 | .any, |
| | 83287 | }, |
| 83514 | .patterns = &.{ | 83288 | .patterns = &.{ |
| 83515 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | 83289 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83516 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 83517 | }, | 83290 | }, |
| 83518 | .dst_temps = .{ .{ .cc = switch (strict) { | 83291 | .extra_temps = .{ |
| 83519 | true => .a, | 83292 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83520 | false => .ae, | 83293 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83521 | } }, .unused }, | 83294 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 83295 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 83296 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83297 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83298 | .unused, |
| | 83299 | .unused, |
| | 83300 | .unused, |
| | 83301 | .unused, |
| | 83302 | .unused, |
| | 83303 | }, |
| | 83304 | .dst_temps = .{ .mem, .unused }, |
| 83522 | .clobbers = .{ .eflags = true }, | 83305 | .clobbers = .{ .eflags = true }, |
| 83523 | .each = .{ .once = &.{ | 83306 | .each = .{ .once = &.{ |
| 83524 | .{ ._, .v_sd, .ucomi, .src0x, .src1q, ._, ._ }, | 83307 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83308 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 83309 | .{ .@"0:", .v_pd, .mova, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 83310 | .{ ._, .v_pd, .mova, .tmp3y, .memiad(.src0y, .tmp0, .add_size, 32), ._, ._ }, |
| | 83311 | .{ ._, .v_pd, .cmp, .tmp2y, .tmp2y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 83312 | else => unreachable, |
| | 83313 | .e => .eq, |
| | 83314 | .ne => .neq, |
| | 83315 | }) }, |
| | 83316 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memiad(.src1y, .tmp0, .add_size, 32), .vp(switch (cc) { |
| | 83317 | else => unreachable, |
| | 83318 | .e => .eq, |
| | 83319 | .ne => .neq, |
| | 83320 | }) }, |
| | 83321 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp2y, ._, ._ }, |
| | 83322 | .{ ._, .v_pd, .movmsk, .tmp5d, .tmp3y, ._, ._ }, |
| | 83323 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 83324 | .{ ._, ._, .@"or", .tmp4b, .tmp5b, ._, ._ }, |
| | 83325 | .{ ._, ._, .mov, .lea(.tmp1b), .tmp4b, ._, ._ }, |
| | 83326 | .{ ._, ._c, .in, .tmp1q, ._, ._, ._ }, |
| | 83327 | .{ ._, ._, .add, .tmp0p, .si(64), ._, ._ }, |
| | 83328 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83329 | } }, |
| | 83330 | }, .{ |
| | 83331 | .required_features = .{ .avx, null, null, null }, |
| | 83332 | .src_constraints = .{ |
| | 83333 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 83334 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, |
| | 83335 | .any, |
| | 83336 | }, |
| | 83337 | .patterns = &.{ |
| | 83338 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83339 | }, |
| | 83340 | .extra_temps = .{ |
| | 83341 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83342 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 83343 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83344 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| | 83345 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83346 | .unused, |
| | 83347 | .unused, |
| | 83348 | .unused, |
| | 83349 | .unused, |
| | 83350 | .unused, |
| | 83351 | .unused, |
| | 83352 | }, |
| | 83353 | .dst_temps = .{ .mem, .unused }, |
| | 83354 | .clobbers = .{ .eflags = true }, |
| | 83355 | .each = .{ .once = &.{ |
| | 83356 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83357 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83358 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83359 | .{ .@"0:", .v_pd, .mova, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| | 83360 | .{ ._, .v_pd, .cmp, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), .vp(switch (cc) { |
| | 83361 | else => unreachable, |
| | 83362 | .e => .eq, |
| | 83363 | .ne => .neq, |
| | 83364 | }) }, |
| | 83365 | .{ ._, .v_pd, .movmsk, .tmp4d, .tmp3y, ._, ._ }, |
| | 83366 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| | 83367 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| | 83368 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| | 83369 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83370 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83371 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| | 83372 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| | 83373 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| | 83374 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83375 | .{ .@"1:", ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 83376 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83377 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83378 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83379 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83380 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83525 | } }, | 83381 | } }, |
| 83526 | }, .{ | 83382 | }, .{ |
| 83527 | .required_features = .{ .sse2, null, null, null }, | 83383 | .required_features = .{ .sse2, null, null, null }, |
| 83528 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | 83384 | .src_constraints = .{ |
| | 83385 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 83386 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, |
| | 83387 | .any, |
| | 83388 | }, |
| 83529 | .patterns = &.{ | 83389 | .patterns = &.{ |
| 83530 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | 83390 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83531 | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 83532 | }, | 83391 | }, |
| 83533 | .dst_temps = .{ .{ .cc = switch (strict) { | 83392 | .extra_temps = .{ |
| 83534 | true => .a, | 83393 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83535 | false => .ae, | 83394 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 83536 | } }, .unused }, | 83395 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83396 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| | 83397 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83398 | .unused, |
| | 83399 | .unused, |
| | 83400 | .unused, |
| | 83401 | .unused, |
| | 83402 | .unused, |
| | 83403 | .unused, |
| | 83404 | }, |
| | 83405 | .dst_temps = .{ .mem, .unused }, |
| 83537 | .clobbers = .{ .eflags = true }, | 83406 | .clobbers = .{ .eflags = true }, |
| 83538 | .each = .{ .once = &.{ | 83407 | .each = .{ .once = &.{ |
| 83539 | .{ ._, ._sd, .ucomi, .src0x, .src1q, ._, ._ }, | 83408 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83409 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83410 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83411 | .{ .@"0:", ._pd, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83412 | .{ ._, ._pd, .cmp, .tmp3x, .memia(.src1x, .tmp0, .add_size), .sp(switch (cc) { |
| | 83413 | else => unreachable, |
| | 83414 | .e => .eq, |
| | 83415 | .ne => .neq, |
| | 83416 | }), ._ }, |
| | 83417 | .{ ._, ._pd, .movmsk, .tmp4d, .tmp3x, ._, ._ }, |
| | 83418 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| | 83419 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| | 83420 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| | 83421 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83422 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83423 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| | 83424 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| | 83425 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| | 83426 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83427 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83428 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83429 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83430 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83431 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83432 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83540 | } }, | 83433 | } }, |
| 83541 | }, .{ | 83434 | }, .{ |
| 83542 | .required_features = .{ .x87, .cmov, null, null }, | 83435 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, |
| 83543 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | 83436 | .src_constraints = .{ |
| | 83437 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 83438 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 83439 | .any, |
| | 83440 | }, |
| 83544 | .patterns = &.{ | 83441 | .patterns = &.{ |
| 83545 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | 83442 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83546 | }, | 83443 | }, |
| 83547 | .extra_temps = .{ | 83444 | .extra_temps = .{ |
| | 83445 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83446 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 83447 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83448 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83449 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83548 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | 83450 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| 83549 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 83451 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 83550 | .unused, | 83452 | .unused, |
| 83551 | .unused, | 83453 | .unused, |
| 83552 | .unused, | 83454 | .unused, |
| 83553 | .unused, | 83455 | .unused, |
| 83554 | .unused, | 83456 | }, |
| | 83457 | .dst_temps = .{ .mem, .unused }, |
| | 83458 | .clobbers = .{ .eflags = true }, |
| | 83459 | .each = .{ .once = &.{ |
| | 83460 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83461 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83462 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83463 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 83464 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 83465 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, |
| | 83466 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, |
| | 83467 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, |
| | 83468 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, |
| | 83469 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 83470 | .{ ._, switch (cc) { |
| | 83471 | else => unreachable, |
| | 83472 | .e => ._np, |
| | 83473 | .ne => ._p, |
| | 83474 | }, .set, .tmp4b, ._, ._, ._ }, |
| | 83475 | .{ ._, ._, switch (cc) { |
| | 83476 | else => unreachable, |
| | 83477 | .e => .@"and", |
| | 83478 | .ne => .@"or", |
| | 83479 | }, .tmp3b, .tmp4b, ._, ._ }, |
| | 83480 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 83481 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 83482 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 83483 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83484 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83485 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 83486 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 83487 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 83488 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83489 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 83490 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83491 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83492 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83493 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83494 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 83495 | } }, |
| | 83496 | }, .{ |
| | 83497 | .required_features = .{ .x87, .cmov, null, null }, |
| | 83498 | .src_constraints = .{ |
| | 83499 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 83500 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 83501 | .any, |
| | 83502 | }, |
| | 83503 | .patterns = &.{ |
| | 83504 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83505 | }, |
| | 83506 | .extra_temps = .{ |
| | 83507 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83508 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 83509 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83510 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83511 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83512 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 83513 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 83555 | .unused, | 83514 | .unused, |
| 83556 | .unused, | 83515 | .unused, |
| 83557 | .unused, | 83516 | .unused, |
| 83558 | .unused, | 83517 | .unused, |
| 83559 | }, | 83518 | }, |
| 83560 | .dst_temps = .{ .{ .cc = switch (strict) { | 83519 | .dst_temps = .{ .mem, .unused }, |
| 83561 | true => .a, | | |
| 83562 | false => .ae, | | |
| 83563 | } }, .unused }, | | |
| 83564 | .clobbers = .{ .eflags = true }, | 83520 | .clobbers = .{ .eflags = true }, |
| 83565 | .each = .{ .once = &.{ | 83521 | .each = .{ .once = &.{ |
| 83566 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, | 83522 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83567 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | 83523 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83568 | .{ ._, .f_p, .ucomi, .tmp0t, .tmp1t, ._, ._ }, | 83524 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 83569 | .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ }, | 83525 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 83526 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 83527 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, |
| | 83528 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, |
| | 83529 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, |
| | 83530 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, |
| | 83531 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 83532 | .{ ._, switch (cc) { |
| | 83533 | else => unreachable, |
| | 83534 | .e => ._np, |
| | 83535 | .ne => ._p, |
| | 83536 | }, .set, .tmp4b, ._, ._, ._ }, |
| | 83537 | .{ ._, ._, switch (cc) { |
| | 83538 | else => unreachable, |
| | 83539 | .e => .@"and", |
| | 83540 | .ne => .@"or", |
| | 83541 | }, .tmp3b, .tmp4b, ._, ._ }, |
| | 83542 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 83543 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 83544 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 83545 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83546 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83547 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 83548 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 83549 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 83550 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83551 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 83552 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83553 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83554 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83555 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83556 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 83570 | } }, | 83557 | } }, |
| 83571 | }, .{ | 83558 | }, .{ |
| 83572 | .required_features = .{ .sahf, .x87, null, null }, | 83559 | .required_features = .{ .x87, null, null, null }, |
| 83573 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | 83560 | .src_constraints = .{ |
| | 83561 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 83562 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| | 83563 | .any, |
| | 83564 | }, |
| 83574 | .patterns = &.{ | 83565 | .patterns = &.{ |
| 83575 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | 83566 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83576 | }, | 83567 | }, |
| 83577 | .extra_temps = .{ | 83568 | .extra_temps = .{ |
| | 83569 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83570 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 83571 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83572 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 83578 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | 83573 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| 83579 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 83574 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 83580 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | 83575 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| ... | @@ -83582,810 +83577,810 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -83582,810 +83577,810 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83582 | .unused, | 83577 | .unused, |
| 83583 | .unused, | 83578 | .unused, |
| 83584 | .unused, | 83579 | .unused, |
| | 83580 | }, |
| | 83581 | .dst_temps = .{ .mem, .unused }, |
| | 83582 | .clobbers = .{ .eflags = true }, |
| | 83583 | .each = .{ .once = &.{ |
| | 83584 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83585 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83586 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83587 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 83588 | .{ ._, .f_, .ld, .memia(.src1q, .tmp0, .add_size), ._, ._, ._ }, |
| | 83589 | .{ ._, .f_, .ld, .memia(.src0q, .tmp0, .add_size), ._, ._, ._ }, |
| | 83590 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| | 83591 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, |
| | 83592 | .{ ._, ._, .xor, .tmp6h, .si(0b1_000_000), ._, ._ }, |
| | 83593 | .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_100), ._, ._ }, |
| | 83594 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 83595 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 83596 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 83597 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 83598 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83599 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83600 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 83601 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 83602 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 83603 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83604 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 83605 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83606 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83607 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83608 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83609 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 83610 | } }, |
| | 83611 | }, .{ |
| | 83612 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, |
| | 83613 | .src_constraints = .{ |
| | 83614 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 83615 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 83616 | .any, |
| | 83617 | }, |
| | 83618 | .patterns = &.{ |
| | 83619 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83620 | }, |
| | 83621 | .extra_temps = .{ |
| | 83622 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83623 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 83624 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83625 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83626 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83627 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 83628 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 83629 | .unused, |
| | 83630 | .unused, |
| | 83631 | .unused, |
| | 83632 | .unused, |
| | 83633 | }, |
| | 83634 | .dst_temps = .{ .mem, .unused }, |
| | 83635 | .clobbers = .{ .eflags = true }, |
| | 83636 | .each = .{ .once = &.{ |
| | 83637 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83638 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83639 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83640 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 83641 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 83642 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, |
| | 83643 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, |
| | 83644 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, |
| | 83645 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, |
| | 83646 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 83647 | .{ ._, switch (cc) { |
| | 83648 | else => unreachable, |
| | 83649 | .e => ._np, |
| | 83650 | .ne => ._p, |
| | 83651 | }, .set, .tmp4b, ._, ._, ._ }, |
| | 83652 | .{ ._, ._, switch (cc) { |
| | 83653 | else => unreachable, |
| | 83654 | .e => .@"and", |
| | 83655 | .ne => .@"or", |
| | 83656 | }, .tmp3b, .tmp4b, ._, ._ }, |
| | 83657 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 83658 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 83659 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 83660 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83661 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83662 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 83663 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 83664 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 83665 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83666 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83667 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83668 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83669 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83670 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83671 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 83672 | } }, |
| | 83673 | }, .{ |
| | 83674 | .required_features = .{ .x87, .cmov, null, null }, |
| | 83675 | .src_constraints = .{ |
| | 83676 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 83677 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 83678 | .any, |
| | 83679 | }, |
| | 83680 | .patterns = &.{ |
| | 83681 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83682 | }, |
| | 83683 | .extra_temps = .{ |
| | 83684 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83685 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 83686 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83687 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83688 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83689 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 83690 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 83585 | .unused, | 83691 | .unused, |
| 83586 | .unused, | 83692 | .unused, |
| 83587 | .unused, | 83693 | .unused, |
| 83588 | .unused, | 83694 | .unused, |
| 83589 | }, | 83695 | }, |
| 83590 | .dst_temps = .{ .{ .cc = switch (strict) { | 83696 | .dst_temps = .{ .mem, .unused }, |
| 83591 | true => .a, | | |
| 83592 | false => .ae, | | |
| 83593 | } }, .unused }, | | |
| 83594 | .clobbers = .{ .eflags = true }, | 83697 | .clobbers = .{ .eflags = true }, |
| 83595 | .each = .{ .once = &.{ | 83698 | .each = .{ .once = &.{ |
| 83596 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, | 83699 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83597 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | 83700 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83701 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83702 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 83703 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 83704 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, |
| | 83705 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, |
| | 83706 | .{ ._, .f_p, .ucomi, .tmp5t, .tmp6t, ._, ._ }, |
| | 83707 | .{ ._, .f_p, .st, .tmp6t, ._, ._, ._ }, |
| | 83708 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 83709 | .{ ._, switch (cc) { |
| | 83710 | else => unreachable, |
| | 83711 | .e => ._np, |
| | 83712 | .ne => ._p, |
| | 83713 | }, .set, .tmp4b, ._, ._, ._ }, |
| | 83714 | .{ ._, ._, switch (cc) { |
| | 83715 | else => unreachable, |
| | 83716 | .e => .@"and", |
| | 83717 | .ne => .@"or", |
| | 83718 | }, .tmp3b, .tmp4b, ._, ._ }, |
| | 83719 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 83720 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 83721 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 83722 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83723 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83724 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 83725 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 83726 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 83727 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83728 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83729 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83730 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83731 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83732 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83733 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 83734 | } }, |
| | 83735 | }, .{ |
| | 83736 | .required_features = .{ .x87, null, null, null }, |
| | 83737 | .src_constraints = .{ |
| | 83738 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 83739 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| | 83740 | .any, |
| | 83741 | }, |
| | 83742 | .patterns = &.{ |
| | 83743 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83744 | }, |
| | 83745 | .extra_temps = .{ |
| | 83746 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83747 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| | 83748 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83749 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 83750 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| | 83751 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 83752 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| | 83753 | .unused, |
| | 83754 | .unused, |
| | 83755 | .unused, |
| | 83756 | .unused, |
| | 83757 | }, |
| | 83758 | .dst_temps = .{ .mem, .unused }, |
| | 83759 | .clobbers = .{ .eflags = true }, |
| | 83760 | .each = .{ .once = &.{ |
| | 83761 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83762 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83763 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83764 | .{ .@"0:", ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 83765 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ }, |
| | 83766 | .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ }, |
| 83598 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | 83767 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| 83599 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | 83768 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, |
| 83600 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, | 83769 | .{ ._, ._, .xor, .tmp6h, .si(0b1_000_000), ._, ._ }, |
| | 83770 | .{ ._, ._, .@"test", .tmp6h, .si(0b1_000_100), ._, ._ }, |
| | 83771 | .{ ._, .fromCond(cc), .set, .tmp3b, ._, ._, ._ }, |
| | 83772 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| | 83773 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| | 83774 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 83775 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83776 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 83777 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| | 83778 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| | 83779 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| | 83780 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 83781 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83782 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83783 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| | 83784 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 83785 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| | 83786 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| | 83787 | } }, |
| | 83788 | }, .{ |
| | 83789 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 83790 | .src_constraints = .{ |
| | 83791 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83792 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83793 | .any, |
| | 83794 | }, |
| | 83795 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 83796 | .patterns = &.{ |
| | 83797 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83798 | }, |
| | 83799 | .call_frame = .{ .alignment = .@"16" }, |
| | 83800 | .extra_temps = .{ |
| | 83801 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83802 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83803 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 83804 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 83805 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 83806 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 83807 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 83808 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 83809 | .unused, |
| | 83810 | .unused, |
| | 83811 | .unused, |
| | 83812 | }, |
| | 83813 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 83814 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 83815 | .each = .{ .once = &.{ |
| | 83816 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 83817 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83818 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83819 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83820 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 83821 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 83822 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 83823 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 83824 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 83825 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 83826 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 83827 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 83828 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 83829 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83830 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83831 | } }, |
| | 83832 | }, .{ |
| | 83833 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 83834 | .src_constraints = .{ |
| | 83835 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83836 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83837 | .any, |
| | 83838 | }, |
| | 83839 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 83840 | .patterns = &.{ |
| | 83841 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83842 | }, |
| | 83843 | .call_frame = .{ .alignment = .@"16" }, |
| | 83844 | .extra_temps = .{ |
| | 83845 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83846 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83847 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 83848 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 83849 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 83850 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 83851 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 83852 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 83853 | .unused, |
| | 83854 | .unused, |
| | 83855 | .unused, |
| | 83856 | }, |
| | 83857 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 83858 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 83859 | .each = .{ .once = &.{ |
| | 83860 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 83861 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83862 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83863 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83864 | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 83865 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 83866 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 83867 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 83868 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 83869 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 83870 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 83871 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 83872 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 83873 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83874 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83875 | } }, |
| | 83876 | }, .{ |
| | 83877 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 83878 | .src_constraints = .{ |
| | 83879 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83880 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83881 | .any, |
| | 83882 | }, |
| | 83883 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 83884 | .patterns = &.{ |
| | 83885 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83886 | }, |
| | 83887 | .call_frame = .{ .alignment = .@"16" }, |
| | 83888 | .extra_temps = .{ |
| | 83889 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83890 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83891 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 83892 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 83893 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 83894 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 83895 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 83896 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 83897 | .unused, |
| | 83898 | .unused, |
| | 83899 | .unused, |
| | 83900 | }, |
| | 83901 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 83902 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 83903 | .each = .{ .once = &.{ |
| | 83904 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 83905 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83906 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83907 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83908 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 83909 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 83910 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 83911 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 83912 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 83913 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 83914 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 83915 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 83916 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 83917 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83918 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83919 | } }, |
| | 83920 | }, .{ |
| | 83921 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 83922 | .src_constraints = .{ |
| | 83923 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83924 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83925 | .any, |
| | 83926 | }, |
| | 83927 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 83928 | .patterns = &.{ |
| | 83929 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83930 | }, |
| | 83931 | .call_frame = .{ .alignment = .@"16" }, |
| | 83932 | .extra_temps = .{ |
| | 83933 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83934 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83935 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 83936 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 83937 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 83938 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 83939 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 83940 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 83941 | .unused, |
| | 83942 | .unused, |
| | 83943 | .unused, |
| | 83944 | }, |
| | 83945 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 83946 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 83947 | .each = .{ .once = &.{ |
| | 83948 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 83949 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83950 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83951 | .{ .@"0:", ._dqa, .mov, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83952 | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 83953 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 83954 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 83955 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 83956 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 83957 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 83958 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 83959 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 83960 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 83961 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 83962 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 83963 | } }, |
| | 83964 | }, .{ |
| | 83965 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| | 83966 | .src_constraints = .{ |
| | 83967 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83968 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 83969 | .any, |
| | 83970 | }, |
| | 83971 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| | 83972 | .patterns = &.{ |
| | 83973 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 83974 | }, |
| | 83975 | .call_frame = .{ .alignment = .@"16" }, |
| | 83976 | .extra_temps = .{ |
| | 83977 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 83978 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 83979 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 83980 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| | 83981 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| | 83982 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 83983 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| | 83984 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| | 83985 | .unused, |
| | 83986 | .unused, |
| | 83987 | .unused, |
| | 83988 | }, |
| | 83989 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 83990 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 83991 | .each = .{ .once = &.{ |
| | 83992 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 83993 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| | 83994 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 83995 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 83996 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 83997 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 83998 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| | 83999 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 84000 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 84001 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84002 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 84003 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 84004 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 84005 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84006 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83601 | } }, | 84007 | } }, |
| 83602 | }, .{ | 84008 | }, .{ |
| 83603 | .required_features = .{ .x87, null, null, null }, | 84009 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 83604 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | 84010 | .src_constraints = .{ |
| | 84011 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84012 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84013 | .any, |
| | 84014 | }, |
| | 84015 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| 83605 | .patterns = &.{ | 84016 | .patterns = &.{ |
| 83606 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | 84017 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83607 | }, | 84018 | }, |
| | 84019 | .call_frame = .{ .alignment = .@"16" }, |
| 83608 | .extra_temps = .{ | 84020 | .extra_temps = .{ |
| 83609 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | 84021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83610 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 84022 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83611 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | 84023 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 83612 | .unused, | 84024 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 83613 | .unused, | 84025 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83614 | .unused, | 84026 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83615 | .unused, | 84027 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83616 | .unused, | 84028 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| 83617 | .unused, | 84029 | .unused, |
| 83618 | .unused, | 84030 | .unused, |
| 83619 | .unused, | 84031 | .unused, |
| 83620 | }, | 84032 | }, |
| 83621 | .dst_temps = .{ .{ .cc = switch (strict) { | 84033 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 83622 | true => .z, | 84034 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83623 | false => .nc, | | |
| 83624 | } }, .unused }, | | |
| 83625 | .clobbers = .{ .eflags = true }, | | |
| 83626 | .each = .{ .once = &.{ | 84035 | .each = .{ .once = &.{ |
| 83627 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, | 84036 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| 83628 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | 84037 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83629 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | 84038 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83630 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | 84039 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83631 | switch (strict) { | 84040 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 83632 | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, | 84041 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 83633 | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, | 84042 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| 83634 | }, | 84043 | .{ ._, ._, .@"test", .tmp5d, .tmp5d, ._, ._ }, |
| | 84044 | .{ ._, .fromCond(cc), .set, .tmp7b, ._, ._, ._ }, |
| | 84045 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84046 | .{ ._, ._l, .sh, .tmp7d, .tmp6b, ._, ._ }, |
| | 84047 | .{ ._, ._, .@"or", .dst0d, .tmp7d, ._, ._ }, |
| | 84048 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 84049 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84050 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83635 | } }, | 84051 | } }, |
| 83636 | }, .{ | 84052 | }, .{ |
| 83637 | .required_features = .{ .x87, .cmov, null, null }, | 84053 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, |
| 83638 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | 84054 | .src_constraints = .{ |
| | 84055 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84056 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84057 | .any, |
| | 84058 | }, |
| 83639 | .patterns = &.{ | 84059 | .patterns = &.{ |
| 83640 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, | 84060 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83641 | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, | | |
| 83642 | }, | 84061 | }, |
| | 84062 | .call_frame = .{ .alignment = .@"16" }, |
| 83643 | .extra_temps = .{ | 84063 | .extra_temps = .{ |
| 83644 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 84064 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83645 | .unused, | 84065 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83646 | .unused, | 84066 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83647 | .unused, | 84067 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 83648 | .unused, | 84068 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 83649 | .unused, | 84069 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83650 | .unused, | 84070 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83651 | .unused, | 84071 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83652 | .unused, | 84072 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83653 | .unused, | 84073 | .unused, |
| 83654 | .unused, | 84074 | .unused, |
| 83655 | }, | 84075 | }, |
| 83656 | .dst_temps = .{ .{ .cc = switch (strict) { | 84076 | .dst_temps = .{ .mem, .unused }, |
| 83657 | true => .a, | 84077 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83658 | false => .ae, | | |
| 83659 | } }, .unused }, | | |
| 83660 | .clobbers = .{ .eflags = true }, | | |
| 83661 | .each = .{ .once = &.{ | 84078 | .each = .{ .once = &.{ |
| 83662 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 84079 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83663 | .{ ._, .f_p, .ucomi, .tmp0t, .src1t, ._, ._ }, | 84080 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 84081 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84082 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 84083 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 84084 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 84085 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 84086 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 84087 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 84088 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 84089 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 84090 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 84091 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 84092 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84093 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 84094 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84095 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 84096 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 84097 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84098 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84099 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 84100 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84101 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 84102 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 84103 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| 83664 | } }, | 84104 | } }, |
| 83665 | }, .{ | 84105 | }, .{ |
| 83666 | .required_features = .{ .sahf, .x87, null, null }, | 84106 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 83667 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | 84107 | .src_constraints = .{ |
| | 84108 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84109 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84110 | .any, |
| | 84111 | }, |
| 83668 | .patterns = &.{ | 84112 | .patterns = &.{ |
| 83669 | .{ .src = .{ .mem, .mem, .none }, .commute = .{ 0, 1 } }, | 84113 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83670 | }, | 84114 | }, |
| | 84115 | .call_frame = .{ .alignment = .@"16" }, |
| 83671 | .extra_temps = .{ | 84116 | .extra_temps = .{ |
| 83672 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | 84117 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83673 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 84118 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83674 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | 84119 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83675 | .unused, | 84120 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 83676 | .unused, | 84121 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 83677 | .unused, | 84122 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83678 | .unused, | 84123 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83679 | .unused, | 84124 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83680 | .unused, | 84125 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83681 | .unused, | 84126 | .unused, |
| 83682 | .unused, | 84127 | .unused, |
| 83683 | }, | 84128 | }, |
| 83684 | .dst_temps = .{ .{ .cc = switch (strict) { | 84129 | .dst_temps = .{ .mem, .unused }, |
| 83685 | true => .a, | 84130 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83686 | false => .ae, | | |
| 83687 | } }, .unused }, | | |
| 83688 | .clobbers = .{ .eflags = true }, | | |
| 83689 | .each = .{ .once = &.{ | 84131 | .each = .{ .once = &.{ |
| 83690 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, | 84132 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83691 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 84133 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83692 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | 84134 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 83693 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | 84135 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83694 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, | 84136 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 84137 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 84138 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 84139 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 84140 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 84141 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 84142 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 84143 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 84144 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 84145 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84146 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 84147 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84148 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 84149 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 84150 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84151 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84152 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 84153 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84154 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 84155 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 84156 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| 83695 | } }, | 84157 | } }, |
| 83696 | }, .{ | 84158 | }, .{ |
| 83697 | .required_features = .{ .sahf, .x87, null, null }, | 84159 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, |
| 83698 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | 84160 | .src_constraints = .{ |
| | 84161 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84162 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84163 | .any, |
| | 84164 | }, |
| 83699 | .patterns = &.{ | 84165 | .patterns = &.{ |
| 83700 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, | 84166 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83701 | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, | | |
| 83702 | }, | 84167 | }, |
| | 84168 | .call_frame = .{ .alignment = .@"16" }, |
| 83703 | .extra_temps = .{ | 84169 | .extra_temps = .{ |
| 83704 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | 84170 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83705 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 84171 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83706 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | 84172 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83707 | .unused, | 84173 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 83708 | .unused, | 84174 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 83709 | .unused, | 84175 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83710 | .unused, | 84176 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83711 | .unused, | 84177 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83712 | .unused, | 84178 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83713 | .unused, | 84179 | .unused, |
| 83714 | .unused, | 84180 | .unused, |
| 83715 | }, | 84181 | }, |
| 83716 | .dst_temps = .{ .{ .cc = switch (strict) { | 84182 | .dst_temps = .{ .mem, .unused }, |
| 83717 | true => .a, | 84183 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83718 | false => .ae, | | |
| 83719 | } }, .unused }, | | |
| 83720 | .clobbers = .{ .eflags = true }, | | |
| 83721 | .each = .{ .once = &.{ | 84184 | .each = .{ .once = &.{ |
| 83722 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 84185 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83723 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, | 84186 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83724 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | 84187 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 83725 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, | 84188 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 84189 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 84190 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 84191 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 84192 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 84193 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 84194 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 84195 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 84196 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 84197 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 84198 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84199 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 84200 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84201 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 84202 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 84203 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84204 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84205 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 84206 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84207 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 84208 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 84209 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| 83726 | } }, | 84210 | } }, |
| 83727 | }, .{ | 84211 | }, .{ |
| 83728 | .required_features = .{ .x87, null, null, null }, | 84212 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 83729 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | 84213 | .src_constraints = .{ |
| | 84214 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84215 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84216 | .any, |
| | 84217 | }, |
| 83730 | .patterns = &.{ | 84218 | .patterns = &.{ |
| 83731 | .{ .src = .{ .mem, .mem, .none }, .commute = .{ 0, 1 } }, | 84219 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83732 | }, | 84220 | }, |
| | 84221 | .call_frame = .{ .alignment = .@"16" }, |
| 83733 | .extra_temps = .{ | 84222 | .extra_temps = .{ |
| 83734 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | 84223 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83735 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 84224 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83736 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | 84225 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83737 | .unused, | 84226 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 83738 | .unused, | 84227 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 83739 | .unused, | 84228 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83740 | .unused, | 84229 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83741 | .unused, | 84230 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83742 | .unused, | 84231 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83743 | .unused, | 84232 | .unused, |
| 83744 | .unused, | 84233 | .unused, |
| 83745 | }, | 84234 | }, |
| 83746 | .dst_temps = .{ .{ .cc = switch (strict) { | 84235 | .dst_temps = .{ .mem, .unused }, |
| 83747 | true => .z, | 84236 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83748 | false => .nc, | | |
| 83749 | } }, .unused }, | | |
| 83750 | .clobbers = .{ .eflags = true }, | | |
| 83751 | .each = .{ .once = &.{ | 84237 | .each = .{ .once = &.{ |
| 83752 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, | 84238 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83753 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 84239 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83754 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | 84240 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 83755 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | 84241 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83756 | switch (strict) { | 84242 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 83757 | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, | 84243 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 83758 | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, | 84244 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| 83759 | }, | 84245 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 84246 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 84247 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 84248 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 84249 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 84250 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 84251 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84252 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 84253 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84254 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 84255 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 84256 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84257 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84258 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 84259 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84260 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 84261 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 84262 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| 83760 | } }, | 84263 | } }, |
| 83761 | }, .{ | 84264 | }, .{ |
| 83762 | .required_features = .{ .x87, null, null, null }, | 84265 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, |
| 83763 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | 84266 | .src_constraints = .{ |
| | 84267 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84268 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84269 | .any, |
| | 84270 | }, |
| 83764 | .patterns = &.{ | 84271 | .patterns = &.{ |
| 83765 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, | 84272 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83766 | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, | | |
| 83767 | }, | 84273 | }, |
| | 84274 | .call_frame = .{ .alignment = .@"16" }, |
| 83768 | .extra_temps = .{ | 84275 | .extra_temps = .{ |
| 83769 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | 84276 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83770 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 84277 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83771 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | 84278 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83772 | .unused, | 84279 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 83773 | .unused, | 84280 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 83774 | .unused, | 84281 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83775 | .unused, | 84282 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83776 | .unused, | 84283 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83777 | .unused, | 84284 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83778 | .unused, | 84285 | .unused, |
| 83779 | .unused, | 84286 | .unused, |
| 83780 | }, | 84287 | }, |
| 83781 | .dst_temps = .{ .{ .cc = switch (strict) { | 84288 | .dst_temps = .{ .mem, .unused }, |
| 83782 | true => .z, | 84289 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83783 | false => .nc, | | |
| 83784 | } }, .unused }, | | |
| 83785 | .clobbers = .{ .eflags = true }, | | |
| 83786 | .each = .{ .once = &.{ | 84290 | .each = .{ .once = &.{ |
| 83787 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 84291 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83788 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, | 84292 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83789 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | 84293 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 83790 | switch (strict) { | 84294 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83791 | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, | 84295 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 83792 | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, | 84296 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 83793 | }, | 84297 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 84298 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 84299 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 84300 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 84301 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 84302 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 84303 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| | 84304 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84305 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 84306 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84307 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 84308 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 84309 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84310 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84311 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 84312 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84313 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 84314 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 84315 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| 83794 | } }, | 84316 | } }, |
| 83795 | }, .{ | 84317 | }, .{ |
| 83796 | .required_features = .{ .sse, null, null, null }, | 84318 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 83797 | .src_constraints = .{ .{ .float = .xword }, .{ .float = .xword }, .any }, | 84319 | .src_constraints = .{ |
| | 84320 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84321 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| | 84322 | .any, |
| | 84323 | }, |
| 83798 | .patterns = &.{ | 84324 | .patterns = &.{ |
| 83799 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, | 84325 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83800 | }, | 84326 | }, |
| 83801 | .call_frame = .{ .alignment = .@"16" }, | 84327 | .call_frame = .{ .alignment = .@"16" }, |
| 83802 | .extra_temps = .{ | 84328 | .extra_temps = .{ |
| | 84329 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 84330 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 84331 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 84332 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 84333 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 83803 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | 84334 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83804 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 84335 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83805 | .unused, | 84336 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 83806 | .unused, | 84337 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83807 | .unused, | | |
| 83808 | .unused, | | |
| 83809 | .unused, | | |
| 83810 | .unused, | | |
| 83811 | .unused, | | |
| 83812 | .unused, | 84338 | .unused, |
| 83813 | .unused, | 84339 | .unused, |
| 83814 | }, | 84340 | }, |
| 83815 | .dst_temps = .{ .{ .cc = switch (strict) { | 84341 | .dst_temps = .{ .mem, .unused }, |
| 83816 | true => .l, | | |
| 83817 | false => .le, | | |
| 83818 | } }, .unused }, | | |
| 83819 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 84342 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83820 | .each = .{ .once = &.{ | 84343 | .each = .{ .once = &.{ |
| 83821 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 84344 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83822 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, | 84345 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 84346 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84347 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| | 84348 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| | 84349 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 84350 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| | 84351 | .{ ._, ._, .@"test", .tmp6d, .tmp6d, ._, ._ }, |
| | 84352 | .{ ._, .fromCond(cc), .set, .tmp8b, ._, ._, ._ }, |
| | 84353 | .{ ._, ._, .mov, .tmp7d, .tmp1d, ._, ._ }, |
| | 84354 | .{ ._, ._l, .sh, .tmp8q, .tmp7b, ._, ._ }, |
| | 84355 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 84356 | .{ ._, ._c, .in, .tmp1d, ._, ._, ._ }, |
| | 84357 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84358 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| | 84359 | .{ ._, ._, .mov, .tmp6d, .tmp1d, ._, ._ }, |
| | 84360 | .{ ._, ._r, .sh, .tmp6d, .ui(3), ._, ._ }, |
| | 84361 | .{ ._, ._, .mov, .memid(.dst0q, .tmp6, -8), .tmp2q, ._, ._ }, |
| | 84362 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 84363 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 84364 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 84365 | .{ ._, ._, .@"test", .tmp1d, .si(0b111111), ._, ._ }, |
| | 84366 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 84367 | .{ ._, ._r, .sh, .tmp1d, .ui(6), ._, ._ }, |
| | 84368 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp1), .tmp2q, ._, ._ }, |
| 83823 | } }, | 84369 | } }, |
| 83824 | } }, | 84370 | } }, |
| 83825 | }); | | |
| 83826 | } else err: { | | |
| 83827 | res[0] = ops[0].cmpInts(cmp_op, &ops[1], cg) catch |err| break :err err; | | |
| 83828 | }) catch |err| switch (err) { | | |
| 83829 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | | |
| 83830 | @tagName(air_tag), | | |
| 83831 | cg.typeOf(bin_op.lhs).fmt(pt), | | |
| 83832 | ops[0].tracking(cg), | | |
| 83833 | ops[1].tracking(cg), | | |
| 83834 | }), | 84371 | }), |
| 83835 | else => |e| return e, | | |
| 83836 | }; | | |
| 83837 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | | |
| 83838 | }, | | |
| 83839 | .cmp_eq, | | |
| 83840 | .cmp_eq_optimized, | | |
| 83841 | .cmp_neq, | | |
| 83842 | .cmp_neq_optimized, | | |
| 83843 | => |air_tag| if (use_old) try cg.airCmp(inst, air_tag.toCmpOp().?) else { | | |
| 83844 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | | |
| 83845 | const cmp_op = air_tag.toCmpOp().?; | | |
| 83846 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | | |
| 83847 | const ty = cg.typeOf(bin_op.lhs); | | |
| 83848 | var res: [1]Temp = undefined; | | |
| 83849 | const OptInfo = struct { | | |
| 83850 | deaths: [2]Air.Inst.Index, | | |
| 83851 | res: [1]Temp, | | |
| 83852 | state: State, | | |
| 83853 | reloc: Mir.Inst.Index, | | |
| 83854 | }; | | |
| 83855 | var opt_info: ?OptInfo = null; | | |
| 83856 | (err: switch (@as(enum { float, int }, if (cg.floatBits(ty)) |_| | | |
| 83857 | .float | | |
| 83858 | else if (cg.intInfo(ty)) |_| | | |
| 83859 | .int | | |
| 83860 | else category: { | | |
| 83861 | const child_ty = ty.optionalChild(zcu); | | |
| 83862 | const has_value_off: u31 = @intCast(child_ty.abiSize(zcu)); | | |
| 83863 | var has_values: [2]Temp = undefined; | | |
| 83864 | opt_info = @as(OptInfo, undefined); | | |
| 83865 | for (&has_values, &ops, &opt_info.?.deaths) |*has_value, *op, *death| { | | |
| 83866 | has_value.* = try op.read(.bool, .{ .disp = has_value_off }, cg); | | |
| 83867 | const child = try op.read(child_ty, .{}, cg); | | |
| 83868 | try op.die(cg); | | |
| 83869 | op.* = child; | | |
| 83870 | death.* = child.index; | | |
| 83871 | } | | |
| 83872 | cg.select( | | |
| 83873 | &opt_info.?.res, | | |
| 83874 | &.{.bool}, | | |
| 83875 | &has_values, | | |
| 83876 | switch (Condition.fromCompareOperatorUnsigned(cmp_op)) { | | |
| 83877 | else => unreachable, | | |
| 83878 | inline .e, .ne => |cc| comptime &.{.{ | | |
| 83879 | .src_constraints = .{ .{ .size = .byte }, .{ .size = .byte }, .any }, | | |
| 83880 | .patterns = &.{ | | |
| 83881 | .{ .src = .{ .mem, .imm8, .none } }, | | |
| 83882 | .{ .src = .{ .imm8, .mem, .none }, .commute = .{ 0, 1 } }, | | |
| 83883 | .{ .src = .{ .to_gpr, .imm8, .none } }, | | |
| 83884 | .{ .src = .{ .imm8, .to_gpr, .none }, .commute = .{ 0, 1 } }, | | |
| 83885 | .{ .src = .{ .mem, .to_gpr, .none } }, | | |
| 83886 | .{ .src = .{ .to_gpr, .mem, .none }, .commute = .{ 0, 1 } }, | | |
| 83887 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | | |
| 83888 | }, | | |
| 83889 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 83890 | .clobbers = .{ .eflags = true }, | | |
| 83891 | .each = .{ .once = &.{ | | |
| 83892 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, | | |
| 83893 | .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ }, | | |
| 83894 | .{ ._, .fromCond(cc), .set, .dst0b, ._, ._, ._ }, | | |
| 83895 | .{ ._, ._, .@"test", .src0b, .src1b, ._, ._ }, | | |
| 83896 | } }, | | |
| 83897 | }}, | | |
| 83898 | }, | | |
| 83899 | ) catch |err| switch (err) { | | |
| 83900 | error.SelectFailed => unreachable, | | |
| 83901 | else => |e| return e, | | |
| 83902 | }; | | |
| 83903 | for (has_values) |has_value| for (opt_info.?.res) |opt_res| { | | |
| 83904 | if (has_value.index == opt_res.index) break; | | |
| 83905 | } else try has_value.die(cg); | | |
| 83906 | opt_info.?.state = cg.initRetroactiveState(); | | |
| 83907 | opt_info.?.state.next_temp_index = cg.next_temp_index; | | |
| 83908 | var state = try cg.saveState(); | | |
| 83909 | state.next_temp_index = cg.next_temp_index; | | |
| 83910 | for (ops) |op| try op.die(cg); | | |
| 83911 | try cg.saveRetroactiveState(&opt_info.?.state); | | |
| 83912 | opt_info.?.reloc = try cg.asmJccReloc(.z, undefined); | | |
| 83913 | try cg.restoreState(state, &.{}, .{ | | |
| 83914 | .emit_instructions = false, | | |
| 83915 | .update_tracking = true, | | |
| 83916 | .resurrect = true, | | |
| 83917 | .close_scope = true, | | |
| 83918 | }); | | |
| 83919 | break :category if (cg.floatBits(child_ty)) |_| .float else .int; | | |
| 83920 | })) { | | |
| 83921 | .float => { | | |
| 83922 | cg.select(&res, &.{.bool}, &ops, switch (switch (air_tag) { | | |
| 83923 | else => unreachable, | | |
| 83924 | .cmp_eq, .cmp_neq => false, | | |
| 83925 | .cmp_eq_optimized, .cmp_neq_optimized => true, | | |
| 83926 | }) { | | |
| 83927 | inline false, true => |optimized| comptime &.{ .{ | | |
| 83928 | .required_features = .{ .f16c, null, null, null }, | | |
| 83929 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, | | |
| 83930 | .patterns = &.{ | | |
| 83931 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 83932 | }, | | |
| 83933 | .extra_temps = .{ | | |
| 83934 | .{ .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | | |
| 83935 | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, | | |
| 83936 | .unused, | | |
| 83937 | .unused, | | |
| 83938 | .unused, | | |
| 83939 | .unused, | | |
| 83940 | .unused, | | |
| 83941 | .unused, | | |
| 83942 | .unused, | | |
| 83943 | .unused, | | |
| 83944 | .unused, | | |
| 83945 | }, | | |
| 83946 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 83947 | false => .z_and_np, | | |
| 83948 | true => .z, | | |
| 83949 | } }, .unused }, | | |
| 83950 | .clobbers = .{ .eflags = true }, | | |
| 83951 | .each = .{ .once = &.{ | | |
| 83952 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | | |
| 83953 | .{ ._, .v_ps, .cvtph2, .tmp1x, .src1q, ._, ._ }, | | |
| 83954 | .{ ._, .v_ss, .ucomi, .tmp0x, .tmp1d, ._, ._ }, | | |
| 83955 | } }, | | |
| 83956 | }, .{ | | |
| 83957 | .required_features = .{ .sse, null, null, null }, | | |
| 83958 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, | | |
| 83959 | .patterns = &.{ | | |
| 83960 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, | | |
| 83961 | }, | | |
| 83962 | .call_frame = .{ .alignment = .@"16" }, | | |
| 83963 | .extra_temps = .{ | | |
| 83964 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, | | |
| 83965 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 83966 | .unused, | | |
| 83967 | .unused, | | |
| 83968 | .unused, | | |
| 83969 | .unused, | | |
| 83970 | .unused, | | |
| 83971 | .unused, | | |
| 83972 | .unused, | | |
| 83973 | .unused, | | |
| 83974 | .unused, | | |
| 83975 | }, | | |
| 83976 | .dst_temps = .{ .{ .cc = .z }, .unused }, | | |
| 83977 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 83978 | .each = .{ .once = &.{ | | |
| 83979 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | | |
| 83980 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, | | |
| 83981 | } }, | | |
| 83982 | }, .{ | | |
| 83983 | .required_features = .{ .avx, null, null, null }, | | |
| 83984 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, | | |
| 83985 | .patterns = &.{ | | |
| 83986 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 83987 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 83988 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 83989 | }, | | |
| 83990 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 83991 | false => .z_and_np, | | |
| 83992 | true => .z, | | |
| 83993 | } }, .unused }, | | |
| 83994 | .clobbers = .{ .eflags = true }, | | |
| 83995 | .each = .{ .once = &.{ | | |
| 83996 | .{ ._, .v_ss, .ucomi, .src0x, .src1d, ._, ._ }, | | |
| 83997 | } }, | | |
| 83998 | }, .{ | | |
| 83999 | .required_features = .{ .sse, null, null, null }, | | |
| 84000 | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, | | |
| 84001 | .patterns = &.{ | | |
| 84002 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 84003 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 84004 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 84005 | }, | | |
| 84006 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84007 | false => .z_and_np, | | |
| 84008 | true => .z, | | |
| 84009 | } }, .unused }, | | |
| 84010 | .clobbers = .{ .eflags = true }, | | |
| 84011 | .each = .{ .once = &.{ | | |
| 84012 | .{ ._, ._ss, .ucomi, .src0x, .src1d, ._, ._ }, | | |
| 84013 | } }, | | |
| 84014 | }, .{ | | |
| 84015 | .required_features = .{ .avx, null, null, null }, | | |
| 84016 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | | |
| 84017 | .patterns = &.{ | | |
| 84018 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 84019 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 84020 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 84021 | }, | | |
| 84022 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84023 | false => .z_and_np, | | |
| 84024 | true => .z, | | |
| 84025 | } }, .unused }, | | |
| 84026 | .clobbers = .{ .eflags = true }, | | |
| 84027 | .each = .{ .once = &.{ | | |
| 84028 | .{ ._, .v_sd, .ucomi, .src0x, .src1q, ._, ._ }, | | |
| 84029 | } }, | | |
| 84030 | }, .{ | | |
| 84031 | .required_features = .{ .sse2, null, null, null }, | | |
| 84032 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | | |
| 84033 | .patterns = &.{ | | |
| 84034 | .{ .src = .{ .to_sse, .mem, .none } }, | | |
| 84035 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, | | |
| 84036 | .{ .src = .{ .to_sse, .to_sse, .none } }, | | |
| 84037 | }, | | |
| 84038 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84039 | false => .z_and_np, | | |
| 84040 | true => .z, | | |
| 84041 | } }, .unused }, | | |
| 84042 | .clobbers = .{ .eflags = true }, | | |
| 84043 | .each = .{ .once = &.{ | | |
| 84044 | .{ ._, ._sd, .ucomi, .src0x, .src1q, ._, ._ }, | | |
| 84045 | } }, | | |
| 84046 | }, .{ | | |
| 84047 | .required_features = .{ .x87, .cmov, null, null }, | | |
| 84048 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | | |
| 84049 | .patterns = &.{ | | |
| 84050 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 84051 | }, | | |
| 84052 | .extra_temps = .{ | | |
| 84053 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 84054 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 84055 | .unused, | | |
| 84056 | .unused, | | |
| 84057 | .unused, | | |
| 84058 | .unused, | | |
| 84059 | .unused, | | |
| 84060 | .unused, | | |
| 84061 | .unused, | | |
| 84062 | .unused, | | |
| 84063 | .unused, | | |
| 84064 | }, | | |
| 84065 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84066 | false => .z_and_np, | | |
| 84067 | true => .z, | | |
| 84068 | } }, .unused }, | | |
| 84069 | .clobbers = .{ .eflags = true }, | | |
| 84070 | .each = .{ .once = &.{ | | |
| 84071 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, | | |
| 84072 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | | |
| 84073 | .{ ._, .f_p, .ucomi, .tmp0t, .tmp1t, ._, ._ }, | | |
| 84074 | .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ }, | | |
| 84075 | } }, | | |
| 84076 | }, .{ | | |
| 84077 | .required_features = .{ .sahf, .x87, null, null }, | | |
| 84078 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | | |
| 84079 | .patterns = &.{ | | |
| 84080 | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, | | |
| 84081 | }, | | |
| 84082 | .extra_temps = .{ | | |
| 84083 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 84084 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 84085 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 84086 | .unused, | | |
| 84087 | .unused, | | |
| 84088 | .unused, | | |
| 84089 | .unused, | | |
| 84090 | .unused, | | |
| 84091 | .unused, | | |
| 84092 | .unused, | | |
| 84093 | .unused, | | |
| 84094 | }, | | |
| 84095 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84096 | false => .z_and_np, | | |
| 84097 | true => .z, | | |
| 84098 | } }, .unused }, | | |
| 84099 | .clobbers = .{ .eflags = true }, | | |
| 84100 | .each = .{ .once = &.{ | | |
| 84101 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, | | |
| 84102 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | | |
| 84103 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 84104 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84105 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, | | |
| 84106 | } }, | | |
| 84107 | }, .{ | | |
| 84108 | .required_features = .{ .x87, null, null, null }, | | |
| 84109 | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, | | |
| 84110 | .patterns = &.{ | | |
| 84111 | .{ .src = .{ .to_mem, .to_mem, .none } }, | | |
| 84112 | }, | | |
| 84113 | .extra_temps = .{ | | |
| 84114 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 84115 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 84116 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 84117 | .unused, | | |
| 84118 | .unused, | | |
| 84119 | .unused, | | |
| 84120 | .unused, | | |
| 84121 | .unused, | | |
| 84122 | .unused, | | |
| 84123 | .unused, | | |
| 84124 | .unused, | | |
| 84125 | }, | | |
| 84126 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84127 | false => .z, | | |
| 84128 | true => .nz, | | |
| 84129 | } }, .unused }, | | |
| 84130 | .clobbers = .{ .eflags = true }, | | |
| 84131 | .each = .{ .once = switch (optimized) { | | |
| 84132 | false => &.{ | | |
| 84133 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, | | |
| 84134 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | | |
| 84135 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 84136 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84137 | .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ }, | | |
| 84138 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ }, | | |
| 84139 | }, | | |
| 84140 | true => &.{ | | |
| 84141 | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, | | |
| 84142 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | | |
| 84143 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 84144 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84145 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ }, | | |
| 84146 | }, | | |
| 84147 | } }, | | |
| 84148 | }, .{ | | |
| 84149 | .required_features = .{ .x87, .cmov, null, null }, | | |
| 84150 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | | |
| 84151 | .patterns = &.{ | | |
| 84152 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, | | |
| 84153 | .{ .src = .{ .mem, .to_x87, .none } }, | | |
| 84154 | .{ .src = .{ .to_x87, .to_x87, .none } }, | | |
| 84155 | }, | | |
| 84156 | .extra_temps = .{ | | |
| 84157 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 84158 | .unused, | | |
| 84159 | .unused, | | |
| 84160 | .unused, | | |
| 84161 | .unused, | | |
| 84162 | .unused, | | |
| 84163 | .unused, | | |
| 84164 | .unused, | | |
| 84165 | .unused, | | |
| 84166 | .unused, | | |
| 84167 | .unused, | | |
| 84168 | }, | | |
| 84169 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84170 | false => .z_and_np, | | |
| 84171 | true => .z, | | |
| 84172 | } }, .unused }, | | |
| 84173 | .clobbers = .{ .eflags = true }, | | |
| 84174 | .each = .{ .once = &.{ | | |
| 84175 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 84176 | .{ ._, .f_p, .ucomi, .tmp0t, .src1t, ._, ._ }, | | |
| 84177 | } }, | | |
| 84178 | }, .{ | | |
| 84179 | .required_features = .{ .sahf, .x87, null, null }, | | |
| 84180 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | | |
| 84181 | .patterns = &.{ | | |
| 84182 | .{ .src = .{ .mem, .mem, .none } }, | | |
| 84183 | }, | | |
| 84184 | .extra_temps = .{ | | |
| 84185 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 84186 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 84187 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 84188 | .unused, | | |
| 84189 | .unused, | | |
| 84190 | .unused, | | |
| 84191 | .unused, | | |
| 84192 | .unused, | | |
| 84193 | .unused, | | |
| 84194 | .unused, | | |
| 84195 | .unused, | | |
| 84196 | }, | | |
| 84197 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84198 | false => .z_and_np, | | |
| 84199 | true => .z, | | |
| 84200 | } }, .unused }, | | |
| 84201 | .clobbers = .{ .eflags = true }, | | |
| 84202 | .each = .{ .once = &.{ | | |
| 84203 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, | | |
| 84204 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 84205 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 84206 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84207 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, | | |
| 84208 | } }, | | |
| 84209 | }, .{ | | |
| 84210 | .required_features = .{ .sahf, .x87, null, null }, | | |
| 84211 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | | |
| 84212 | .patterns = &.{ | | |
| 84213 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, | | |
| 84214 | .{ .src = .{ .mem, .to_x87, .none } }, | | |
| 84215 | .{ .src = .{ .to_x87, .to_x87, .none } }, | | |
| 84216 | }, | | |
| 84217 | .extra_temps = .{ | | |
| 84218 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 84219 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 84220 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 84221 | .unused, | | |
| 84222 | .unused, | | |
| 84223 | .unused, | | |
| 84224 | .unused, | | |
| 84225 | .unused, | | |
| 84226 | .unused, | | |
| 84227 | .unused, | | |
| 84228 | .unused, | | |
| 84229 | }, | | |
| 84230 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84231 | false => .z_and_np, | | |
| 84232 | true => .z, | | |
| 84233 | } }, .unused }, | | |
| 84234 | .clobbers = .{ .eflags = true }, | | |
| 84235 | .each = .{ .once = &.{ | | |
| 84236 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 84237 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, | | |
| 84238 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84239 | .{ ._, ._, .sahf, ._, ._, ._, ._ }, | | |
| 84240 | } }, | | |
| 84241 | }, .{ | | |
| 84242 | .required_features = .{ .x87, null, null, null }, | | |
| 84243 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | | |
| 84244 | .patterns = &.{ | | |
| 84245 | .{ .src = .{ .mem, .mem, .none } }, | | |
| 84246 | }, | | |
| 84247 | .extra_temps = .{ | | |
| 84248 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 84249 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 84250 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 84251 | .unused, | | |
| 84252 | .unused, | | |
| 84253 | .unused, | | |
| 84254 | .unused, | | |
| 84255 | .unused, | | |
| 84256 | .unused, | | |
| 84257 | .unused, | | |
| 84258 | .unused, | | |
| 84259 | }, | | |
| 84260 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84261 | false => .z, | | |
| 84262 | true => .nz, | | |
| 84263 | } }, .unused }, | | |
| 84264 | .clobbers = .{ .eflags = true }, | | |
| 84265 | .each = .{ .once = switch (optimized) { | | |
| 84266 | false => &.{ | | |
| 84267 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, | | |
| 84268 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 84269 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 84270 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84271 | .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ }, | | |
| 84272 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ }, | | |
| 84273 | }, | | |
| 84274 | true => &.{ | | |
| 84275 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, | | |
| 84276 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 84277 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, | | |
| 84278 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84279 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ }, | | |
| 84280 | }, | | |
| 84281 | } }, | | |
| 84282 | }, .{ | | |
| 84283 | .required_features = .{ .x87, null, null, null }, | | |
| 84284 | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, | | |
| 84285 | .patterns = &.{ | | |
| 84286 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, | | |
| 84287 | .{ .src = .{ .mem, .to_x87, .none } }, | | |
| 84288 | .{ .src = .{ .to_x87, .to_x87, .none } }, | | |
| 84289 | }, | | |
| 84290 | .extra_temps = .{ | | |
| 84291 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, | | |
| 84292 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 84293 | .{ .type = .u16, .kind = .{ .reg = .ax } }, | | |
| 84294 | .unused, | | |
| 84295 | .unused, | | |
| 84296 | .unused, | | |
| 84297 | .unused, | | |
| 84298 | .unused, | | |
| 84299 | .unused, | | |
| 84300 | .unused, | | |
| 84301 | .unused, | | |
| 84302 | }, | | |
| 84303 | .dst_temps = .{ .{ .cc = switch (optimized) { | | |
| 84304 | false => .z, | | |
| 84305 | true => .nz, | | |
| 84306 | } }, .unused }, | | |
| 84307 | .clobbers = .{ .eflags = true }, | | |
| 84308 | .each = .{ .once = switch (optimized) { | | |
| 84309 | false => &.{ | | |
| 84310 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 84311 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, | | |
| 84312 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84313 | .{ ._, ._, .xor, .tmp2h, .si(0b1_000_000), ._, ._ }, | | |
| 84314 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_100), ._, ._ }, | | |
| 84315 | }, | | |
| 84316 | true => &.{ | | |
| 84317 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 84318 | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, | | |
| 84319 | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, | | |
| 84320 | .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_000), ._, ._ }, | | |
| 84321 | }, | | |
| 84322 | } }, | | |
| 84323 | }, .{ | | |
| 84324 | .required_features = .{ .sse, null, null, null }, | | |
| 84325 | .src_constraints = .{ .{ .float = .xword }, .{ .float = .xword }, .any }, | | |
| 84326 | .patterns = &.{ | | |
| 84327 | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, | | |
| 84328 | }, | | |
| 84329 | .call_frame = .{ .alignment = .@"16" }, | | |
| 84330 | .extra_temps = .{ | | |
| 84331 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, | | |
| 84332 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | | |
| 84333 | .unused, | | |
| 84334 | .unused, | | |
| 84335 | .unused, | | |
| 84336 | .unused, | | |
| 84337 | .unused, | | |
| 84338 | .unused, | | |
| 84339 | .unused, | | |
| 84340 | .unused, | | |
| 84341 | .unused, | | |
| 84342 | }, | | |
| 84343 | .dst_temps = .{ .{ .cc = .z }, .unused }, | | |
| 84344 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 84345 | .each = .{ .once = &.{ | | |
| 84346 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | | |
| 84347 | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, | | |
| 84348 | } }, | | |
| 84349 | } }, | | |
| 84350 | }) catch |err| break :err err; | | |
| 84351 | switch (cmp_op) { | | |
| 84352 | else => unreachable, | | |
| 84353 | .eq => {}, | | |
| 84354 | .neq => { | | |
| 84355 | const cc = &res[0].unwrap(cg).temp.tracking(cg).short.eflags; | | |
| 84356 | cc.* = cc.negate(); | | |
| 84357 | }, | | |
| 84358 | } | | |
| 84359 | }, | | |
| 84360 | .int => res[0] = ops[0].cmpInts(cmp_op, &ops[1], cg) catch |err| break :err err, | | |
| 84361 | }) catch |err| switch (err) { | 84372 | }) catch |err| switch (err) { |
| 84362 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 84373 | error.SelectFailed => return cg.fail("failed to select {s} {s} {} {} {}", .{ |
| 84363 | @tagName(air_tag), | 84374 | @tagName(air_tag), |
| 84364 | cg.typeOf(bin_op.lhs).fmt(pt), | 84375 | @tagName(extra.compareOperator()), |
| | 84376 | cg.typeOf(extra.lhs).fmt(pt), |
| 84365 | ops[0].tracking(cg), | 84377 | ops[0].tracking(cg), |
| 84366 | ops[1].tracking(cg), | 84378 | ops[1].tracking(cg), |
| 84367 | }), | 84379 | }), |
| 84368 | else => |e| return e, | 84380 | else => |e| return e, |
| 84369 | }; | 84381 | }; |
| 84370 | if (opt_info) |*oi| { | 84382 | try res[0].finish(inst, &.{ extra.lhs, extra.rhs }, &ops, cg); |
| 84371 | for (ops) |op| for (res) |r| { | | |
| 84372 | if (op.index == r.index) break; | | |
| 84373 | } else try op.die(cg); | | |
| 84374 | try cg.genCopy(.bool, oi.res[0].tracking(cg).short, res[0].tracking(cg).short, .{}); | | |
| 84375 | try res[0].die(cg); | | |
| 84376 | res[0] = oi.res[0]; | | |
| 84377 | try cg.restoreState(oi.state, &oi.deaths, .{ | | |
| 84378 | .emit_instructions = true, | | |
| 84379 | .update_tracking = true, | | |
| 84380 | .resurrect = true, | | |
| 84381 | .close_scope = true, | | |
| 84382 | }); | | |
| 84383 | cg.performReloc(oi.reloc); | | |
| 84384 | @memset(&ops, res[0]); | | |
| 84385 | } | | |
| 84386 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | | |
| 84387 | }, | 84383 | }, |
| 84388 | | | |
| 84389 | .cond_br => try cg.airCondBr(inst), | 84384 | .cond_br => try cg.airCondBr(inst), |
| 84390 | .switch_br => try cg.airSwitchBr(inst), | 84385 | .switch_br => try cg.airSwitchBr(inst), |
| 84391 | .loop_switch_br => try cg.airLoopSwitchBr(inst), | 84386 | .loop_switch_br => try cg.airLoopSwitchBr(inst), |
| ... | @@ -89934,14 +89929,1029 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -89934,14 +89929,1029 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89934 | .clobbers = .{ .eflags = true }, | 89929 | .clobbers = .{ .eflags = true }, |
| 89935 | .each = .{ .once = &.{ | 89930 | .each = .{ .once = &.{ |
| 89936 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 89931 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 89937 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 89932 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89938 | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 89933 | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 89939 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 89934 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 89940 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 89935 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 89936 | } }, |
| | 89937 | }, .{ |
| | 89938 | .required_features = .{ .avx, null, null, null }, |
| | 89939 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 89940 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 89941 | .patterns = &.{ |
| | 89942 | .{ .src = .{ .mem, .none, .none } }, |
| | 89943 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 89944 | }, |
| | 89945 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 89946 | .each = .{ .once = &.{ |
| | 89947 | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| | 89948 | } }, |
| | 89949 | }, .{ |
| | 89950 | .required_features = .{ .avx, null, null, null }, |
| | 89951 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 89952 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 89953 | .patterns = &.{ |
| | 89954 | .{ .src = .{ .mem, .none, .none } }, |
| | 89955 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 89956 | }, |
| | 89957 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 89958 | .each = .{ .once = &.{ |
| | 89959 | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| | 89960 | } }, |
| | 89961 | }, .{ |
| | 89962 | .required_features = .{ .sse4_1, null, null, null }, |
| | 89963 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 89964 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 89965 | .patterns = &.{ |
| | 89966 | .{ .src = .{ .mem, .none, .none } }, |
| | 89967 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 89968 | }, |
| | 89969 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 89970 | .each = .{ .once = &.{ |
| | 89971 | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| | 89972 | } }, |
| | 89973 | }, .{ |
| | 89974 | .required_features = .{ .sse4_1, null, null, null }, |
| | 89975 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 89976 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 89977 | .patterns = &.{ |
| | 89978 | .{ .src = .{ .mem, .none, .none } }, |
| | 89979 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 89980 | }, |
| | 89981 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 89982 | .each = .{ .once = &.{ |
| | 89983 | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| | 89984 | } }, |
| | 89985 | }, .{ |
| | 89986 | .required_features = .{ .sse2, null, null, null }, |
| | 89987 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 89988 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 89989 | .patterns = &.{ |
| | 89990 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 89991 | }, |
| | 89992 | .extra_temps = .{ |
| | 89993 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 89994 | .unused, |
| | 89995 | .unused, |
| | 89996 | .unused, |
| | 89997 | .unused, |
| | 89998 | .unused, |
| | 89999 | .unused, |
| | 90000 | .unused, |
| | 90001 | .unused, |
| | 90002 | .unused, |
| | 90003 | .unused, |
| | 90004 | }, |
| | 90005 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 90006 | .each = .{ .once = &.{ |
| | 90007 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 90008 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| | 90009 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| | 90010 | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, |
| | 90011 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| | 90012 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| | 90013 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| | 90014 | } }, |
| | 90015 | }, .{ |
| | 90016 | .required_features = .{ .sse2, null, null, null }, |
| | 90017 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 90018 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 90019 | .patterns = &.{ |
| | 90020 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 90021 | }, |
| | 90022 | .extra_temps = .{ |
| | 90023 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 90024 | .unused, |
| | 90025 | .unused, |
| | 90026 | .unused, |
| | 90027 | .unused, |
| | 90028 | .unused, |
| | 90029 | .unused, |
| | 90030 | .unused, |
| | 90031 | .unused, |
| | 90032 | .unused, |
| | 90033 | .unused, |
| | 90034 | }, |
| | 90035 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 90036 | .each = .{ .once = &.{ |
| | 90037 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 90038 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| | 90039 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| | 90040 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| | 90041 | } }, |
| | 90042 | }, .{ |
| | 90043 | .required_features = .{ .avx2, null, null, null }, |
| | 90044 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| | 90045 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 90046 | .patterns = &.{ |
| | 90047 | .{ .src = .{ .mem, .none, .none } }, |
| | 90048 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90049 | }, |
| | 90050 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90051 | .each = .{ .once = &.{ |
| | 90052 | .{ ._, .vp_q, .movsxb, .dst0y, .src0d, ._, ._ }, |
| | 90053 | } }, |
| | 90054 | }, .{ |
| | 90055 | .required_features = .{ .avx2, null, null, null }, |
| | 90056 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| | 90057 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 90058 | .patterns = &.{ |
| | 90059 | .{ .src = .{ .mem, .none, .none } }, |
| | 90060 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90061 | }, |
| | 90062 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90063 | .each = .{ .once = &.{ |
| | 90064 | .{ ._, .vp_q, .movzxb, .dst0y, .src0d, ._, ._ }, |
| | 90065 | } }, |
| | 90066 | }, .{ |
| | 90067 | .required_features = .{ .avx2, null, null, null }, |
| | 90068 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| | 90069 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 90070 | .patterns = &.{ |
| | 90071 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90072 | }, |
| | 90073 | .extra_temps = .{ |
| | 90074 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90075 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| | 90076 | .unused, |
| | 90077 | .unused, |
| | 90078 | .unused, |
| | 90079 | .unused, |
| | 90080 | .unused, |
| | 90081 | .unused, |
| | 90082 | .unused, |
| | 90083 | .unused, |
| | 90084 | .unused, |
| | 90085 | }, |
| | 90086 | .dst_temps = .{ .mem, .unused }, |
| | 90087 | .clobbers = .{ .eflags = true }, |
| | 90088 | .each = .{ .once = &.{ |
| | 90089 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90090 | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90091 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| | 90092 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 90093 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90094 | } }, |
| | 90095 | }, .{ |
| | 90096 | .required_features = .{ .avx2, null, null, null }, |
| | 90097 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| | 90098 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 90099 | .patterns = &.{ |
| | 90100 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90101 | }, |
| | 90102 | .extra_temps = .{ |
| | 90103 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90104 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| | 90105 | .unused, |
| | 90106 | .unused, |
| | 90107 | .unused, |
| | 90108 | .unused, |
| | 90109 | .unused, |
| | 90110 | .unused, |
| | 90111 | .unused, |
| | 90112 | .unused, |
| | 90113 | .unused, |
| | 90114 | }, |
| | 90115 | .dst_temps = .{ .mem, .unused }, |
| | 90116 | .clobbers = .{ .eflags = true }, |
| | 90117 | .each = .{ .once = &.{ |
| | 90118 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90119 | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90120 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| | 90121 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 90122 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90123 | } }, |
| | 90124 | }, .{ |
| | 90125 | .required_features = .{ .avx, null, null, null }, |
| | 90126 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 90127 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 90128 | .patterns = &.{ |
| | 90129 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90130 | }, |
| | 90131 | .extra_temps = .{ |
| | 90132 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90133 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 90134 | .unused, |
| | 90135 | .unused, |
| | 90136 | .unused, |
| | 90137 | .unused, |
| | 90138 | .unused, |
| | 90139 | .unused, |
| | 90140 | .unused, |
| | 90141 | .unused, |
| | 90142 | .unused, |
| | 90143 | }, |
| | 90144 | .dst_temps = .{ .mem, .unused }, |
| | 90145 | .clobbers = .{ .eflags = true }, |
| | 90146 | .each = .{ .once = &.{ |
| | 90147 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90148 | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90149 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90150 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 90151 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90152 | } }, |
| | 90153 | }, .{ |
| | 90154 | .required_features = .{ .avx, null, null, null }, |
| | 90155 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 90156 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 90157 | .patterns = &.{ |
| | 90158 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90159 | }, |
| | 90160 | .extra_temps = .{ |
| | 90161 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90162 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 90163 | .unused, |
| | 90164 | .unused, |
| | 90165 | .unused, |
| | 90166 | .unused, |
| | 90167 | .unused, |
| | 90168 | .unused, |
| | 90169 | .unused, |
| | 90170 | .unused, |
| | 90171 | .unused, |
| | 90172 | }, |
| | 90173 | .dst_temps = .{ .mem, .unused }, |
| | 90174 | .clobbers = .{ .eflags = true }, |
| | 90175 | .each = .{ .once = &.{ |
| | 90176 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90177 | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90178 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90179 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 90180 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90181 | } }, |
| | 90182 | }, .{ |
| | 90183 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90184 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 90185 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 90186 | .patterns = &.{ |
| | 90187 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90188 | }, |
| | 90189 | .extra_temps = .{ |
| | 90190 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90191 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 90192 | .unused, |
| | 90193 | .unused, |
| | 90194 | .unused, |
| | 90195 | .unused, |
| | 90196 | .unused, |
| | 90197 | .unused, |
| | 90198 | .unused, |
| | 90199 | .unused, |
| | 90200 | .unused, |
| | 90201 | }, |
| | 90202 | .dst_temps = .{ .mem, .unused }, |
| | 90203 | .clobbers = .{ .eflags = true }, |
| | 90204 | .each = .{ .once = &.{ |
| | 90205 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90206 | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90207 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90208 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 90209 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90210 | } }, |
| | 90211 | }, .{ |
| | 90212 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90213 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| | 90214 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 90215 | .patterns = &.{ |
| | 90216 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90217 | }, |
| | 90218 | .extra_temps = .{ |
| | 90219 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90220 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 90221 | .unused, |
| | 90222 | .unused, |
| | 90223 | .unused, |
| | 90224 | .unused, |
| | 90225 | .unused, |
| | 90226 | .unused, |
| | 90227 | .unused, |
| | 90228 | .unused, |
| | 90229 | .unused, |
| | 90230 | }, |
| | 90231 | .dst_temps = .{ .mem, .unused }, |
| | 90232 | .clobbers = .{ .eflags = true }, |
| | 90233 | .each = .{ .once = &.{ |
| | 90234 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90235 | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90236 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90237 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 90238 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90239 | } }, |
| | 90240 | }, .{ |
| | 90241 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 90242 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90243 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 90244 | .patterns = &.{ |
| | 90245 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90246 | }, |
| | 90247 | .extra_temps = .{ |
| | 90248 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90249 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 90250 | .unused, |
| | 90251 | .unused, |
| | 90252 | .unused, |
| | 90253 | .unused, |
| | 90254 | .unused, |
| | 90255 | .unused, |
| | 90256 | .unused, |
| | 90257 | .unused, |
| | 90258 | .unused, |
| | 90259 | }, |
| | 90260 | .dst_temps = .{ .mem, .unused }, |
| | 90261 | .clobbers = .{ .eflags = true }, |
| | 90262 | .each = .{ .once = &.{ |
| | 90263 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90264 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90265 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 90266 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 90267 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90268 | } }, |
| | 90269 | }, .{ |
| | 90270 | .required_features = .{ .@"64bit", null, null, null }, |
| | 90271 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90272 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 90273 | .patterns = &.{ |
| | 90274 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90275 | }, |
| | 90276 | .extra_temps = .{ |
| | 90277 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90278 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 90279 | .unused, |
| | 90280 | .unused, |
| | 90281 | .unused, |
| | 90282 | .unused, |
| | 90283 | .unused, |
| | 90284 | .unused, |
| | 90285 | .unused, |
| | 90286 | .unused, |
| | 90287 | .unused, |
| | 90288 | }, |
| | 90289 | .dst_temps = .{ .mem, .unused }, |
| | 90290 | .clobbers = .{ .eflags = true }, |
| | 90291 | .each = .{ .once = &.{ |
| | 90292 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90293 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90294 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 90295 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 90296 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 90297 | } }, |
| | 90298 | }, .{ |
| | 90299 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 90300 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90301 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 90302 | .patterns = &.{ |
| | 90303 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90304 | }, |
| | 90305 | .extra_temps = .{ |
| | 90306 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90307 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 90308 | .unused, |
| | 90309 | .unused, |
| | 90310 | .unused, |
| | 90311 | .unused, |
| | 90312 | .unused, |
| | 90313 | .unused, |
| | 90314 | .unused, |
| | 90315 | .unused, |
| | 90316 | .unused, |
| | 90317 | }, |
| | 90318 | .dst_temps = .{ .mem, .unused }, |
| | 90319 | .clobbers = .{ .eflags = true }, |
| | 90320 | .each = .{ .once = &.{ |
| | 90321 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90322 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90323 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 90324 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 90325 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90326 | } }, |
| | 90327 | }, .{ |
| | 90328 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90329 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 90330 | .patterns = &.{ |
| | 90331 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90332 | }, |
| | 90333 | .extra_temps = .{ |
| | 90334 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90335 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 90336 | .unused, |
| | 90337 | .unused, |
| | 90338 | .unused, |
| | 90339 | .unused, |
| | 90340 | .unused, |
| | 90341 | .unused, |
| | 90342 | .unused, |
| | 90343 | .unused, |
| | 90344 | .unused, |
| | 90345 | }, |
| | 90346 | .dst_temps = .{ .mem, .unused }, |
| | 90347 | .clobbers = .{ .eflags = true }, |
| | 90348 | .each = .{ .once = &.{ |
| | 90349 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90350 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90351 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 90352 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 90353 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 90354 | } }, |
| | 90355 | }, .{ |
| | 90356 | .required_features = .{ .avx, null, null, null }, |
| | 90357 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90358 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 90359 | .patterns = &.{ |
| | 90360 | .{ .src = .{ .mem, .none, .none } }, |
| | 90361 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90362 | }, |
| | 90363 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90364 | .each = .{ .once = &.{ |
| | 90365 | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| | 90366 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| | 90367 | } }, |
| | 90368 | }, .{ |
| | 90369 | .required_features = .{ .avx, null, null, null }, |
| | 90370 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90371 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 90372 | .patterns = &.{ |
| | 90373 | .{ .src = .{ .mem, .none, .none } }, |
| | 90374 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90375 | }, |
| | 90376 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90377 | .each = .{ .once = &.{ |
| | 90378 | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| | 90379 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| | 90380 | } }, |
| | 90381 | }, .{ |
| | 90382 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90383 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90384 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 90385 | .patterns = &.{ |
| | 90386 | .{ .src = .{ .mem, .none, .none } }, |
| | 90387 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90388 | }, |
| | 90389 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90390 | .each = .{ .once = &.{ |
| | 90391 | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| | 90392 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| | 90393 | } }, |
| | 90394 | }, .{ |
| | 90395 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90396 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90397 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 90398 | .patterns = &.{ |
| | 90399 | .{ .src = .{ .mem, .none, .none } }, |
| | 90400 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90401 | }, |
| | 90402 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90403 | .each = .{ .once = &.{ |
| | 90404 | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| | 90405 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| | 90406 | } }, |
| | 90407 | }, .{ |
| | 90408 | .required_features = .{ .sse2, null, null, null }, |
| | 90409 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90410 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 90411 | .patterns = &.{ |
| | 90412 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 90413 | }, |
| | 90414 | .extra_temps = .{ |
| | 90415 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 90416 | .unused, |
| | 90417 | .unused, |
| | 90418 | .unused, |
| | 90419 | .unused, |
| | 90420 | .unused, |
| | 90421 | .unused, |
| | 90422 | .unused, |
| | 90423 | .unused, |
| | 90424 | .unused, |
| | 90425 | .unused, |
| | 90426 | }, |
| | 90427 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 90428 | .each = .{ .once = &.{ |
| | 90429 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 90430 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| | 90431 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| | 90432 | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, |
| | 90433 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| | 90434 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| | 90435 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| | 90436 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, |
| | 90437 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| | 90438 | } }, |
| | 90439 | }, .{ |
| | 90440 | .required_features = .{ .sse2, null, null, null }, |
| | 90441 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90442 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 90443 | .patterns = &.{ |
| | 90444 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 90445 | }, |
| | 90446 | .extra_temps = .{ |
| | 90447 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 90448 | .unused, |
| | 90449 | .unused, |
| | 90450 | .unused, |
| | 90451 | .unused, |
| | 90452 | .unused, |
| | 90453 | .unused, |
| | 90454 | .unused, |
| | 90455 | .unused, |
| | 90456 | .unused, |
| | 90457 | .unused, |
| | 90458 | }, |
| | 90459 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 90460 | .each = .{ .once = &.{ |
| | 90461 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 90462 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| | 90463 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| | 90464 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| | 90465 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| | 90466 | } }, |
| | 90467 | }, .{ |
| | 90468 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 90469 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90470 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| | 90471 | .patterns = &.{ |
| | 90472 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90473 | }, |
| | 90474 | .extra_temps = .{ |
| | 90475 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90476 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 90477 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| | 90478 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 90479 | .unused, |
| | 90480 | .unused, |
| | 90481 | .unused, |
| | 90482 | .unused, |
| | 90483 | .unused, |
| | 90484 | .unused, |
| | 90485 | .unused, |
| | 90486 | }, |
| | 90487 | .dst_temps = .{ .mem, .unused }, |
| | 90488 | .clobbers = .{ .eflags = true }, |
| | 90489 | .each = .{ .once = &.{ |
| | 90490 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90491 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| | 90492 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90493 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 90494 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, |
| | 90495 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 90496 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 90497 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 90498 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90499 | } }, |
| | 90500 | }, .{ |
| | 90501 | .required_features = .{ .@"64bit", null, null, null }, |
| | 90502 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90503 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| | 90504 | .patterns = &.{ |
| | 90505 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90506 | }, |
| | 90507 | .extra_temps = .{ |
| | 90508 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90509 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 90510 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| | 90511 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 90512 | .unused, |
| | 90513 | .unused, |
| | 90514 | .unused, |
| | 90515 | .unused, |
| | 90516 | .unused, |
| | 90517 | .unused, |
| | 90518 | .unused, |
| | 90519 | }, |
| | 90520 | .dst_temps = .{ .mem, .unused }, |
| | 90521 | .clobbers = .{ .eflags = true }, |
| | 90522 | .each = .{ .once = &.{ |
| | 90523 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90524 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| | 90525 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90526 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 90527 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, |
| | 90528 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 90529 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 90530 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 90531 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 90532 | } }, |
| | 90533 | }, .{ |
| | 90534 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 90535 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90536 | .dst_constraints = .{ .any_scalar_int, .any }, |
| | 90537 | .patterns = &.{ |
| | 90538 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90539 | }, |
| | 90540 | .extra_temps = .{ |
| | 90541 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90542 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 90543 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 90544 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 90545 | .unused, |
| | 90546 | .unused, |
| | 90547 | .unused, |
| | 90548 | .unused, |
| | 90549 | .unused, |
| | 90550 | .unused, |
| | 90551 | .unused, |
| | 90552 | }, |
| | 90553 | .dst_temps = .{ .mem, .unused }, |
| | 90554 | .clobbers = .{ .eflags = true }, |
| | 90555 | .each = .{ .once = &.{ |
| | 90556 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90557 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| | 90558 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90559 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 90560 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 90561 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 90562 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 90563 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 90564 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90565 | } }, |
| | 90566 | }, .{ |
| | 90567 | .required_features = .{ .@"64bit", null, null, null }, |
| | 90568 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 90569 | .dst_constraints = .{ .any_scalar_int, .any }, |
| | 90570 | .patterns = &.{ |
| | 90571 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90572 | }, |
| | 90573 | .extra_temps = .{ |
| | 90574 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90575 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 90576 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 90577 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 90578 | .unused, |
| | 90579 | .unused, |
| | 90580 | .unused, |
| | 90581 | .unused, |
| | 90582 | .unused, |
| | 90583 | .unused, |
| | 90584 | .unused, |
| | 90585 | }, |
| | 90586 | .dst_temps = .{ .mem, .unused }, |
| | 90587 | .clobbers = .{ .eflags = true }, |
| | 90588 | .each = .{ .once = &.{ |
| | 90589 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90590 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| | 90591 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90592 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 90593 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 90594 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 90595 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 90596 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 90597 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 90598 | } }, |
| | 90599 | }, .{ |
| | 90600 | .required_features = .{ .avx, null, null, null }, |
| | 90601 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90602 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90603 | .patterns = &.{ |
| | 90604 | .{ .src = .{ .mem, .none, .none } }, |
| | 90605 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90606 | }, |
| | 90607 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90608 | .each = .{ .once = &.{ |
| | 90609 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| | 90610 | } }, |
| | 90611 | }, .{ |
| | 90612 | .required_features = .{ .avx, null, null, null }, |
| | 90613 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90614 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90615 | .patterns = &.{ |
| | 90616 | .{ .src = .{ .mem, .none, .none } }, |
| | 90617 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90618 | }, |
| | 90619 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90620 | .each = .{ .once = &.{ |
| | 90621 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| | 90622 | } }, |
| | 90623 | }, .{ |
| | 90624 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90625 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90626 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90627 | .patterns = &.{ |
| | 90628 | .{ .src = .{ .mem, .none, .none } }, |
| | 90629 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90630 | }, |
| | 90631 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90632 | .each = .{ .once = &.{ |
| | 90633 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| | 90634 | } }, |
| | 90635 | }, .{ |
| | 90636 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90637 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90638 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90639 | .patterns = &.{ |
| | 90640 | .{ .src = .{ .mem, .none, .none } }, |
| | 90641 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90642 | }, |
| | 90643 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90644 | .each = .{ .once = &.{ |
| | 90645 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| | 90646 | } }, |
| | 90647 | }, .{ |
| | 90648 | .required_features = .{ .sse2, null, null, null }, |
| | 90649 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90650 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90651 | .patterns = &.{ |
| | 90652 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 90653 | }, |
| | 90654 | .extra_temps = .{ |
| | 90655 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| | 90656 | .unused, |
| | 90657 | .unused, |
| | 90658 | .unused, |
| | 90659 | .unused, |
| | 90660 | .unused, |
| | 90661 | .unused, |
| | 90662 | .unused, |
| | 90663 | .unused, |
| | 90664 | .unused, |
| | 90665 | .unused, |
| | 90666 | }, |
| | 90667 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 90668 | .each = .{ .once = &.{ |
| | 90669 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 90670 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| | 90671 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| | 90672 | } }, |
| | 90673 | }, .{ |
| | 90674 | .required_features = .{ .sse2, null, null, null }, |
| | 90675 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90676 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90677 | .patterns = &.{ |
| | 90678 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 90679 | }, |
| | 90680 | .extra_temps = .{ |
| | 90681 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 90682 | .unused, |
| | 90683 | .unused, |
| | 90684 | .unused, |
| | 90685 | .unused, |
| | 90686 | .unused, |
| | 90687 | .unused, |
| | 90688 | .unused, |
| | 90689 | .unused, |
| | 90690 | .unused, |
| | 90691 | .unused, |
| | 90692 | }, |
| | 90693 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 90694 | .each = .{ .once = &.{ |
| | 90695 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 90696 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| | 90697 | } }, |
| | 90698 | }, .{ |
| | 90699 | .required_features = .{ .avx2, null, null, null }, |
| | 90700 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 90701 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 90702 | .patterns = &.{ |
| | 90703 | .{ .src = .{ .mem, .none, .none } }, |
| | 90704 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90705 | }, |
| | 90706 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90707 | .each = .{ .once = &.{ |
| | 90708 | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, |
| | 90709 | } }, |
| | 90710 | }, .{ |
| | 90711 | .required_features = .{ .avx2, null, null, null }, |
| | 90712 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 90713 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 90714 | .patterns = &.{ |
| | 90715 | .{ .src = .{ .mem, .none, .none } }, |
| | 90716 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 90717 | }, |
| | 90718 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 90719 | .each = .{ .once = &.{ |
| | 90720 | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, |
| | 90721 | } }, |
| | 90722 | }, .{ |
| | 90723 | .required_features = .{ .avx2, null, null, null }, |
| | 90724 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 90725 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 90726 | .patterns = &.{ |
| | 90727 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90728 | }, |
| | 90729 | .extra_temps = .{ |
| | 90730 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90731 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| | 90732 | .unused, |
| | 90733 | .unused, |
| | 90734 | .unused, |
| | 90735 | .unused, |
| | 90736 | .unused, |
| | 90737 | .unused, |
| | 90738 | .unused, |
| | 90739 | .unused, |
| | 90740 | .unused, |
| | 90741 | }, |
| | 90742 | .dst_temps = .{ .mem, .unused }, |
| | 90743 | .clobbers = .{ .eflags = true }, |
| | 90744 | .each = .{ .once = &.{ |
| | 90745 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90746 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90747 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| | 90748 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 90749 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90750 | } }, |
| | 90751 | }, .{ |
| | 90752 | .required_features = .{ .avx2, null, null, null }, |
| | 90753 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 90754 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 90755 | .patterns = &.{ |
| | 90756 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90757 | }, |
| | 90758 | .extra_temps = .{ |
| | 90759 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90760 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| | 90761 | .unused, |
| | 90762 | .unused, |
| | 90763 | .unused, |
| | 90764 | .unused, |
| | 90765 | .unused, |
| | 90766 | .unused, |
| | 90767 | .unused, |
| | 90768 | .unused, |
| | 90769 | .unused, |
| | 90770 | }, |
| | 90771 | .dst_temps = .{ .mem, .unused }, |
| | 90772 | .clobbers = .{ .eflags = true }, |
| | 90773 | .each = .{ .once = &.{ |
| | 90774 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90775 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90776 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| | 90777 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 90778 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90779 | } }, |
| | 90780 | }, .{ |
| | 90781 | .required_features = .{ .avx, null, null, null }, |
| | 90782 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90783 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90784 | .patterns = &.{ |
| | 90785 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90786 | }, |
| | 90787 | .extra_temps = .{ |
| | 90788 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90789 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| | 90790 | .unused, |
| | 90791 | .unused, |
| | 90792 | .unused, |
| | 90793 | .unused, |
| | 90794 | .unused, |
| | 90795 | .unused, |
| | 90796 | .unused, |
| | 90797 | .unused, |
| | 90798 | .unused, |
| | 90799 | }, |
| | 90800 | .dst_temps = .{ .mem, .unused }, |
| | 90801 | .clobbers = .{ .eflags = true }, |
| | 90802 | .each = .{ .once = &.{ |
| | 90803 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90804 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90805 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90806 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 90807 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90808 | } }, |
| | 90809 | }, .{ |
| | 90810 | .required_features = .{ .avx, null, null, null }, |
| | 90811 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90812 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90813 | .patterns = &.{ |
| | 90814 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90815 | }, |
| | 90816 | .extra_temps = .{ |
| | 90817 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90818 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 90819 | .unused, |
| | 90820 | .unused, |
| | 90821 | .unused, |
| | 90822 | .unused, |
| | 90823 | .unused, |
| | 90824 | .unused, |
| | 90825 | .unused, |
| | 90826 | .unused, |
| | 90827 | .unused, |
| | 90828 | }, |
| | 90829 | .dst_temps = .{ .mem, .unused }, |
| | 90830 | .clobbers = .{ .eflags = true }, |
| | 90831 | .each = .{ .once = &.{ |
| | 90832 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90833 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90834 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90835 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 90836 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90837 | } }, |
| | 90838 | }, .{ |
| | 90839 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90840 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90841 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90842 | .patterns = &.{ |
| | 90843 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90844 | }, |
| | 90845 | .extra_temps = .{ |
| | 90846 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90847 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| | 90848 | .unused, |
| | 90849 | .unused, |
| | 90850 | .unused, |
| | 90851 | .unused, |
| | 90852 | .unused, |
| | 90853 | .unused, |
| | 90854 | .unused, |
| | 90855 | .unused, |
| | 90856 | .unused, |
| | 90857 | }, |
| | 90858 | .dst_temps = .{ .mem, .unused }, |
| | 90859 | .clobbers = .{ .eflags = true }, |
| | 90860 | .each = .{ .once = &.{ |
| | 90861 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90862 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90863 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90864 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 90865 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90866 | } }, |
| | 90867 | }, .{ |
| | 90868 | .required_features = .{ .sse4_1, null, null, null }, |
| | 90869 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 90870 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 90871 | .patterns = &.{ |
| | 90872 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90873 | }, |
| | 90874 | .extra_temps = .{ |
| | 90875 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90876 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 90877 | .unused, |
| | 90878 | .unused, |
| | 90879 | .unused, |
| | 90880 | .unused, |
| | 90881 | .unused, |
| | 90882 | .unused, |
| | 90883 | .unused, |
| | 90884 | .unused, |
| | 90885 | .unused, |
| | 90886 | }, |
| | 90887 | .dst_temps = .{ .mem, .unused }, |
| | 90888 | .clobbers = .{ .eflags = true }, |
| | 90889 | .each = .{ .once = &.{ |
| | 90890 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90891 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90892 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 90893 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 90894 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90895 | } }, |
| | 90896 | }, .{ |
| | 90897 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 90898 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 90899 | .patterns = &.{ |
| | 90900 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90901 | }, |
| | 90902 | .extra_temps = .{ |
| | 90903 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90904 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 90905 | .unused, |
| | 90906 | .unused, |
| | 90907 | .unused, |
| | 90908 | .unused, |
| | 90909 | .unused, |
| | 90910 | .unused, |
| | 90911 | .unused, |
| | 90912 | .unused, |
| | 90913 | .unused, |
| | 90914 | }, |
| | 90915 | .dst_temps = .{ .mem, .unused }, |
| | 90916 | .clobbers = .{ .eflags = true }, |
| | 90917 | .each = .{ .once = &.{ |
| | 90918 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90919 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90920 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 90921 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 90922 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 90923 | } }, |
| | 90924 | }, .{ |
| | 90925 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 90926 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 90927 | .patterns = &.{ |
| | 90928 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 90929 | }, |
| | 90930 | .extra_temps = .{ |
| | 90931 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 90932 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 90933 | .unused, |
| | 90934 | .unused, |
| | 90935 | .unused, |
| | 90936 | .unused, |
| | 90937 | .unused, |
| | 90938 | .unused, |
| | 90939 | .unused, |
| | 90940 | .unused, |
| | 90941 | .unused, |
| | 90942 | }, |
| | 90943 | .dst_temps = .{ .mem, .unused }, |
| | 90944 | .clobbers = .{ .eflags = true }, |
| | 90945 | .each = .{ .once = &.{ |
| | 90946 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 90947 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 90948 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 90949 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 90950 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89941 | } }, | 90951 | } }, |
| 89942 | }, .{ | 90952 | }, .{ |
| 89943 | .required_features = .{ .avx, null, null, null }, | 90953 | .required_features = .{ .avx, null, null, null }, |
| 89944 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 90954 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 89945 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 90955 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89946 | .patterns = &.{ | 90956 | .patterns = &.{ |
| 89947 | .{ .src = .{ .mem, .none, .none } }, | 90957 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -89949,11 +90959,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -89949,11 +90959,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89949 | }, | 90959 | }, |
| 89950 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 90960 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89951 | .each = .{ .once = &.{ | 90961 | .each = .{ .once = &.{ |
| 89952 | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, | 90962 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 89953 | } }, | 90963 | } }, |
| 89954 | }, .{ | 90964 | }, .{ |
| 89955 | .required_features = .{ .avx, null, null, null }, | 90965 | .required_features = .{ .avx, null, null, null }, |
| 89956 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 90966 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 89957 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 90967 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89958 | .patterns = &.{ | 90968 | .patterns = &.{ |
| 89959 | .{ .src = .{ .mem, .none, .none } }, | 90969 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -89961,11 +90971,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -89961,11 +90971,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89961 | }, | 90971 | }, |
| 89962 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 90972 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89963 | .each = .{ .once = &.{ | 90973 | .each = .{ .once = &.{ |
| 89964 | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, | 90974 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 89965 | } }, | 90975 | } }, |
| 89966 | }, .{ | 90976 | }, .{ |
| 89967 | .required_features = .{ .sse4_1, null, null, null }, | 90977 | .required_features = .{ .sse4_1, null, null, null }, |
| 89968 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 90978 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 89969 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 90979 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89970 | .patterns = &.{ | 90980 | .patterns = &.{ |
| 89971 | .{ .src = .{ .mem, .none, .none } }, | 90981 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -89973,11 +90983,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -89973,11 +90983,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89973 | }, | 90983 | }, |
| 89974 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 90984 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89975 | .each = .{ .once = &.{ | 90985 | .each = .{ .once = &.{ |
| 89976 | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, | 90986 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 89977 | } }, | 90987 | } }, |
| 89978 | }, .{ | 90988 | }, .{ |
| 89979 | .required_features = .{ .sse4_1, null, null, null }, | 90989 | .required_features = .{ .sse4_1, null, null, null }, |
| 89980 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 90990 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 89981 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 90991 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89982 | .patterns = &.{ | 90992 | .patterns = &.{ |
| 89983 | .{ .src = .{ .mem, .none, .none } }, | 90993 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -89985,17 +90995,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -89985,17 +90995,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89985 | }, | 90995 | }, |
| 89986 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 90996 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89987 | .each = .{ .once = &.{ | 90997 | .each = .{ .once = &.{ |
| 89988 | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, | 90998 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 89989 | } }, | 90999 | } }, |
| 89990 | }, .{ | 91000 | }, .{ |
| 89991 | .required_features = .{ .sse2, null, null, null }, | 91001 | .required_features = .{ .sse2, null, null, null }, |
| 89992 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 91002 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 89993 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 91003 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89994 | .patterns = &.{ | 91004 | .patterns = &.{ |
| 89995 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91005 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 89996 | }, | 91006 | }, |
| 89997 | .extra_temps = .{ | 91007 | .extra_temps = .{ |
| 89998 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 91008 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 89999 | .unused, | 91009 | .unused, |
| 90000 | .unused, | 91010 | .unused, |
| 90001 | .unused, | 91011 | .unused, |
| ... | @@ -90010,22 +91020,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90010,22 +91020,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90010 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91020 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90011 | .each = .{ .once = &.{ | 91021 | .each = .{ .once = &.{ |
| 90012 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91022 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90013 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, | 91023 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90014 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | | |
| 90015 | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, | | |
| 90016 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 91024 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90017 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | 91025 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| 90018 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 91026 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90019 | } }, | 91027 | } }, |
| 90020 | }, .{ | 91028 | }, .{ |
| 90021 | .required_features = .{ .sse2, null, null, null }, | 91029 | .required_features = .{ .sse2, null, null, null }, |
| 90022 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 91030 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90023 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 91031 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90024 | .patterns = &.{ | 91032 | .patterns = &.{ |
| 90025 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91033 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90026 | }, | 91034 | }, |
| 90027 | .extra_temps = .{ | 91035 | .extra_temps = .{ |
| 90028 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 91036 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 90029 | .unused, | 91037 | .unused, |
| 90030 | .unused, | 91038 | .unused, |
| 90031 | .unused, | 91039 | .unused, |
| ... | @@ -90040,13 +91048,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90040,13 +91048,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90040 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91048 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90041 | .each = .{ .once = &.{ | 91049 | .each = .{ .once = &.{ |
| 90042 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91050 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90043 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | | |
| 90044 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 91051 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90045 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 91052 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90046 | } }, | 91053 | } }, |
| 90047 | }, .{ | 91054 | }, .{ |
| 90048 | .required_features = .{ .avx2, null, null, null }, | 91055 | .required_features = .{ .avx2, null, null, null }, |
| 90049 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 91056 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90050 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | 91057 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90051 | .patterns = &.{ | 91058 | .patterns = &.{ |
| 90052 | .{ .src = .{ .mem, .none, .none } }, | 91059 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -90054,11 +91061,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90054,11 +91061,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90054 | }, | 91061 | }, |
| 90055 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91062 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90056 | .each = .{ .once = &.{ | 91063 | .each = .{ .once = &.{ |
| 90057 | .{ ._, .vp_q, .movsxb, .dst0y, .src0d, ._, ._ }, | 91064 | .{ ._, .vp_q, .movsxw, .dst0y, .src0q, ._, ._ }, |
| 90058 | } }, | 91065 | } }, |
| 90059 | }, .{ | 91066 | }, .{ |
| 90060 | .required_features = .{ .avx2, null, null, null }, | 91067 | .required_features = .{ .avx2, null, null, null }, |
| 90061 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 91068 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90062 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, | 91069 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90063 | .patterns = &.{ | 91070 | .patterns = &.{ |
| 90064 | .{ .src = .{ .mem, .none, .none } }, | 91071 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -90066,11 +91073,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90066,11 +91073,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90066 | }, | 91073 | }, |
| 90067 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91074 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90068 | .each = .{ .once = &.{ | 91075 | .each = .{ .once = &.{ |
| 90069 | .{ ._, .vp_q, .movzxb, .dst0y, .src0d, ._, ._ }, | 91076 | .{ ._, .vp_q, .movzxw, .dst0y, .src0q, ._, ._ }, |
| 90070 | } }, | 91077 | } }, |
| 90071 | }, .{ | 91078 | }, .{ |
| 90072 | .required_features = .{ .avx2, null, null, null }, | 91079 | .required_features = .{ .avx2, null, null, null }, |
| 90073 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 91080 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90074 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | 91081 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90075 | .patterns = &.{ | 91082 | .patterns = &.{ |
| 90076 | .{ .src = .{ .to_mem, .none, .none } }, | 91083 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90092,14 +91099,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90092,14 +91099,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90092 | .clobbers = .{ .eflags = true }, | 91099 | .clobbers = .{ .eflags = true }, |
| 90093 | .each = .{ .once = &.{ | 91100 | .each = .{ .once = &.{ |
| 90094 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91101 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90095 | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 91102 | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90096 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 91103 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90097 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 91104 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90098 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91105 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90099 | } }, | 91106 | } }, |
| 90100 | }, .{ | 91107 | }, .{ |
| 90101 | .required_features = .{ .avx2, null, null, null }, | 91108 | .required_features = .{ .avx2, null, null, null }, |
| 90102 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 91109 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90103 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, | 91110 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90104 | .patterns = &.{ | 91111 | .patterns = &.{ |
| 90105 | .{ .src = .{ .to_mem, .none, .none } }, | 91112 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90121,14 +91128,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90121,14 +91128,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90121 | .clobbers = .{ .eflags = true }, | 91128 | .clobbers = .{ .eflags = true }, |
| 90122 | .each = .{ .once = &.{ | 91129 | .each = .{ .once = &.{ |
| 90123 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91130 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90124 | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 91131 | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90125 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 91132 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90126 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 91133 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90127 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90128 | } }, | 91135 | } }, |
| 90129 | }, .{ | 91136 | }, .{ |
| 90130 | .required_features = .{ .avx, null, null, null }, | 91137 | .required_features = .{ .avx, null, null, null }, |
| 90131 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 91138 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90132 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 91139 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90133 | .patterns = &.{ | 91140 | .patterns = &.{ |
| 90134 | .{ .src = .{ .to_mem, .none, .none } }, | 91141 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90150,14 +91157,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90150,14 +91157,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90150 | .clobbers = .{ .eflags = true }, | 91157 | .clobbers = .{ .eflags = true }, |
| 90151 | .each = .{ .once = &.{ | 91158 | .each = .{ .once = &.{ |
| 90152 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91159 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90153 | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 91160 | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90154 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91161 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90155 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 91162 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90156 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91163 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90157 | } }, | 91164 | } }, |
| 90158 | }, .{ | 91165 | }, .{ |
| 90159 | .required_features = .{ .avx, null, null, null }, | 91166 | .required_features = .{ .avx, null, null, null }, |
| 90160 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 91167 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90161 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 91168 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90162 | .patterns = &.{ | 91169 | .patterns = &.{ |
| 90163 | .{ .src = .{ .to_mem, .none, .none } }, | 91170 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90179,14 +91186,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90179,14 +91186,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90179 | .clobbers = .{ .eflags = true }, | 91186 | .clobbers = .{ .eflags = true }, |
| 90180 | .each = .{ .once = &.{ | 91187 | .each = .{ .once = &.{ |
| 90181 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91188 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90182 | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 91189 | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90183 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91190 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90184 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 91191 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90185 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91192 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90186 | } }, | 91193 | } }, |
| 90187 | }, .{ | 91194 | }, .{ |
| 90188 | .required_features = .{ .sse4_1, null, null, null }, | 91195 | .required_features = .{ .sse4_1, null, null, null }, |
| 90189 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 91196 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90190 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 91197 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90191 | .patterns = &.{ | 91198 | .patterns = &.{ |
| 90192 | .{ .src = .{ .to_mem, .none, .none } }, | 91199 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90208,14 +91215,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90208,14 +91215,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90208 | .clobbers = .{ .eflags = true }, | 91215 | .clobbers = .{ .eflags = true }, |
| 90209 | .each = .{ .once = &.{ | 91216 | .each = .{ .once = &.{ |
| 90210 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91217 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90211 | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 91218 | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90212 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91219 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90213 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 91220 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90214 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91221 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90215 | } }, | 91222 | } }, |
| 90216 | }, .{ | 91223 | }, .{ |
| 90217 | .required_features = .{ .sse4_1, null, null, null }, | 91224 | .required_features = .{ .sse4_1, null, null, null }, |
| 90218 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 91225 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90219 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 91226 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90220 | .patterns = &.{ | 91227 | .patterns = &.{ |
| 90221 | .{ .src = .{ .to_mem, .none, .none } }, | 91228 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90237,14 +91244,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90237,14 +91244,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90237 | .clobbers = .{ .eflags = true }, | 91244 | .clobbers = .{ .eflags = true }, |
| 90238 | .each = .{ .once = &.{ | 91245 | .each = .{ .once = &.{ |
| 90239 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91246 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90240 | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 91247 | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90241 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91248 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90242 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 91249 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90243 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91250 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90244 | } }, | 91251 | } }, |
| 90245 | }, .{ | 91252 | }, .{ |
| 90246 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 91253 | .required_features = .{ .@"64bit", null, null, null }, |
| 90247 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91254 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90248 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 91255 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 90249 | .patterns = &.{ | 91256 | .patterns = &.{ |
| 90250 | .{ .src = .{ .to_mem, .none, .none } }, | 91257 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90266,50 +91273,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90266,50 +91273,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90266 | .clobbers = .{ .eflags = true }, | 91273 | .clobbers = .{ .eflags = true }, |
| 90267 | .each = .{ .once = &.{ | 91274 | .each = .{ .once = &.{ |
| 90268 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91275 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90269 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 91276 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90270 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 91277 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 90271 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 91278 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 90272 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91279 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90273 | } }, | 91280 | } }, |
| 90274 | }, .{ | 91281 | }, .{ |
| 90275 | .required_features = .{ .@"64bit", null, null, null }, | 91282 | .required_features = .{ .@"64bit", null, null, null }, |
| 90276 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91283 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90277 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 90278 | .patterns = &.{ | | |
| 90279 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 90280 | }, | | |
| 90281 | .extra_temps = .{ | | |
| 90282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 90283 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 90284 | .unused, | | |
| 90285 | .unused, | | |
| 90286 | .unused, | | |
| 90287 | .unused, | | |
| 90288 | .unused, | | |
| 90289 | .unused, | | |
| 90290 | .unused, | | |
| 90291 | .unused, | | |
| 90292 | .unused, | | |
| 90293 | }, | | |
| 90294 | .dst_temps = .{ .mem, .unused }, | | |
| 90295 | .clobbers = .{ .eflags = true }, | | |
| 90296 | .each = .{ .once = &.{ | | |
| 90297 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 90298 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 90299 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 90300 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 90301 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 90302 | } }, | | |
| 90303 | }, .{ | | |
| 90304 | .required_features = .{ .slow_incdec, null, null, null }, | | |
| 90305 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | | |
| 90306 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | 91284 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 90307 | .patterns = &.{ | 91285 | .patterns = &.{ |
| 90308 | .{ .src = .{ .to_mem, .none, .none } }, | 91286 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90309 | }, | 91287 | }, |
| 90310 | .extra_temps = .{ | 91288 | .extra_temps = .{ |
| 90311 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91289 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90312 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 91290 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 90313 | .unused, | 91291 | .unused, |
| 90314 | .unused, | 91292 | .unused, |
| 90315 | .unused, | 91293 | .unused, |
| ... | @@ -90324,42 +91302,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90324,42 +91302,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90324 | .clobbers = .{ .eflags = true }, | 91302 | .clobbers = .{ .eflags = true }, |
| 90325 | .each = .{ .once = &.{ | 91303 | .each = .{ .once = &.{ |
| 90326 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91304 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90327 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 91305 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90328 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 91306 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 90329 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 91307 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 90330 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91308 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90331 | } }, | 91309 | } }, |
| 90332 | }, .{ | | |
| 90333 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | | |
| 90334 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 90335 | .patterns = &.{ | | |
| 90336 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 90337 | }, | | |
| 90338 | .extra_temps = .{ | | |
| 90339 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 90340 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 90341 | .unused, | | |
| 90342 | .unused, | | |
| 90343 | .unused, | | |
| 90344 | .unused, | | |
| 90345 | .unused, | | |
| 90346 | .unused, | | |
| 90347 | .unused, | | |
| 90348 | .unused, | | |
| 90349 | .unused, | | |
| 90350 | }, | | |
| 90351 | .dst_temps = .{ .mem, .unused }, | | |
| 90352 | .clobbers = .{ .eflags = true }, | | |
| 90353 | .each = .{ .once = &.{ | | |
| 90354 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 90355 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 90356 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 90357 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 90358 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 90359 | } }, | | |
| 90360 | }, .{ | 91310 | }, .{ |
| 90361 | .required_features = .{ .avx, null, null, null }, | 91311 | .required_features = .{ .avx, null, null, null }, |
| 90362 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91312 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90363 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 91313 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90364 | .patterns = &.{ | 91314 | .patterns = &.{ |
| 90365 | .{ .src = .{ .mem, .none, .none } }, | 91315 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -90367,12 +91317,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90367,12 +91317,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90367 | }, | 91317 | }, |
| 90368 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91318 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90369 | .each = .{ .once = &.{ | 91319 | .each = .{ .once = &.{ |
| 90370 | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, | 91320 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 90371 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | 91321 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 90372 | } }, | 91322 | } }, |
| 90373 | }, .{ | 91323 | }, .{ |
| 90374 | .required_features = .{ .avx, null, null, null }, | 91324 | .required_features = .{ .avx, null, null, null }, |
| 90375 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91325 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90376 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | 91326 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90377 | .patterns = &.{ | 91327 | .patterns = &.{ |
| 90378 | .{ .src = .{ .mem, .none, .none } }, | 91328 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -90380,12 +91330,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90380,12 +91330,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90380 | }, | 91330 | }, |
| 90381 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91331 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90382 | .each = .{ .once = &.{ | 91332 | .each = .{ .once = &.{ |
| 90383 | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, | 91333 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 90384 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | 91334 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 90385 | } }, | 91335 | } }, |
| 90386 | }, .{ | 91336 | }, .{ |
| 90387 | .required_features = .{ .sse4_1, null, null, null }, | 91337 | .required_features = .{ .sse4_1, null, null, null }, |
| 90388 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91338 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90389 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 91339 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90390 | .patterns = &.{ | 91340 | .patterns = &.{ |
| 90391 | .{ .src = .{ .mem, .none, .none } }, | 91341 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -90393,12 +91343,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90393,12 +91343,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90393 | }, | 91343 | }, |
| 90394 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91344 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90395 | .each = .{ .once = &.{ | 91345 | .each = .{ .once = &.{ |
| 90396 | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, | 91346 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 90397 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | 91347 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 90398 | } }, | 91348 | } }, |
| 90399 | }, .{ | 91349 | }, .{ |
| 90400 | .required_features = .{ .sse4_1, null, null, null }, | 91350 | .required_features = .{ .sse4_1, null, null, null }, |
| 90401 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91351 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90402 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | 91352 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90403 | .patterns = &.{ | 91353 | .patterns = &.{ |
| 90404 | .{ .src = .{ .mem, .none, .none } }, | 91354 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -90406,18 +91356,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90406,18 +91356,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90406 | }, | 91356 | }, |
| 90407 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91357 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90408 | .each = .{ .once = &.{ | 91358 | .each = .{ .once = &.{ |
| 90409 | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, | 91359 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 90410 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | 91360 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 90411 | } }, | 91361 | } }, |
| 90412 | }, .{ | 91362 | }, .{ |
| 90413 | .required_features = .{ .sse2, null, null, null }, | 91363 | .required_features = .{ .sse2, null, null, null }, |
| 90414 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91364 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90415 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 91365 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90416 | .patterns = &.{ | 91366 | .patterns = &.{ |
| 90417 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91367 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90418 | }, | 91368 | }, |
| 90419 | .extra_temps = .{ | 91369 | .extra_temps = .{ |
| 90420 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 91370 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 90421 | .unused, | 91371 | .unused, |
| 90422 | .unused, | 91372 | .unused, |
| 90423 | .unused, | 91373 | .unused, |
| ... | @@ -90432,9 +91382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90432,9 +91382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90432 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91382 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90433 | .each = .{ .once = &.{ | 91383 | .each = .{ .once = &.{ |
| 90434 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91384 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90435 | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, | 91385 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90436 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | | |
| 90437 | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, | | |
| 90438 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 91386 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90439 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | 91387 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| 90440 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 91388 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| ... | @@ -90443,13 +91391,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90443,13 +91391,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90443 | } }, | 91391 | } }, |
| 90444 | }, .{ | 91392 | }, .{ |
| 90445 | .required_features = .{ .sse2, null, null, null }, | 91393 | .required_features = .{ .sse2, null, null, null }, |
| 90446 | .src_constraints = .{ .{ .scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91394 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90447 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | 91395 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90448 | .patterns = &.{ | 91396 | .patterns = &.{ |
| 90449 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91397 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90450 | }, | 91398 | }, |
| 90451 | .extra_temps = .{ | 91399 | .extra_temps = .{ |
| 90452 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 91400 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 90453 | .unused, | 91401 | .unused, |
| 90454 | .unused, | 91402 | .unused, |
| 90455 | .unused, | 91403 | .unused, |
| ... | @@ -90464,47 +91412,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90464,47 +91412,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90464 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91412 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90465 | .each = .{ .once = &.{ | 91413 | .each = .{ .once = &.{ |
| 90466 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91414 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90467 | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, | | |
| 90468 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 91415 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90469 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 91416 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90470 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | 91417 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 90471 | } }, | 91418 | } }, |
| 90472 | }, .{ | | |
| 90473 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | | |
| 90474 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | | |
| 90475 | .dst_constraints = .{ .any_scalar_signed_int, .any }, | | |
| 90476 | .patterns = &.{ | | |
| 90477 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 90478 | }, | | |
| 90479 | .extra_temps = .{ | | |
| 90480 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 90481 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | | |
| 90482 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | | |
| 90483 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 90484 | .unused, | | |
| 90485 | .unused, | | |
| 90486 | .unused, | | |
| 90487 | .unused, | | |
| 90488 | .unused, | | |
| 90489 | .unused, | | |
| 90490 | .unused, | | |
| 90491 | }, | | |
| 90492 | .dst_temps = .{ .mem, .unused }, | | |
| 90493 | .clobbers = .{ .eflags = true }, | | |
| 90494 | .each = .{ .once = &.{ | | |
| 90495 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 90496 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | | |
| 90497 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 90498 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 90499 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | | |
| 90500 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | | |
| 90501 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 90502 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 90503 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 90504 | } }, | | |
| 90505 | }, .{ | 91419 | }, .{ |
| 90506 | .required_features = .{ .@"64bit", null, null, null }, | 91420 | .required_features = .{ .@"64bit", null, null, null }, |
| 90507 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91421 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90508 | .dst_constraints = .{ .any_scalar_signed_int, .any }, | 91422 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 90509 | .patterns = &.{ | 91423 | .patterns = &.{ |
| 90510 | .{ .src = .{ .to_mem, .none, .none } }, | 91424 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90527,50 +91441,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90527,50 +91441,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90527 | .each = .{ .once = &.{ | 91441 | .each = .{ .once = &.{ |
| 90528 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91442 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90529 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 91443 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 90530 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 91444 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90531 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 91445 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 90532 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | 91446 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, |
| 90533 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 91447 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 90534 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | 91448 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 90535 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 91449 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 90536 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 90537 | } }, | | |
| 90538 | }, .{ | | |
| 90539 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | | |
| 90540 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | | |
| 90541 | .dst_constraints = .{ .any_scalar_int, .any }, | | |
| 90542 | .patterns = &.{ | | |
| 90543 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 90544 | }, | | |
| 90545 | .extra_temps = .{ | | |
| 90546 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 90547 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | | |
| 90548 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | | |
| 90549 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 90550 | .unused, | | |
| 90551 | .unused, | | |
| 90552 | .unused, | | |
| 90553 | .unused, | | |
| 90554 | .unused, | | |
| 90555 | .unused, | | |
| 90556 | .unused, | | |
| 90557 | }, | | |
| 90558 | .dst_temps = .{ .mem, .unused }, | | |
| 90559 | .clobbers = .{ .eflags = true }, | | |
| 90560 | .each = .{ .once = &.{ | | |
| 90561 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 90562 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | | |
| 90563 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 90564 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 90565 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | | |
| 90566 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | | |
| 90567 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 90568 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 90569 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91450 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90570 | } }, | 91451 | } }, |
| 90571 | }, .{ | 91452 | }, .{ |
| 90572 | .required_features = .{ .@"64bit", null, null, null }, | 91453 | .required_features = .{ .@"64bit", null, null, null }, |
| 90573 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 91454 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90574 | .dst_constraints = .{ .any_scalar_int, .any }, | 91455 | .dst_constraints = .{ .any_scalar_int, .any }, |
| 90575 | .patterns = &.{ | 91456 | .patterns = &.{ |
| 90576 | .{ .src = .{ .to_mem, .none, .none } }, | 91457 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -90593,71 +91474,71 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90593,71 +91474,71 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90593 | .each = .{ .once = &.{ | 91474 | .each = .{ .once = &.{ |
| 90594 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91475 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90595 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 91476 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 90596 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 91477 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90597 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 91478 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 90598 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 91479 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 90599 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 91480 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 90600 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | 91481 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 90601 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 91482 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 90602 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 91483 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90603 | } }, | 91484 | } }, |
| 90604 | }, .{ | 91485 | }, .{ |
| 90605 | .required_features = .{ .avx, null, null, null }, | 91486 | .required_features = .{ .avx, null, null, null }, |
| 90606 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91487 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90607 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 91488 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90608 | .patterns = &.{ | 91489 | .patterns = &.{ |
| 90609 | .{ .src = .{ .mem, .none, .none } }, | 91490 | .{ .src = .{ .mem, .none, .none } }, |
| 90610 | .{ .src = .{ .to_sse, .none, .none } }, | 91491 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90611 | }, | 91492 | }, |
| 90612 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91493 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90613 | .each = .{ .once = &.{ | 91494 | .each = .{ .once = &.{ |
| 90614 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 91495 | .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, |
| 90615 | } }, | 91496 | } }, |
| 90616 | }, .{ | 91497 | }, .{ |
| 90617 | .required_features = .{ .avx, null, null, null }, | 91498 | .required_features = .{ .avx, null, null, null }, |
| 90618 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91499 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90619 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | 91500 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90620 | .patterns = &.{ | 91501 | .patterns = &.{ |
| 90621 | .{ .src = .{ .mem, .none, .none } }, | 91502 | .{ .src = .{ .mem, .none, .none } }, |
| 90622 | .{ .src = .{ .to_sse, .none, .none } }, | 91503 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90623 | }, | 91504 | }, |
| 90624 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91505 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90625 | .each = .{ .once = &.{ | 91506 | .each = .{ .once = &.{ |
| 90626 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 91507 | .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, |
| 90627 | } }, | 91508 | } }, |
| 90628 | }, .{ | 91509 | }, .{ |
| 90629 | .required_features = .{ .sse4_1, null, null, null }, | 91510 | .required_features = .{ .sse4_1, null, null, null }, |
| 90630 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91511 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90631 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 91512 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90632 | .patterns = &.{ | 91513 | .patterns = &.{ |
| 90633 | .{ .src = .{ .mem, .none, .none } }, | 91514 | .{ .src = .{ .mem, .none, .none } }, |
| 90634 | .{ .src = .{ .to_sse, .none, .none } }, | 91515 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90635 | }, | 91516 | }, |
| 90636 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91517 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90637 | .each = .{ .once = &.{ | 91518 | .each = .{ .once = &.{ |
| 90638 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 91519 | .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, |
| 90639 | } }, | 91520 | } }, |
| 90640 | }, .{ | 91521 | }, .{ |
| 90641 | .required_features = .{ .sse4_1, null, null, null }, | 91522 | .required_features = .{ .sse4_1, null, null, null }, |
| 90642 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91523 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90643 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | 91524 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90644 | .patterns = &.{ | 91525 | .patterns = &.{ |
| 90645 | .{ .src = .{ .mem, .none, .none } }, | 91526 | .{ .src = .{ .mem, .none, .none } }, |
| 90646 | .{ .src = .{ .to_sse, .none, .none } }, | 91527 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90647 | }, | 91528 | }, |
| 90648 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91529 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90649 | .each = .{ .once = &.{ | 91530 | .each = .{ .once = &.{ |
| 90650 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 91531 | .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, |
| 90651 | } }, | 91532 | } }, |
| 90652 | }, .{ | 91533 | }, .{ |
| 90653 | .required_features = .{ .sse2, null, null, null }, | 91534 | .required_features = .{ .sse2, null, null, null }, |
| 90654 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91535 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90655 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 91536 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90656 | .patterns = &.{ | 91537 | .patterns = &.{ |
| 90657 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91538 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90658 | }, | 91539 | }, |
| 90659 | .extra_temps = .{ | 91540 | .extra_temps = .{ |
| 90660 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 91541 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 90661 | .unused, | 91542 | .unused, |
| 90662 | .unused, | 91543 | .unused, |
| 90663 | .unused, | 91544 | .unused, |
| ... | @@ -90672,18 +91553,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90672,18 +91553,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90672 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91553 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90673 | .each = .{ .once = &.{ | 91554 | .each = .{ .once = &.{ |
| 90674 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91555 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90675 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, | 91556 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90676 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 91557 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90677 | } }, | 91558 | } }, |
| 90678 | }, .{ | 91559 | }, .{ |
| 90679 | .required_features = .{ .sse2, null, null, null }, | 91560 | .required_features = .{ .sse2, null, null, null }, |
| 90680 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91561 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90681 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | 91562 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90682 | .patterns = &.{ | 91563 | .patterns = &.{ |
| 90683 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91564 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90684 | }, | 91565 | }, |
| 90685 | .extra_temps = .{ | 91566 | .extra_temps = .{ |
| 90686 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 91567 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 90687 | .unused, | 91568 | .unused, |
| 90688 | .unused, | 91569 | .unused, |
| 90689 | .unused, | 91570 | .unused, |
| ... | @@ -90698,42 +91579,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90698,42 +91579,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90698 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91579 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90699 | .each = .{ .once = &.{ | 91580 | .each = .{ .once = &.{ |
| 90700 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91581 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90701 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 91582 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90702 | } }, | 91583 | } }, |
| 90703 | }, .{ | 91584 | }, .{ |
| 90704 | .required_features = .{ .avx2, null, null, null }, | 91585 | .required_features = .{ .avx2, null, null, null }, |
| 90705 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 91586 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 90706 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, | 91587 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90707 | .patterns = &.{ | 91588 | .patterns = &.{ |
| 90708 | .{ .src = .{ .mem, .none, .none } }, | 91589 | .{ .src = .{ .mem, .none, .none } }, |
| 90709 | .{ .src = .{ .to_sse, .none, .none } }, | 91590 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90710 | }, | 91591 | }, |
| 90711 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91592 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90712 | .each = .{ .once = &.{ | 91593 | .each = .{ .once = &.{ |
| 90713 | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, | 91594 | .{ ._, .vp_q, .movsxd, .dst0y, .src0x, ._, ._ }, |
| 90714 | } }, | 91595 | } }, |
| 90715 | }, .{ | 91596 | }, .{ |
| 90716 | .required_features = .{ .avx2, null, null, null }, | 91597 | .required_features = .{ .avx2, null, null, null }, |
| 90717 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 91598 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 90718 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, | 91599 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90719 | .patterns = &.{ | 91600 | .patterns = &.{ |
| 90720 | .{ .src = .{ .mem, .none, .none } }, | 91601 | .{ .src = .{ .mem, .none, .none } }, |
| 90721 | .{ .src = .{ .to_sse, .none, .none } }, | 91602 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90722 | }, | 91603 | }, |
| 90723 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91604 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90724 | .each = .{ .once = &.{ | 91605 | .each = .{ .once = &.{ |
| 90725 | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, | 91606 | .{ ._, .vp_q, .movzxd, .dst0y, .src0x, ._, ._ }, |
| 90726 | } }, | 91607 | } }, |
| 90727 | }, .{ | 91608 | }, .{ |
| 90728 | .required_features = .{ .avx2, null, null, null }, | 91609 | .required_features = .{ .avx2, null, null, null }, |
| 90729 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 91610 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 90730 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, | 91611 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90731 | .patterns = &.{ | 91612 | .patterns = &.{ |
| 90732 | .{ .src = .{ .to_mem, .none, .none } }, | 91613 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90733 | }, | 91614 | }, |
| 90734 | .extra_temps = .{ | 91615 | .extra_temps = .{ |
| 90735 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91616 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90736 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 91617 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| 90737 | .unused, | 91618 | .unused, |
| 90738 | .unused, | 91619 | .unused, |
| 90739 | .unused, | 91620 | .unused, |
| ... | @@ -90748,21 +91629,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90748,21 +91629,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90748 | .clobbers = .{ .eflags = true }, | 91629 | .clobbers = .{ .eflags = true }, |
| 90749 | .each = .{ .once = &.{ | 91630 | .each = .{ .once = &.{ |
| 90750 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91631 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90751 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 91632 | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90752 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 91633 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90753 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 91634 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 90754 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91635 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90755 | } }, | 91636 | } }, |
| 90756 | }, .{ | 91637 | }, .{ |
| 90757 | .required_features = .{ .avx2, null, null, null }, | 91638 | .required_features = .{ .avx2, null, null, null }, |
| 90758 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 91639 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 90759 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any }, | 91640 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90760 | .patterns = &.{ | 91641 | .patterns = &.{ |
| 90761 | .{ .src = .{ .to_mem, .none, .none } }, | 91642 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90762 | }, | 91643 | }, |
| 90763 | .extra_temps = .{ | 91644 | .extra_temps = .{ |
| 90764 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91645 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90765 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, | 91646 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| 90766 | .unused, | 91647 | .unused, |
| 90767 | .unused, | 91648 | .unused, |
| 90768 | .unused, | 91649 | .unused, |
| ... | @@ -90777,21 +91658,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90777,21 +91658,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90777 | .clobbers = .{ .eflags = true }, | 91658 | .clobbers = .{ .eflags = true }, |
| 90778 | .each = .{ .once = &.{ | 91659 | .each = .{ .once = &.{ |
| 90779 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91660 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90780 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 91661 | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90781 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 91662 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90782 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 91663 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 90783 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91664 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90784 | } }, | 91665 | } }, |
| 90785 | }, .{ | 91666 | }, .{ |
| 90786 | .required_features = .{ .avx, null, null, null }, | 91667 | .required_features = .{ .avx, null, null, null }, |
| 90787 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91668 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90788 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 91669 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90789 | .patterns = &.{ | 91670 | .patterns = &.{ |
| 90790 | .{ .src = .{ .to_mem, .none, .none } }, | 91671 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90791 | }, | 91672 | }, |
| 90792 | .extra_temps = .{ | 91673 | .extra_temps = .{ |
| 90793 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91674 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90794 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 91675 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 90795 | .unused, | 91676 | .unused, |
| 90796 | .unused, | 91677 | .unused, |
| 90797 | .unused, | 91678 | .unused, |
| ... | @@ -90806,21 +91687,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90806,21 +91687,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90806 | .clobbers = .{ .eflags = true }, | 91687 | .clobbers = .{ .eflags = true }, |
| 90807 | .each = .{ .once = &.{ | 91688 | .each = .{ .once = &.{ |
| 90808 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91689 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90809 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 91690 | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90810 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91691 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90811 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 91692 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90812 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91693 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90813 | } }, | 91694 | } }, |
| 90814 | }, .{ | 91695 | }, .{ |
| 90815 | .required_features = .{ .avx, null, null, null }, | 91696 | .required_features = .{ .avx, null, null, null }, |
| 90816 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91697 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90817 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | 91698 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90818 | .patterns = &.{ | 91699 | .patterns = &.{ |
| 90819 | .{ .src = .{ .to_mem, .none, .none } }, | 91700 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90820 | }, | 91701 | }, |
| 90821 | .extra_temps = .{ | 91702 | .extra_temps = .{ |
| 90822 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91703 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90823 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 91704 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 90824 | .unused, | 91705 | .unused, |
| 90825 | .unused, | 91706 | .unused, |
| 90826 | .unused, | 91707 | .unused, |
| ... | @@ -90835,21 +91716,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90835,21 +91716,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90835 | .clobbers = .{ .eflags = true }, | 91716 | .clobbers = .{ .eflags = true }, |
| 90836 | .each = .{ .once = &.{ | 91717 | .each = .{ .once = &.{ |
| 90837 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91718 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90838 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 91719 | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90839 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91720 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90840 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 91721 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90841 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91722 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90842 | } }, | 91723 | } }, |
| 90843 | }, .{ | 91724 | }, .{ |
| 90844 | .required_features = .{ .sse4_1, null, null, null }, | 91725 | .required_features = .{ .sse4_1, null, null, null }, |
| 90845 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91726 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90846 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 91727 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90847 | .patterns = &.{ | 91728 | .patterns = &.{ |
| 90848 | .{ .src = .{ .to_mem, .none, .none } }, | 91729 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90849 | }, | 91730 | }, |
| 90850 | .extra_temps = .{ | 91731 | .extra_temps = .{ |
| 90851 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91732 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90852 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 91733 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 90853 | .unused, | 91734 | .unused, |
| 90854 | .unused, | 91735 | .unused, |
| 90855 | .unused, | 91736 | .unused, |
| ... | @@ -90864,21 +91745,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90864,21 +91745,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90864 | .clobbers = .{ .eflags = true }, | 91745 | .clobbers = .{ .eflags = true }, |
| 90865 | .each = .{ .once = &.{ | 91746 | .each = .{ .once = &.{ |
| 90866 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91747 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90867 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 91748 | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90868 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91749 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90869 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 91750 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90870 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91751 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90871 | } }, | 91752 | } }, |
| 90872 | }, .{ | 91753 | }, .{ |
| 90873 | .required_features = .{ .sse4_1, null, null, null }, | 91754 | .required_features = .{ .sse4_1, null, null, null }, |
| 90874 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91755 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 90875 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | 91756 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90876 | .patterns = &.{ | 91757 | .patterns = &.{ |
| 90877 | .{ .src = .{ .to_mem, .none, .none } }, | 91758 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90878 | }, | 91759 | }, |
| 90879 | .extra_temps = .{ | 91760 | .extra_temps = .{ |
| 90880 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91761 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90881 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 91762 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 90882 | .unused, | 91763 | .unused, |
| 90883 | .unused, | 91764 | .unused, |
| 90884 | .unused, | 91765 | .unused, |
| ... | @@ -90893,20 +91774,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90893,20 +91774,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90893 | .clobbers = .{ .eflags = true }, | 91774 | .clobbers = .{ .eflags = true }, |
| 90894 | .each = .{ .once = &.{ | 91775 | .each = .{ .once = &.{ |
| 90895 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91776 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90896 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 91777 | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90897 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 91778 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90898 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 91779 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90899 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91780 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90900 | } }, | 91781 | } }, |
| 90901 | }, .{ | 91782 | }, .{ |
| 90902 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 91783 | .required_features = .{ .@"64bit", null, null, null }, |
| 90903 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 91784 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| | 91785 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 90904 | .patterns = &.{ | 91786 | .patterns = &.{ |
| 90905 | .{ .src = .{ .to_mem, .none, .none } }, | 91787 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90906 | }, | 91788 | }, |
| 90907 | .extra_temps = .{ | 91789 | .extra_temps = .{ |
| 90908 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91790 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90909 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 91791 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 90910 | .unused, | 91792 | .unused, |
| 90911 | .unused, | 91793 | .unused, |
| 90912 | .unused, | 91794 | .unused, |
| ... | @@ -90921,20 +91803,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90921,20 +91803,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90921 | .clobbers = .{ .eflags = true }, | 91803 | .clobbers = .{ .eflags = true }, |
| 90922 | .each = .{ .once = &.{ | 91804 | .each = .{ .once = &.{ |
| 90923 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91805 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90924 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 91806 | .{ .@"0:", ._d, .movsx, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90925 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 91807 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 90926 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 91808 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90927 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91809 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90928 | } }, | 91810 | } }, |
| 90929 | }, .{ | 91811 | }, .{ |
| 90930 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 91812 | .required_features = .{ .@"64bit", null, null, null }, |
| 90931 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, | 91813 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| | 91814 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 90932 | .patterns = &.{ | 91815 | .patterns = &.{ |
| 90933 | .{ .src = .{ .to_mem, .none, .none } }, | 91816 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90934 | }, | 91817 | }, |
| 90935 | .extra_temps = .{ | 91818 | .extra_temps = .{ |
| 90936 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91819 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90937 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 91820 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 90938 | .unused, | 91821 | .unused, |
| 90939 | .unused, | 91822 | .unused, |
| 90940 | .unused, | 91823 | .unused, |
| ... | @@ -90949,68 +91832,72 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -90949,68 +91832,72 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90949 | .clobbers = .{ .eflags = true }, | 91832 | .clobbers = .{ .eflags = true }, |
| 90950 | .each = .{ .once = &.{ | 91833 | .each = .{ .once = &.{ |
| 90951 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91834 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90952 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 91835 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90953 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 91836 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 90954 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 91837 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90955 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91838 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90956 | } }, | 91839 | } }, |
| 90957 | }, .{ | 91840 | }, .{ |
| 90958 | .required_features = .{ .avx, null, null, null }, | 91841 | .required_features = .{ .avx, null, null, null }, |
| 90959 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 91842 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 90960 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 91843 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90961 | .patterns = &.{ | 91844 | .patterns = &.{ |
| 90962 | .{ .src = .{ .mem, .none, .none } }, | 91845 | .{ .src = .{ .mem, .none, .none } }, |
| 90963 | .{ .src = .{ .to_sse, .none, .none } }, | 91846 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90964 | }, | 91847 | }, |
| 90965 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91848 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90966 | .each = .{ .once = &.{ | 91849 | .each = .{ .once = &.{ |
| 90967 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, | 91850 | .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, |
| | 91851 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 90968 | } }, | 91852 | } }, |
| 90969 | }, .{ | 91853 | }, .{ |
| 90970 | .required_features = .{ .avx, null, null, null }, | 91854 | .required_features = .{ .avx, null, null, null }, |
| 90971 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 91855 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 90972 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 91856 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90973 | .patterns = &.{ | 91857 | .patterns = &.{ |
| 90974 | .{ .src = .{ .mem, .none, .none } }, | 91858 | .{ .src = .{ .mem, .none, .none } }, |
| 90975 | .{ .src = .{ .to_sse, .none, .none } }, | 91859 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90976 | }, | 91860 | }, |
| 90977 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91861 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90978 | .each = .{ .once = &.{ | 91862 | .each = .{ .once = &.{ |
| 90979 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, | 91863 | .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, |
| | 91864 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 90980 | } }, | 91865 | } }, |
| 90981 | }, .{ | 91866 | }, .{ |
| 90982 | .required_features = .{ .sse4_1, null, null, null }, | 91867 | .required_features = .{ .sse4_1, null, null, null }, |
| 90983 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 91868 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 90984 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 91869 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90985 | .patterns = &.{ | 91870 | .patterns = &.{ |
| 90986 | .{ .src = .{ .mem, .none, .none } }, | 91871 | .{ .src = .{ .mem, .none, .none } }, |
| 90987 | .{ .src = .{ .to_sse, .none, .none } }, | 91872 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90988 | }, | 91873 | }, |
| 90989 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91874 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90990 | .each = .{ .once = &.{ | 91875 | .each = .{ .once = &.{ |
| 90991 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, | 91876 | .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, |
| | 91877 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 90992 | } }, | 91878 | } }, |
| 90993 | }, .{ | 91879 | }, .{ |
| 90994 | .required_features = .{ .sse4_1, null, null, null }, | 91880 | .required_features = .{ .sse4_1, null, null, null }, |
| 90995 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 91881 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 90996 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 91882 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90997 | .patterns = &.{ | 91883 | .patterns = &.{ |
| 90998 | .{ .src = .{ .mem, .none, .none } }, | 91884 | .{ .src = .{ .mem, .none, .none } }, |
| 90999 | .{ .src = .{ .to_sse, .none, .none } }, | 91885 | .{ .src = .{ .to_sse, .none, .none } }, |
| 91000 | }, | 91886 | }, |
| 91001 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 91887 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91002 | .each = .{ .once = &.{ | 91888 | .each = .{ .once = &.{ |
| 91003 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, | 91889 | .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, |
| | 91890 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 91004 | } }, | 91891 | } }, |
| 91005 | }, .{ | 91892 | }, .{ |
| 91006 | .required_features = .{ .sse2, null, null, null }, | 91893 | .required_features = .{ .sse2, null, null, null }, |
| 91007 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 91894 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91008 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 91895 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91009 | .patterns = &.{ | 91896 | .patterns = &.{ |
| 91010 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91897 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91011 | }, | 91898 | }, |
| 91012 | .extra_temps = .{ | 91899 | .extra_temps = .{ |
| 91013 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 91900 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 91014 | .unused, | 91901 | .unused, |
| 91015 | .unused, | 91902 | .unused, |
| 91016 | .unused, | 91903 | .unused, |
| ... | @@ -91025,20 +91912,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91025,20 +91912,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91025 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91912 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91026 | .each = .{ .once = &.{ | 91913 | .each = .{ .once = &.{ |
| 91027 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91914 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91028 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, | 91915 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 91029 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | | |
| 91030 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | | |
| 91031 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 91916 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| | 91917 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, |
| | 91918 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 91032 | } }, | 91919 | } }, |
| 91033 | }, .{ | 91920 | }, .{ |
| 91034 | .required_features = .{ .sse2, null, null, null }, | 91921 | .required_features = .{ .sse2, null, null, null }, |
| 91035 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 91922 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91036 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 91923 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91037 | .patterns = &.{ | 91924 | .patterns = &.{ |
| 91038 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 91925 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91039 | }, | 91926 | }, |
| 91040 | .extra_temps = .{ | 91927 | .extra_temps = .{ |
| 91041 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 91928 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 91042 | .unused, | 91929 | .unused, |
| 91043 | .unused, | 91930 | .unused, |
| 91044 | .unused, | 91931 | .unused, |
| ... | @@ -91053,45 +91940,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91053,45 +91940,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91053 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 91940 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91054 | .each = .{ .once = &.{ | 91941 | .each = .{ .once = &.{ |
| 91055 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 91942 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91056 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | | |
| 91057 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 91943 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| | 91944 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 91058 | } }, | 91945 | } }, |
| 91059 | }, .{ | 91946 | }, .{ |
| 91060 | .required_features = .{ .avx2, null, null, null }, | 91947 | .required_features = .{ .@"64bit", null, null, null }, |
| 91061 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91948 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91062 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | 91949 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 91063 | .patterns = &.{ | | |
| 91064 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91065 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91066 | }, | | |
| 91067 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 91068 | .each = .{ .once = &.{ | | |
| 91069 | .{ ._, .vp_q, .movsxw, .dst0y, .src0q, ._, ._ }, | | |
| 91070 | } }, | | |
| 91071 | }, .{ | | |
| 91072 | .required_features = .{ .avx2, null, null, null }, | | |
| 91073 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, | | |
| 91074 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 91075 | .patterns = &.{ | | |
| 91076 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91077 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91078 | }, | | |
| 91079 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 91080 | .each = .{ .once = &.{ | | |
| 91081 | .{ ._, .vp_q, .movzxw, .dst0y, .src0q, ._, ._ }, | | |
| 91082 | } }, | | |
| 91083 | }, .{ | | |
| 91084 | .required_features = .{ .avx2, null, null, null }, | | |
| 91085 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | | |
| 91086 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 91087 | .patterns = &.{ | 91950 | .patterns = &.{ |
| 91088 | .{ .src = .{ .to_mem, .none, .none } }, | 91951 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91089 | }, | 91952 | }, |
| 91090 | .extra_temps = .{ | 91953 | .extra_temps = .{ |
| 91091 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91954 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91092 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | 91955 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91093 | .unused, | 91956 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91094 | .unused, | 91957 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91095 | .unused, | 91958 | .unused, |
| 91096 | .unused, | 91959 | .unused, |
| 91097 | .unused, | 91960 | .unused, |
| ... | @@ -91104,23 +91967,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91104,23 +91967,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91104 | .clobbers = .{ .eflags = true }, | 91967 | .clobbers = .{ .eflags = true }, |
| 91105 | .each = .{ .once = &.{ | 91968 | .each = .{ .once = &.{ |
| 91106 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 91969 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91107 | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 91970 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 91108 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 91971 | .{ .@"0:", ._d, .movsx, .tmp2q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91109 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 91972 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 91973 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, |
| | 91974 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 91975 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 91976 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91110 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 91977 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91111 | } }, | 91978 | } }, |
| 91112 | }, .{ | 91979 | }, .{ |
| 91113 | .required_features = .{ .avx2, null, null, null }, | 91980 | .required_features = .{ .@"64bit", null, null, null }, |
| 91114 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 91981 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91115 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, | 91982 | .dst_constraints = .{ .any_scalar_int, .any }, |
| 91116 | .patterns = &.{ | 91983 | .patterns = &.{ |
| 91117 | .{ .src = .{ .to_mem, .none, .none } }, | 91984 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91118 | }, | 91985 | }, |
| 91119 | .extra_temps = .{ | 91986 | .extra_temps = .{ |
| 91120 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 91987 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91121 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, | 91988 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91122 | .unused, | 91989 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 91123 | .unused, | 91990 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91124 | .unused, | 91991 | .unused, |
| 91125 | .unused, | 91992 | .unused, |
| 91126 | .unused, | 91993 | .unused, |
| ... | @@ -91133,24 +92000,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91133,24 +92000,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91133 | .clobbers = .{ .eflags = true }, | 92000 | .clobbers = .{ .eflags = true }, |
| 91134 | .each = .{ .once = &.{ | 92001 | .each = .{ .once = &.{ |
| 91135 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92002 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91136 | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 92003 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 91137 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 92004 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91138 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 92005 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 92006 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 92007 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 92008 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 92009 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91139 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 92010 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91140 | } }, | 92011 | } }, |
| 91141 | }, .{ | 92012 | }, .{ |
| 91142 | .required_features = .{ .avx, null, null, null }, | 92013 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 91143 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 92014 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 91144 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 92015 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 91145 | .patterns = &.{ | 92016 | .patterns = &.{ |
| 91146 | .{ .src = .{ .to_mem, .none, .none } }, | 92017 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91147 | }, | 92018 | }, |
| 91148 | .extra_temps = .{ | 92019 | .extra_temps = .{ |
| 91149 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92020 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 91150 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | 92021 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91151 | .unused, | 92022 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91152 | .unused, | 92023 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91153 | .unused, | 92024 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91154 | .unused, | 92025 | .unused, |
| 91155 | .unused, | 92026 | .unused, |
| 91156 | .unused, | 92027 | .unused, |
| ... | @@ -91161,25 +92032,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91161,25 +92032,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91161 | .dst_temps = .{ .mem, .unused }, | 92032 | .dst_temps = .{ .mem, .unused }, |
| 91162 | .clobbers = .{ .eflags = true }, | 92033 | .clobbers = .{ .eflags = true }, |
| 91163 | .each = .{ .once = &.{ | 92034 | .each = .{ .once = &.{ |
| 91164 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92035 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 91165 | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 92036 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 91166 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 92037 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 91167 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 92038 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 91168 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 92039 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 92040 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| | 92041 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 92042 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| | 92043 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 92044 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 92045 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 92046 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 91169 | } }, | 92047 | } }, |
| 91170 | }, .{ | 92048 | }, .{ |
| 91171 | .required_features = .{ .avx, null, null, null }, | 92049 | .required_features = .{ .@"64bit", null, null, null }, |
| 91172 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 92050 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 91173 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 92051 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 91174 | .patterns = &.{ | 92052 | .patterns = &.{ |
| 91175 | .{ .src = .{ .to_mem, .none, .none } }, | 92053 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91176 | }, | 92054 | }, |
| 91177 | .extra_temps = .{ | 92055 | .extra_temps = .{ |
| 91178 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92056 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 91179 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | 92057 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91180 | .unused, | 92058 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91181 | .unused, | 92059 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91182 | .unused, | 92060 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91183 | .unused, | 92061 | .unused, |
| 91184 | .unused, | 92062 | .unused, |
| 91185 | .unused, | 92063 | .unused, |
| ... | @@ -91190,25 +92068,66 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91190,25 +92068,66 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91190 | .dst_temps = .{ .mem, .unused }, | 92068 | .dst_temps = .{ .mem, .unused }, |
| 91191 | .clobbers = .{ .eflags = true }, | 92069 | .clobbers = .{ .eflags = true }, |
| 91192 | .each = .{ .once = &.{ | 92070 | .each = .{ .once = &.{ |
| 91193 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92071 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 91194 | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 92072 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 91195 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 92073 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 91196 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 92074 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 91197 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 92075 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 92076 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| | 92077 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 92078 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| | 92079 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 92080 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 92081 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 92082 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 91198 | } }, | 92083 | } }, |
| 91199 | }, .{ | 92084 | }, .{ |
| 91200 | .required_features = .{ .sse4_1, null, null, null }, | 92085 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 91201 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 92086 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 91202 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 92087 | .dst_constraints = .{ .any_scalar_int, .any }, |
| 91203 | .patterns = &.{ | 92088 | .patterns = &.{ |
| 91204 | .{ .src = .{ .to_mem, .none, .none } }, | 92089 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91205 | }, | 92090 | }, |
| 91206 | .extra_temps = .{ | 92091 | .extra_temps = .{ |
| 91207 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92092 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 91208 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | 92093 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 92094 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 92095 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 92096 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 92097 | .unused, |
| | 92098 | .unused, |
| | 92099 | .unused, |
| 91209 | .unused, | 92100 | .unused, |
| 91210 | .unused, | 92101 | .unused, |
| 91211 | .unused, | 92102 | .unused, |
| | 92103 | }, |
| | 92104 | .dst_temps = .{ .mem, .unused }, |
| | 92105 | .clobbers = .{ .eflags = true }, |
| | 92106 | .each = .{ .once = &.{ |
| | 92107 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 92108 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 92109 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 92110 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| | 92111 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 92112 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 92113 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 92114 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 92115 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 92116 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 92117 | } }, |
| | 92118 | }, .{ |
| | 92119 | .required_features = .{ .@"64bit", null, null, null }, |
| | 92120 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| | 92121 | .dst_constraints = .{ .any_scalar_int, .any }, |
| | 92122 | .patterns = &.{ |
| | 92123 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92124 | }, |
| | 92125 | .extra_temps = .{ |
| | 92126 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 92127 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 92128 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 92129 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 92130 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 91212 | .unused, | 92131 | .unused, |
| 91213 | .unused, | 92132 | .unused, |
| 91214 | .unused, | 92133 | .unused, |
| ... | @@ -91219,23 +92138,346 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91219,23 +92138,346 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91219 | .dst_temps = .{ .mem, .unused }, | 92138 | .dst_temps = .{ .mem, .unused }, |
| 91220 | .clobbers = .{ .eflags = true }, | 92139 | .clobbers = .{ .eflags = true }, |
| 91221 | .each = .{ .once = &.{ | 92140 | .each = .{ .once = &.{ |
| 91222 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92141 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 91223 | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 92142 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 91224 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 92143 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 91225 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 92144 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 91226 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 92145 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 92146 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 92147 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 92148 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 92149 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 92150 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 92151 | } }, |
| | 92152 | } }) catch |err| switch (err) { |
| | 92153 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| | 92154 | @tagName(air_tag), |
| | 92155 | dst_ty.fmt(pt), |
| | 92156 | src_ty.fmt(pt), |
| | 92157 | ops[0].tracking(cg), |
| | 92158 | }), |
| | 92159 | else => |e| return e, |
| | 92160 | }; |
| | 92161 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 92162 | }, |
| | 92163 | .intcast_safe => unreachable, |
| | 92164 | .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else { |
| | 92165 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 92166 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 92167 | var res: [1]Temp = undefined; |
| | 92168 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| | 92169 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, |
| | 92170 | .dst_constraints = .{ .{ .exact_signed_int = 1 }, .any }, |
| | 92171 | .patterns = &.{ |
| | 92172 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92173 | }, |
| | 92174 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92175 | .clobbers = .{ .eflags = true }, |
| | 92176 | .each = .{ .once = &.{ |
| | 92177 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| | 92178 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| 91227 | } }, | 92179 | } }, |
| 91228 | }, .{ | 92180 | }, .{ |
| 91229 | .required_features = .{ .sse4_1, null, null, null }, | 92181 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 91230 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 92182 | .dst_constraints = .{ .{ .exact_signed_int = 1 }, .any }, |
| 91231 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 92183 | .patterns = &.{ |
| | 92184 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92185 | }, |
| | 92186 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92187 | .clobbers = .{ .eflags = true }, |
| | 92188 | .each = .{ .once = &.{ |
| | 92189 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 92190 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| | 92191 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| | 92192 | } }, |
| | 92193 | }, .{ |
| | 92194 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| | 92195 | .dst_constraints = .{ .{ .exact_int = 8 }, .any }, |
| | 92196 | .patterns = &.{ |
| | 92197 | .{ .src = .{ .mut_mem, .none, .none } }, |
| | 92198 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92199 | }, |
| | 92200 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92201 | .each = .{ .once = &.{} }, |
| | 92202 | }, .{ |
| | 92203 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| | 92204 | .dst_constraints = .{ .{ .exact_signed_int = 8 }, .any }, |
| | 92205 | .patterns = &.{ |
| | 92206 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92207 | }, |
| | 92208 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92209 | .each = .{ .once = &.{ |
| | 92210 | .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 92211 | } }, |
| | 92212 | }, .{ |
| | 92213 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| | 92214 | .dst_constraints = .{ .{ .exact_unsigned_int = 8 }, .any }, |
| | 92215 | .patterns = &.{ |
| | 92216 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92217 | }, |
| | 92218 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92219 | .each = .{ .once = &.{ |
| | 92220 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 92221 | } }, |
| | 92222 | }, .{ |
| | 92223 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, |
| | 92224 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| | 92225 | .patterns = &.{ |
| | 92226 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92227 | }, |
| | 92228 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92229 | .clobbers = .{ .eflags = true }, |
| | 92230 | .each = .{ .once = &.{ |
| | 92231 | .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 92232 | .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 92233 | } }, |
| | 92234 | }, .{ |
| | 92235 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, |
| | 92236 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| | 92237 | .patterns = &.{ |
| | 92238 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92239 | }, |
| | 92240 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92241 | .clobbers = .{ .eflags = true }, |
| | 92242 | .each = .{ .once = &.{ |
| | 92243 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 92244 | } }, |
| | 92245 | }, .{ |
| | 92246 | .src_constraints = .{ .any_int, .any, .any }, |
| | 92247 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| | 92248 | .patterns = &.{ |
| | 92249 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92250 | }, |
| | 92251 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92252 | .clobbers = .{ .eflags = true }, |
| | 92253 | .each = .{ .once = &.{ |
| | 92254 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 92255 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 92256 | } }, |
| | 92257 | }, .{ |
| | 92258 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| | 92259 | .dst_constraints = .{ .{ .exact_int = 16 }, .any }, |
| | 92260 | .patterns = &.{ |
| | 92261 | .{ .src = .{ .mut_mem, .none, .none } }, |
| | 92262 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92263 | }, |
| | 92264 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92265 | .each = .{ .once = &.{} }, |
| | 92266 | }, .{ |
| | 92267 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| | 92268 | .dst_constraints = .{ .{ .exact_signed_int = 16 }, .any }, |
| | 92269 | .patterns = &.{ |
| | 92270 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92271 | }, |
| | 92272 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92273 | .each = .{ .once = &.{ |
| | 92274 | .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ }, |
| | 92275 | } }, |
| | 92276 | }, .{ |
| | 92277 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| | 92278 | .dst_constraints = .{ .{ .exact_unsigned_int = 16 }, .any }, |
| | 92279 | .patterns = &.{ |
| | 92280 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92281 | }, |
| | 92282 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92283 | .each = .{ .once = &.{ |
| | 92284 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| | 92285 | } }, |
| | 92286 | }, .{ |
| | 92287 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 92288 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, |
| | 92289 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| | 92290 | .patterns = &.{ |
| | 92291 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92292 | }, |
| | 92293 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92294 | .clobbers = .{ .eflags = true }, |
| | 92295 | .each = .{ .once = &.{ |
| | 92296 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 92297 | } }, |
| | 92298 | }, .{ |
| | 92299 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 92300 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| | 92301 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| | 92302 | .patterns = &.{ |
| | 92303 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92304 | }, |
| | 92305 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92306 | .clobbers = .{ .eflags = true }, |
| | 92307 | .each = .{ .once = &.{ |
| | 92308 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| | 92309 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 92310 | } }, |
| | 92311 | }, .{ |
| | 92312 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| | 92313 | .dst_constraints = .{ .{ .exact_int = 32 }, .any }, |
| | 92314 | .patterns = &.{ |
| | 92315 | .{ .src = .{ .mut_mem, .none, .none } }, |
| | 92316 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92317 | }, |
| | 92318 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92319 | .each = .{ .once = &.{} }, |
| | 92320 | }, .{ |
| | 92321 | .src_constraints = .{ .any_int, .any, .any }, |
| | 92322 | .dst_constraints = .{ .{ .exact_int = 32 }, .any }, |
| | 92323 | .patterns = &.{ |
| | 92324 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92325 | }, |
| | 92326 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92327 | .each = .{ .once = &.{ |
| | 92328 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| | 92329 | } }, |
| | 92330 | }, .{ |
| | 92331 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, |
| | 92332 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| | 92333 | .patterns = &.{ |
| | 92334 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92335 | }, |
| | 92336 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92337 | .clobbers = .{ .eflags = true }, |
| | 92338 | .each = .{ .once = &.{ |
| | 92339 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 92340 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 92341 | } }, |
| | 92342 | }, .{ |
| | 92343 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| | 92344 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| | 92345 | .patterns = &.{ |
| | 92346 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92347 | }, |
| | 92348 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92349 | .clobbers = .{ .eflags = true }, |
| | 92350 | .each = .{ .once = &.{ |
| | 92351 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| | 92352 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 92353 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 92354 | } }, |
| | 92355 | }, .{ |
| | 92356 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, |
| | 92357 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| | 92358 | .patterns = &.{ |
| | 92359 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92360 | }, |
| | 92361 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92362 | .clobbers = .{ .eflags = true }, |
| | 92363 | .each = .{ .once = &.{ |
| | 92364 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 92365 | } }, |
| | 92366 | }, .{ |
| | 92367 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| | 92368 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| | 92369 | .patterns = &.{ |
| | 92370 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92371 | }, |
| | 92372 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92373 | .clobbers = .{ .eflags = true }, |
| | 92374 | .each = .{ .once = &.{ |
| | 92375 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| | 92376 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 92377 | } }, |
| | 92378 | }, .{ |
| | 92379 | .required_features = .{ .@"64bit", null, null, null }, |
| | 92380 | .src_constraints = .{ .any_int, .any, .any }, |
| | 92381 | .dst_constraints = .{ .{ .exact_int = 64 }, .any }, |
| | 92382 | .patterns = &.{ |
| | 92383 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92384 | }, |
| | 92385 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92386 | .each = .{ .once = &.{ |
| | 92387 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| | 92388 | } }, |
| | 92389 | }, .{ |
| | 92390 | .required_features = .{ .@"64bit", null, null, null }, |
| | 92391 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, |
| | 92392 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| | 92393 | .patterns = &.{ |
| | 92394 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 92395 | }, |
| | 92396 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 92397 | .clobbers = .{ .eflags = true }, |
| | 92398 | .each = .{ .once = &.{ |
| | 92399 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 92400 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 92401 | } }, |
| | 92402 | }, .{ |
| | 92403 | .required_features = .{ .@"64bit", null, null, null }, |
| | 92404 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| | 92405 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| | 92406 | .patterns = &.{ |
| | 92407 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92408 | }, |
| | 92409 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92410 | .clobbers = .{ .eflags = true }, |
| | 92411 | .each = .{ .once = &.{ |
| | 92412 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| | 92413 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 92414 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 92415 | } }, |
| | 92416 | }, .{ |
| | 92417 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 92418 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, |
| | 92419 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| | 92420 | .patterns = &.{ |
| | 92421 | .{ .src = .{ .mem, .none, .none } }, |
| | 92422 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 92423 | }, |
| | 92424 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92425 | .clobbers = .{ .eflags = true }, |
| | 92426 | .each = .{ .once = &.{ |
| | 92427 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 92428 | .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ }, |
| | 92429 | } }, |
| | 92430 | }, .{ |
| | 92431 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 92432 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| | 92433 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| | 92434 | .patterns = &.{ |
| | 92435 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92436 | }, |
| | 92437 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92438 | .clobbers = .{ .eflags = true }, |
| | 92439 | .each = .{ .once = &.{ |
| | 92440 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 92441 | .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ }, |
| | 92442 | } }, |
| | 92443 | }, .{ |
| | 92444 | .required_features = .{ .@"64bit", null, null, null }, |
| | 92445 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, |
| | 92446 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| | 92447 | .patterns = &.{ |
| | 92448 | .{ .src = .{ .mem, .none, .none } }, |
| | 92449 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 92450 | }, |
| | 92451 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92452 | .clobbers = .{ .eflags = true }, |
| | 92453 | .each = .{ .once = &.{ |
| | 92454 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 92455 | .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ }, |
| | 92456 | } }, |
| | 92457 | }, .{ |
| | 92458 | .required_features = .{ .@"64bit", null, null, null }, |
| | 92459 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| | 92460 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| | 92461 | .patterns = &.{ |
| | 92462 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 92463 | }, |
| | 92464 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 92465 | .clobbers = .{ .eflags = true }, |
| | 92466 | .each = .{ .once = &.{ |
| | 92467 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 92468 | .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ }, |
| | 92469 | } }, |
| | 92470 | }, .{ |
| | 92471 | .required_features = .{ .@"64bit", null, null, null }, |
| | 92472 | .src_constraints = .{ .any_int, .any, .any }, |
| | 92473 | .dst_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any }, |
| 91232 | .patterns = &.{ | 92474 | .patterns = &.{ |
| 91233 | .{ .src = .{ .to_mem, .none, .none } }, | 92475 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91234 | }, | 92476 | }, |
| 91235 | .extra_temps = .{ | 92477 | .extra_temps = .{ |
| 91236 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92478 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91237 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | 92479 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91238 | .unused, | 92480 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91239 | .unused, | 92481 | .unused, |
| 91240 | .unused, | 92482 | .unused, |
| 91241 | .unused, | 92483 | .unused, |
| ... | @@ -91246,25 +92488,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91246,25 +92488,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91246 | .unused, | 92488 | .unused, |
| 91247 | }, | 92489 | }, |
| 91248 | .dst_temps = .{ .mem, .unused }, | 92490 | .dst_temps = .{ .mem, .unused }, |
| 91249 | .clobbers = .{ .eflags = true }, | | |
| 91250 | .each = .{ .once = &.{ | 92491 | .each = .{ .once = &.{ |
| 91251 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92492 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91252 | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 92493 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 91253 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 92494 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| 91254 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 92495 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 91255 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 91256 | } }, | 92496 | } }, |
| 91257 | }, .{ | 92497 | }, .{ |
| 91258 | .required_features = .{ .@"64bit", null, null, null }, | 92498 | .required_features = .{ .@"64bit", null, null, null }, |
| 91259 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92499 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 91260 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 92500 | .dst_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any }, |
| 91261 | .patterns = &.{ | 92501 | .patterns = &.{ |
| 91262 | .{ .src = .{ .to_mem, .none, .none } }, | 92502 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91263 | }, | 92503 | }, |
| 91264 | .extra_temps = .{ | 92504 | .extra_temps = .{ |
| 91265 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92505 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91266 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 92506 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91267 | .unused, | 92507 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91268 | .unused, | 92508 | .unused, |
| 91269 | .unused, | 92509 | .unused, |
| 91270 | .unused, | 92510 | .unused, |
| ... | @@ -91277,23 +92517,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91277,23 +92517,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91277 | .dst_temps = .{ .mem, .unused }, | 92517 | .dst_temps = .{ .mem, .unused }, |
| 91278 | .clobbers = .{ .eflags = true }, | 92518 | .clobbers = .{ .eflags = true }, |
| 91279 | .each = .{ .once = &.{ | 92519 | .each = .{ .once = &.{ |
| 91280 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92520 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91281 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 92521 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 91282 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 92522 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 91283 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 92523 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 91284 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 92524 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 92525 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| | 92526 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 92527 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 91285 | } }, | 92528 | } }, |
| 91286 | }, .{ | 92529 | }, .{ |
| 91287 | .required_features = .{ .@"64bit", null, null, null }, | 92530 | .required_features = .{ .@"64bit", null, null, null }, |
| 91288 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92531 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 91289 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | 92532 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91290 | .patterns = &.{ | 92533 | .patterns = &.{ |
| 91291 | .{ .src = .{ .to_mem, .none, .none } }, | 92534 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91292 | }, | 92535 | }, |
| 91293 | .extra_temps = .{ | 92536 | .extra_temps = .{ |
| 91294 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92537 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91295 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 92538 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91296 | .unused, | 92539 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91297 | .unused, | 92540 | .unused, |
| 91298 | .unused, | 92541 | .unused, |
| 91299 | .unused, | 92542 | .unused, |
| ... | @@ -91306,75 +92549,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91306,75 +92549,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91306 | .dst_temps = .{ .mem, .unused }, | 92549 | .dst_temps = .{ .mem, .unused }, |
| 91307 | .clobbers = .{ .eflags = true }, | 92550 | .clobbers = .{ .eflags = true }, |
| 91308 | .each = .{ .once = &.{ | 92551 | .each = .{ .once = &.{ |
| 91309 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92552 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91310 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 92553 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 91311 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 92554 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 91312 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 92555 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 91313 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 92556 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 92557 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 92558 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 92559 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| | 92560 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 92561 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 91314 | } }, | 92562 | } }, |
| 91315 | }, .{ | 92563 | }, .{ |
| 91316 | .required_features = .{ .avx, null, null, null }, | 92564 | .required_features = .{ .@"64bit", null, null, null }, |
| 91317 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92565 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 91318 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 92566 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91319 | .patterns = &.{ | 92567 | .patterns = &.{ |
| 91320 | .{ .src = .{ .mem, .none, .none } }, | 92568 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91321 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91322 | }, | 92569 | }, |
| 91323 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92570 | .extra_temps = .{ |
| 91324 | .each = .{ .once = &.{ | 92571 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91325 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, | 92572 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91326 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | 92573 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91327 | } }, | 92574 | .unused, |
| 91328 | }, .{ | 92575 | .unused, |
| 91329 | .required_features = .{ .avx, null, null, null }, | 92576 | .unused, |
| 91330 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92577 | .unused, |
| 91331 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | 92578 | .unused, |
| 91332 | .patterns = &.{ | 92579 | .unused, |
| 91333 | .{ .src = .{ .mem, .none, .none } }, | 92580 | .unused, |
| 91334 | .{ .src = .{ .to_sse, .none, .none } }, | 92581 | .unused, |
| 91335 | }, | 92582 | }, |
| 91336 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92583 | .dst_temps = .{ .mem, .unused }, |
| | 92584 | .clobbers = .{ .eflags = true }, |
| 91337 | .each = .{ .once = &.{ | 92585 | .each = .{ .once = &.{ |
| 91338 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, | 92586 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91339 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | 92587 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 92588 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 92589 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 92590 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 92591 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 92592 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 92593 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 91340 | } }, | 92594 | } }, |
| 91341 | }, .{ | 92595 | }, .{ |
| 91342 | .required_features = .{ .sse4_1, null, null, null }, | 92596 | .required_features = .{ .@"64bit", null, null, null }, |
| 91343 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92597 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 91344 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 92598 | .dst_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any }, |
| 91345 | .patterns = &.{ | 92599 | .patterns = &.{ |
| 91346 | .{ .src = .{ .mem, .none, .none } }, | 92600 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91347 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91348 | }, | 92601 | }, |
| 91349 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92602 | .extra_temps = .{ |
| 91350 | .each = .{ .once = &.{ | 92603 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91351 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, | 92604 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91352 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | 92605 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91353 | } }, | 92606 | .unused, |
| 91354 | }, .{ | 92607 | .unused, |
| 91355 | .required_features = .{ .sse4_1, null, null, null }, | 92608 | .unused, |
| 91356 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92609 | .unused, |
| 91357 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | 92610 | .unused, |
| 91358 | .patterns = &.{ | 92611 | .unused, |
| 91359 | .{ .src = .{ .mem, .none, .none } }, | 92612 | .unused, |
| 91360 | .{ .src = .{ .to_sse, .none, .none } }, | 92613 | .unused, |
| 91361 | }, | 92614 | }, |
| 91362 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92615 | .dst_temps = .{ .mem, .unused }, |
| 91363 | .each = .{ .once = &.{ | 92616 | .each = .{ .once = &.{ |
| 91364 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, | 92617 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91365 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | 92618 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 92619 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 92620 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 92621 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 91366 | } }, | 92622 | } }, |
| 91367 | }, .{ | 92623 | }, .{ |
| 91368 | .required_features = .{ .sse2, null, null, null }, | 92624 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 91369 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92625 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 91370 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 92626 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91371 | .patterns = &.{ | 92627 | .patterns = &.{ |
| 91372 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 92628 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91373 | }, | 92629 | }, |
| 91374 | .extra_temps = .{ | 92630 | .extra_temps = .{ |
| 91375 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 92631 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91376 | .unused, | 92632 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91377 | .unused, | 92633 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91378 | .unused, | 92634 | .unused, |
| 91379 | .unused, | 92635 | .unused, |
| 91380 | .unused, | 92636 | .unused, |
| ... | @@ -91384,27 +92640,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91384,27 +92640,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91384 | .unused, | 92640 | .unused, |
| 91385 | .unused, | 92641 | .unused, |
| 91386 | }, | 92642 | }, |
| 91387 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 92643 | .dst_temps = .{ .mem, .unused }, |
| | 92644 | .clobbers = .{ .eflags = true }, |
| 91388 | .each = .{ .once = &.{ | 92645 | .each = .{ .once = &.{ |
| 91389 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 92646 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91390 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, | 92647 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 91391 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 92648 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 91392 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, | 92649 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 91393 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 92650 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 91394 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, | 92651 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -16), .tmp2q, ._ }, |
| 91395 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | 92652 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp2q, ._, ._ }, |
| | 92653 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 91396 | } }, | 92654 | } }, |
| 91397 | }, .{ | 92655 | }, .{ |
| 91398 | .required_features = .{ .sse2, null, null, null }, | 92656 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 91399 | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92657 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 91400 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | 92658 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91401 | .patterns = &.{ | 92659 | .patterns = &.{ |
| 91402 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 92660 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91403 | }, | 92661 | }, |
| 91404 | .extra_temps = .{ | 92662 | .extra_temps = .{ |
| 91405 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 92663 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91406 | .unused, | 92664 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91407 | .unused, | 92665 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91408 | .unused, | 92666 | .unused, |
| 91409 | .unused, | 92667 | .unused, |
| 91410 | .unused, | 92668 | .unused, |
| ... | @@ -91414,24 +92672,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91414,24 +92672,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91414 | .unused, | 92672 | .unused, |
| 91415 | .unused, | 92673 | .unused, |
| 91416 | }, | 92674 | }, |
| 91417 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 92675 | .dst_temps = .{ .mem, .unused }, |
| | 92676 | .clobbers = .{ .eflags = true }, |
| 91418 | .each = .{ .once = &.{ | 92677 | .each = .{ .once = &.{ |
| 91419 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 92678 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91420 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, | 92679 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 91421 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 92680 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 91422 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | 92681 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 92682 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 92683 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -8), .tmp2q, ._ }, |
| | 92684 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 91423 | } }, | 92685 | } }, |
| 91424 | }, .{ | 92686 | }, .{ |
| 91425 | .required_features = .{ .@"64bit", null, null, null }, | 92687 | .required_features = .{ .@"64bit", null, null, null }, |
| 91426 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92688 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 91427 | .dst_constraints = .{ .any_scalar_signed_int, .any }, | 92689 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91428 | .patterns = &.{ | 92690 | .patterns = &.{ |
| 91429 | .{ .src = .{ .to_mem, .none, .none } }, | 92691 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91430 | }, | 92692 | }, |
| 91431 | .extra_temps = .{ | 92693 | .extra_temps = .{ |
| 91432 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92694 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91433 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 92695 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91434 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | | |
| 91435 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 92696 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91436 | .unused, | 92697 | .unused, |
| 91437 | .unused, | 92698 | .unused, |
| ... | @@ -91440,31 +92701,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91440,31 +92701,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91440 | .unused, | 92701 | .unused, |
| 91441 | .unused, | 92702 | .unused, |
| 91442 | .unused, | 92703 | .unused, |
| | 92704 | .unused, |
| 91443 | }, | 92705 | }, |
| 91444 | .dst_temps = .{ .mem, .unused }, | 92706 | .dst_temps = .{ .mem, .unused }, |
| 91445 | .clobbers = .{ .eflags = true }, | 92707 | .clobbers = .{ .eflags = true }, |
| 91446 | .each = .{ .once = &.{ | 92708 | .each = .{ .once = &.{ |
| 91447 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92709 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91448 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 92710 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 91449 | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 92711 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 91450 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 92712 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 91451 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | 92713 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 91452 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 92714 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 91453 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | 92715 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 91454 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 92716 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 91455 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 91456 | } }, | 92717 | } }, |
| 91457 | }, .{ | 92718 | }, .{ |
| 91458 | .required_features = .{ .@"64bit", null, null, null }, | 92719 | .required_features = .{ .@"64bit", null, null, null }, |
| 91459 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 92720 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 91460 | .dst_constraints = .{ .any_scalar_int, .any }, | 92721 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91461 | .patterns = &.{ | 92722 | .patterns = &.{ |
| 91462 | .{ .src = .{ .to_mem, .none, .none } }, | 92723 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91463 | }, | 92724 | }, |
| 91464 | .extra_temps = .{ | 92725 | .extra_temps = .{ |
| 91465 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92726 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91466 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 92727 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91467 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | | |
| 91468 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 92728 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91469 | .unused, | 92729 | .unused, |
| 91470 | .unused, | 92730 | .unused, |
| ... | @@ -91473,78 +92733,135 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91473,78 +92733,135 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91473 | .unused, | 92733 | .unused, |
| 91474 | .unused, | 92734 | .unused, |
| 91475 | .unused, | 92735 | .unused, |
| | 92736 | .unused, |
| 91476 | }, | 92737 | }, |
| 91477 | .dst_temps = .{ .mem, .unused }, | 92738 | .dst_temps = .{ .mem, .unused }, |
| 91478 | .clobbers = .{ .eflags = true }, | 92739 | .clobbers = .{ .eflags = true }, |
| 91479 | .each = .{ .once = &.{ | 92740 | .each = .{ .once = &.{ |
| 91480 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92741 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 91481 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 92742 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 91482 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 92743 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 91483 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 92744 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 91484 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 92745 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 91485 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 92746 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 91486 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | 92747 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 91487 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 91488 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 91489 | } }, | 92748 | } }, |
| 91490 | }, .{ | 92749 | }, .{ |
| 91491 | .required_features = .{ .avx, null, null, null }, | 92750 | .required_features = .{ .avx, null, null, null }, |
| 91492 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 92751 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91493 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 92752 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91494 | .patterns = &.{ | 92753 | .patterns = &.{ |
| 91495 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91496 | .{ .src = .{ .to_sse, .none, .none } }, | 92754 | .{ .src = .{ .to_sse, .none, .none } }, |
| 91497 | }, | 92755 | }, |
| | 92756 | .extra_temps = .{ |
| | 92757 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 92758 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 92759 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 92760 | .unused, |
| | 92761 | .unused, |
| | 92762 | .unused, |
| | 92763 | .unused, |
| | 92764 | .unused, |
| | 92765 | .unused, |
| | 92766 | .unused, |
| | 92767 | .unused, |
| | 92768 | }, |
| 91498 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92769 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91499 | .each = .{ .once = &.{ | 92770 | .each = .{ .once = &.{ |
| 91500 | .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, | 92771 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 92772 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 92773 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 92774 | .{ ._, .vp_b, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| | 92775 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 91501 | } }, | 92776 | } }, |
| 91502 | }, .{ | 92777 | }, .{ |
| 91503 | .required_features = .{ .avx, null, null, null }, | 92778 | .required_features = .{ .avx, null, null, null }, |
| 91504 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 92779 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91505 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 92780 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91506 | .patterns = &.{ | 92781 | .patterns = &.{ |
| 91507 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91508 | .{ .src = .{ .to_sse, .none, .none } }, | 92782 | .{ .src = .{ .to_sse, .none, .none } }, |
| 91509 | }, | 92783 | }, |
| | 92784 | .extra_temps = .{ |
| | 92785 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 92786 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 92787 | .unused, |
| | 92788 | .unused, |
| | 92789 | .unused, |
| | 92790 | .unused, |
| | 92791 | .unused, |
| | 92792 | .unused, |
| | 92793 | .unused, |
| | 92794 | .unused, |
| | 92795 | .unused, |
| | 92796 | }, |
| 91510 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92797 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91511 | .each = .{ .once = &.{ | 92798 | .each = .{ .once = &.{ |
| 91512 | .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, | 92799 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 92800 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 91513 | } }, | 92801 | } }, |
| 91514 | }, .{ | 92802 | }, .{ |
| 91515 | .required_features = .{ .sse4_1, null, null, null }, | 92803 | .required_features = .{ .sse2, null, null, null }, |
| 91516 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 92804 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91517 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 92805 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91518 | .patterns = &.{ | 92806 | .patterns = &.{ |
| 91519 | .{ .src = .{ .mem, .none, .none } }, | 92807 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91520 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91521 | }, | 92808 | }, |
| 91522 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92809 | .extra_temps = .{ |
| | 92810 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 92811 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 92812 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 92813 | .unused, |
| | 92814 | .unused, |
| | 92815 | .unused, |
| | 92816 | .unused, |
| | 92817 | .unused, |
| | 92818 | .unused, |
| | 92819 | .unused, |
| | 92820 | .unused, |
| | 92821 | }, |
| | 92822 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91523 | .each = .{ .once = &.{ | 92823 | .each = .{ .once = &.{ |
| 91524 | .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, | 92824 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 92825 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 92826 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 92827 | .{ ._, .p_b, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 92828 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 91525 | } }, | 92829 | } }, |
| 91526 | }, .{ | 92830 | }, .{ |
| 91527 | .required_features = .{ .sse4_1, null, null, null }, | 92831 | .required_features = .{ .sse2, null, null, null }, |
| 91528 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 92832 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91529 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 92833 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91530 | .patterns = &.{ | 92834 | .patterns = &.{ |
| 91531 | .{ .src = .{ .mem, .none, .none } }, | 92835 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91532 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91533 | }, | 92836 | }, |
| 91534 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92837 | .extra_temps = .{ |
| | 92838 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 92839 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 92840 | .unused, |
| | 92841 | .unused, |
| | 92842 | .unused, |
| | 92843 | .unused, |
| | 92844 | .unused, |
| | 92845 | .unused, |
| | 92846 | .unused, |
| | 92847 | .unused, |
| | 92848 | .unused, |
| | 92849 | }, |
| | 92850 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91535 | .each = .{ .once = &.{ | 92851 | .each = .{ .once = &.{ |
| 91536 | .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, | 92852 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 92853 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 91537 | } }, | 92854 | } }, |
| 91538 | }, .{ | 92855 | }, .{ |
| 91539 | .required_features = .{ .sse2, null, null, null }, | 92856 | .required_features = .{ .sse, null, null, null }, |
| 91540 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 92857 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91541 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 92858 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91542 | .patterns = &.{ | 92859 | .patterns = &.{ |
| 91543 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 92860 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91544 | }, | 92861 | }, |
| 91545 | .extra_temps = .{ | 92862 | .extra_temps = .{ |
| 91546 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 92863 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 91547 | .unused, | 92864 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 91548 | .unused, | 92865 | .unused, |
| 91549 | .unused, | 92866 | .unused, |
| 91550 | .unused, | 92867 | .unused, |
| ... | @@ -91557,21 +92874,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91557,21 +92874,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91557 | }, | 92874 | }, |
| 91558 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 92875 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91559 | .each = .{ .once = &.{ | 92876 | .each = .{ .once = &.{ |
| 91560 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 92877 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 91561 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, | 92878 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 91562 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | | |
| 91563 | } }, | 92879 | } }, |
| 91564 | }, .{ | 92880 | }, .{ |
| 91565 | .required_features = .{ .sse2, null, null, null }, | 92881 | .required_features = .{ .avx2, null, null, null }, |
| 91566 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 92882 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 91567 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 92883 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91568 | .patterns = &.{ | 92884 | .patterns = &.{ |
| 91569 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 92885 | .{ .src = .{ .to_sse, .none, .none } }, |
| 91570 | }, | 92886 | }, |
| 91571 | .extra_temps = .{ | 92887 | .extra_temps = .{ |
| 91572 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 92888 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 91573 | .unused, | 92889 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91574 | .unused, | 92890 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 91575 | .unused, | 92891 | .unused, |
| 91576 | .unused, | 92892 | .unused, |
| 91577 | .unused, | 92893 | .unused, |
| ... | @@ -91581,47 +92897,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91581,47 +92897,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91581 | .unused, | 92897 | .unused, |
| 91582 | .unused, | 92898 | .unused, |
| 91583 | }, | 92899 | }, |
| 91584 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 92900 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91585 | .each = .{ .once = &.{ | 92901 | .each = .{ .once = &.{ |
| 91586 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 92902 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 91587 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 92903 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 92904 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 92905 | .{ ._, .vp_b, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 92906 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 91588 | } }, | 92907 | } }, |
| 91589 | }, .{ | 92908 | }, .{ |
| 91590 | .required_features = .{ .avx2, null, null, null }, | 92909 | .required_features = .{ .avx2, null, null, null }, |
| 91591 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 92910 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 91592 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | 92911 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91593 | .patterns = &.{ | 92912 | .patterns = &.{ |
| 91594 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91595 | .{ .src = .{ .to_sse, .none, .none } }, | 92913 | .{ .src = .{ .to_sse, .none, .none } }, |
| 91596 | }, | 92914 | }, |
| | 92915 | .extra_temps = .{ |
| | 92916 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 92917 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 92918 | .unused, |
| | 92919 | .unused, |
| | 92920 | .unused, |
| | 92921 | .unused, |
| | 92922 | .unused, |
| | 92923 | .unused, |
| | 92924 | .unused, |
| | 92925 | .unused, |
| | 92926 | .unused, |
| | 92927 | }, |
| 91597 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92928 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91598 | .each = .{ .once = &.{ | 92929 | .each = .{ .once = &.{ |
| 91599 | .{ ._, .vp_q, .movsxd, .dst0y, .src0x, ._, ._ }, | 92930 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 92931 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 91600 | } }, | 92932 | } }, |
| 91601 | }, .{ | 92933 | }, .{ |
| 91602 | .required_features = .{ .avx2, null, null, null }, | 92934 | .required_features = .{ .avx2, null, null, null }, |
| 91603 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 92935 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 91604 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, | 92936 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91605 | .patterns = &.{ | 92937 | .patterns = &.{ |
| 91606 | .{ .src = .{ .mem, .none, .none } }, | 92938 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91607 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91608 | }, | 92939 | }, |
| 91609 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 92940 | .extra_temps = .{ |
| | 92941 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 92942 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| | 92943 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| | 92944 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| | 92945 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 92946 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 92947 | .unused, |
| | 92948 | .unused, |
| | 92949 | .unused, |
| | 92950 | .unused, |
| | 92951 | .unused, |
| | 92952 | }, |
| | 92953 | .dst_temps = .{ .mem, .unused }, |
| | 92954 | .clobbers = .{ .eflags = true }, |
| 91610 | .each = .{ .once = &.{ | 92955 | .each = .{ .once = &.{ |
| 91611 | .{ ._, .vp_q, .movzxd, .dst0y, .src0x, ._, ._ }, | 92956 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 92957 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 92958 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 92959 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 92960 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 92961 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 92962 | .{ ._, .vp_b, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 92963 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 92964 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, |
| | 92965 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 92966 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91612 | } }, | 92967 | } }, |
| 91613 | }, .{ | 92968 | }, .{ |
| 91614 | .required_features = .{ .avx2, null, null, null }, | 92969 | .required_features = .{ .avx2, null, null, null }, |
| 91615 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 92970 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 91616 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | 92971 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91617 | .patterns = &.{ | 92972 | .patterns = &.{ |
| 91618 | .{ .src = .{ .to_mem, .none, .none } }, | 92973 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91619 | }, | 92974 | }, |
| 91620 | .extra_temps = .{ | 92975 | .extra_temps = .{ |
| 91621 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 92976 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91622 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | 92977 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 91623 | .unused, | 92978 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 91624 | .unused, | 92979 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91625 | .unused, | 92980 | .unused, |
| 91626 | .unused, | 92981 | .unused, |
| 91627 | .unused, | 92982 | .unused, |
| ... | @@ -91633,26 +92988,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91633,26 +92988,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91633 | .dst_temps = .{ .mem, .unused }, | 92988 | .dst_temps = .{ .mem, .unused }, |
| 91634 | .clobbers = .{ .eflags = true }, | 92989 | .clobbers = .{ .eflags = true }, |
| 91635 | .each = .{ .once = &.{ | 92990 | .each = .{ .once = &.{ |
| 91636 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 92991 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 91637 | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 92992 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 91638 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 92993 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91639 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 92994 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 92995 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| | 92996 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 91640 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 92997 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91641 | } }, | 92998 | } }, |
| 91642 | }, .{ | 92999 | }, .{ |
| 91643 | .required_features = .{ .avx2, null, null, null }, | 93000 | .required_features = .{ .avx, null, null, null }, |
| 91644 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 93001 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91645 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, | 93002 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91646 | .patterns = &.{ | 93003 | .patterns = &.{ |
| 91647 | .{ .src = .{ .to_mem, .none, .none } }, | 93004 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91648 | }, | 93005 | }, |
| 91649 | .extra_temps = .{ | 93006 | .extra_temps = .{ |
| 91650 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93007 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91651 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, | 93008 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91652 | .unused, | 93009 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91653 | .unused, | 93010 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91654 | .unused, | 93011 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91655 | .unused, | 93012 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 91656 | .unused, | 93013 | .unused, |
| 91657 | .unused, | 93014 | .unused, |
| 91658 | .unused, | 93015 | .unused, |
| ... | @@ -91662,24 +93019,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91662,24 +93019,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91662 | .dst_temps = .{ .mem, .unused }, | 93019 | .dst_temps = .{ .mem, .unused }, |
| 91663 | .clobbers = .{ .eflags = true }, | 93020 | .clobbers = .{ .eflags = true }, |
| 91664 | .each = .{ .once = &.{ | 93021 | .each = .{ .once = &.{ |
| 91665 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93022 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 91666 | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 93023 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 91667 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 93024 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 93025 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 93026 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 93027 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 93028 | .{ ._, .vp_b, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 93029 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 93030 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 91668 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 93031 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 91669 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93032 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91670 | } }, | 93033 | } }, |
| 91671 | }, .{ | 93034 | }, .{ |
| 91672 | .required_features = .{ .avx, null, null, null }, | 93035 | .required_features = .{ .avx, null, null, null }, |
| 91673 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 93036 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91674 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 93037 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91675 | .patterns = &.{ | 93038 | .patterns = &.{ |
| 91676 | .{ .src = .{ .to_mem, .none, .none } }, | 93039 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91677 | }, | 93040 | }, |
| 91678 | .extra_temps = .{ | 93041 | .extra_temps = .{ |
| 91679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93042 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91680 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | 93043 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91681 | .unused, | 93044 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91682 | .unused, | 93045 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91683 | .unused, | 93046 | .unused, |
| 91684 | .unused, | 93047 | .unused, |
| 91685 | .unused, | 93048 | .unused, |
| ... | @@ -91691,26 +93054,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91691,26 +93054,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91691 | .dst_temps = .{ .mem, .unused }, | 93054 | .dst_temps = .{ .mem, .unused }, |
| 91692 | .clobbers = .{ .eflags = true }, | 93055 | .clobbers = .{ .eflags = true }, |
| 91693 | .each = .{ .once = &.{ | 93056 | .each = .{ .once = &.{ |
| 91694 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93057 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 91695 | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 93058 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 91696 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 93059 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91697 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 93060 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 93061 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 93062 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 91698 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91699 | } }, | 93064 | } }, |
| 91700 | }, .{ | 93065 | }, .{ |
| 91701 | .required_features = .{ .avx, null, null, null }, | 93066 | .required_features = .{ .sse2, null, null, null }, |
| 91702 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 93067 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91703 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 93068 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91704 | .patterns = &.{ | 93069 | .patterns = &.{ |
| 91705 | .{ .src = .{ .to_mem, .none, .none } }, | 93070 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91706 | }, | 93071 | }, |
| 91707 | .extra_temps = .{ | 93072 | .extra_temps = .{ |
| 91708 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93073 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91709 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | 93074 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91710 | .unused, | 93075 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91711 | .unused, | 93076 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91712 | .unused, | 93077 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91713 | .unused, | 93078 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 91714 | .unused, | 93079 | .unused, |
| 91715 | .unused, | 93080 | .unused, |
| 91716 | .unused, | 93081 | .unused, |
| ... | @@ -91720,24 +93085,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91720,24 +93085,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91720 | .dst_temps = .{ .mem, .unused }, | 93085 | .dst_temps = .{ .mem, .unused }, |
| 91721 | .clobbers = .{ .eflags = true }, | 93086 | .clobbers = .{ .eflags = true }, |
| 91722 | .each = .{ .once = &.{ | 93087 | .each = .{ .once = &.{ |
| 91723 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93088 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 91724 | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 93089 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 91725 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 93090 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 91726 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 93091 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 93092 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 93093 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, |
| | 93094 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 93095 | .{ ._, .p_b, .add, .tmp3x, .tmp2x, ._, ._ }, |
| | 93096 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, |
| | 93097 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 93098 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 91727 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93099 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91728 | } }, | 93100 | } }, |
| 91729 | }, .{ | 93101 | }, .{ |
| 91730 | .required_features = .{ .sse4_1, null, null, null }, | 93102 | .required_features = .{ .sse2, null, null, null }, |
| 91731 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 93103 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91732 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 93104 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91733 | .patterns = &.{ | 93105 | .patterns = &.{ |
| 91734 | .{ .src = .{ .to_mem, .none, .none } }, | 93106 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91735 | }, | 93107 | }, |
| 91736 | .extra_temps = .{ | 93108 | .extra_temps = .{ |
| 91737 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93109 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91738 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | 93110 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91739 | .unused, | 93111 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91740 | .unused, | 93112 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91741 | .unused, | 93113 | .unused, |
| 91742 | .unused, | 93114 | .unused, |
| 91743 | .unused, | 93115 | .unused, |
| ... | @@ -91749,24 +93121,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91749,24 +93121,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91749 | .dst_temps = .{ .mem, .unused }, | 93121 | .dst_temps = .{ .mem, .unused }, |
| 91750 | .clobbers = .{ .eflags = true }, | 93122 | .clobbers = .{ .eflags = true }, |
| 91751 | .each = .{ .once = &.{ | 93123 | .each = .{ .once = &.{ |
| 91752 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93124 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 91753 | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 93125 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 91754 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 93126 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91755 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 93127 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| | 93128 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 93129 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 93130 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 91756 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93131 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91757 | } }, | 93132 | } }, |
| 91758 | }, .{ | 93133 | }, .{ |
| 91759 | .required_features = .{ .sse4_1, null, null, null }, | 93134 | .required_features = .{ .sse, null, null, null }, |
| 91760 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 93135 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 91761 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, | 93136 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91762 | .patterns = &.{ | 93137 | .patterns = &.{ |
| 91763 | .{ .src = .{ .to_mem, .none, .none } }, | 93138 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91764 | }, | 93139 | }, |
| 91765 | .extra_temps = .{ | 93140 | .extra_temps = .{ |
| 91766 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93141 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91767 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | 93142 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91768 | .unused, | 93143 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91769 | .unused, | 93144 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91770 | .unused, | 93145 | .unused, |
| 91771 | .unused, | 93146 | .unused, |
| 91772 | .unused, | 93147 | .unused, |
| ... | @@ -91778,22 +93153,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91778,22 +93153,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91778 | .dst_temps = .{ .mem, .unused }, | 93153 | .dst_temps = .{ .mem, .unused }, |
| 91779 | .clobbers = .{ .eflags = true }, | 93154 | .clobbers = .{ .eflags = true }, |
| 91780 | .each = .{ .once = &.{ | 93155 | .each = .{ .once = &.{ |
| 91781 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93156 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 91782 | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 93157 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 91783 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 93158 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91784 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 93159 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| | 93160 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 93161 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 93162 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 91785 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93163 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91786 | } }, | 93164 | } }, |
| 91787 | }, .{ | 93165 | }, .{ |
| 91788 | .required_features = .{ .@"64bit", null, null, null }, | 93166 | .required_features = .{ .slow_incdec, null, null, null }, |
| 91789 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 93167 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 91790 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 93168 | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, |
| 91791 | .patterns = &.{ | 93169 | .patterns = &.{ |
| 91792 | .{ .src = .{ .to_mem, .none, .none } }, | 93170 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91793 | }, | 93171 | }, |
| 91794 | .extra_temps = .{ | 93172 | .extra_temps = .{ |
| 91795 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93173 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91796 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 93174 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91797 | .unused, | 93175 | .unused, |
| 91798 | .unused, | 93176 | .unused, |
| 91799 | .unused, | 93177 | .unused, |
| ... | @@ -91807,22 +93185,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91807,22 +93185,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91807 | .dst_temps = .{ .mem, .unused }, | 93185 | .dst_temps = .{ .mem, .unused }, |
| 91808 | .clobbers = .{ .eflags = true }, | 93186 | .clobbers = .{ .eflags = true }, |
| 91809 | .each = .{ .once = &.{ | 93187 | .each = .{ .once = &.{ |
| 91810 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93188 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91811 | .{ .@"0:", ._d, .movsx, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 93189 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91812 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 93190 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| 91813 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 93191 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| | 93192 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93193 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 91814 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93194 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91815 | } }, | 93195 | } }, |
| 91816 | }, .{ | 93196 | }, .{ |
| 91817 | .required_features = .{ .@"64bit", null, null, null }, | 93197 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 91818 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 93198 | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, |
| 91819 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 91820 | .patterns = &.{ | 93199 | .patterns = &.{ |
| 91821 | .{ .src = .{ .to_mem, .none, .none } }, | 93200 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91822 | }, | 93201 | }, |
| 91823 | .extra_temps = .{ | 93202 | .extra_temps = .{ |
| 91824 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93203 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91825 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 93204 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91826 | .unused, | 93205 | .unused, |
| 91827 | .unused, | 93206 | .unused, |
| 91828 | .unused, | 93207 | .unused, |
| ... | @@ -91836,74 +93215,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91836,74 +93215,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91836 | .dst_temps = .{ .mem, .unused }, | 93215 | .dst_temps = .{ .mem, .unused }, |
| 91837 | .clobbers = .{ .eflags = true }, | 93216 | .clobbers = .{ .eflags = true }, |
| 91838 | .each = .{ .once = &.{ | 93217 | .each = .{ .once = &.{ |
| 91839 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93218 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91840 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 93219 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91841 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 93220 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| 91842 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 93221 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| 91843 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93222 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 91844 | } }, | 93223 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 91845 | }, .{ | 93224 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 91846 | .required_features = .{ .avx, null, null, null }, | | |
| 91847 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | | |
| 91848 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 91849 | .patterns = &.{ | | |
| 91850 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91851 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91852 | }, | | |
| 91853 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 91854 | .each = .{ .once = &.{ | | |
| 91855 | .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, | | |
| 91856 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | | |
| 91857 | } }, | | |
| 91858 | }, .{ | | |
| 91859 | .required_features = .{ .avx, null, null, null }, | | |
| 91860 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | | |
| 91861 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 91862 | .patterns = &.{ | | |
| 91863 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91864 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91865 | }, | | |
| 91866 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 91867 | .each = .{ .once = &.{ | | |
| 91868 | .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, | | |
| 91869 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | | |
| 91870 | } }, | | |
| 91871 | }, .{ | | |
| 91872 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 91873 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | | |
| 91874 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 91875 | .patterns = &.{ | | |
| 91876 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91877 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91878 | }, | | |
| 91879 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 91880 | .each = .{ .once = &.{ | | |
| 91881 | .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, | | |
| 91882 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, | | |
| 91883 | } }, | | |
| 91884 | }, .{ | | |
| 91885 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 91886 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | | |
| 91887 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 91888 | .patterns = &.{ | | |
| 91889 | .{ .src = .{ .mem, .none, .none } }, | | |
| 91890 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 91891 | }, | | |
| 91892 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 91893 | .each = .{ .once = &.{ | | |
| 91894 | .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, | | |
| 91895 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, | | |
| 91896 | } }, | 93225 | } }, |
| 91897 | }, .{ | 93226 | }, .{ |
| 91898 | .required_features = .{ .sse2, null, null, null }, | 93227 | .required_features = .{ .slow_incdec, null, null, null }, |
| 91899 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 93228 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 91900 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 93229 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91901 | .patterns = &.{ | 93230 | .patterns = &.{ |
| 91902 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 93231 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91903 | }, | 93232 | }, |
| 91904 | .extra_temps = .{ | 93233 | .extra_temps = .{ |
| 91905 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 93234 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91906 | .unused, | 93235 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91907 | .unused, | 93236 | .unused, |
| 91908 | .unused, | 93237 | .unused, |
| 91909 | .unused, | 93238 | .unused, |
| ... | @@ -91914,24 +93243,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91914,24 +93243,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91914 | .unused, | 93243 | .unused, |
| 91915 | .unused, | 93244 | .unused, |
| 91916 | }, | 93245 | }, |
| 91917 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 93246 | .dst_temps = .{ .mem, .unused }, |
| | 93247 | .clobbers = .{ .eflags = true }, |
| 91918 | .each = .{ .once = &.{ | 93248 | .each = .{ .once = &.{ |
| 91919 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 93249 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91920 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, | 93250 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91921 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 93251 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 91922 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, | 93252 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 91923 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | 93253 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93254 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 93255 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91924 | } }, | 93256 | } }, |
| 91925 | }, .{ | 93257 | }, .{ |
| 91926 | .required_features = .{ .sse2, null, null, null }, | 93258 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 91927 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 93259 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91928 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 91929 | .patterns = &.{ | 93260 | .patterns = &.{ |
| 91930 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 93261 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91931 | }, | 93262 | }, |
| 91932 | .extra_temps = .{ | 93263 | .extra_temps = .{ |
| 91933 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 93264 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91934 | .unused, | 93265 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91935 | .unused, | 93266 | .unused, |
| 91936 | .unused, | 93267 | .unused, |
| 91937 | .unused, | 93268 | .unused, |
| ... | @@ -91942,24 +93273,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91942,24 +93273,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91942 | .unused, | 93273 | .unused, |
| 91943 | .unused, | 93274 | .unused, |
| 91944 | }, | 93275 | }, |
| 91945 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 93276 | .dst_temps = .{ .mem, .unused }, |
| | 93277 | .clobbers = .{ .eflags = true }, |
| 91946 | .each = .{ .once = &.{ | 93278 | .each = .{ .once = &.{ |
| 91947 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, | 93279 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91948 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, | 93280 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91949 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, | 93281 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 93282 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 93283 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93284 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 93285 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 91950 | } }, | 93286 | } }, |
| 91951 | }, .{ | 93287 | }, .{ |
| 91952 | .required_features = .{ .@"64bit", null, null, null }, | 93288 | .required_features = .{ .slow_incdec, null, null, null }, |
| 91953 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 93289 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 91954 | .dst_constraints = .{ .any_scalar_signed_int, .any }, | 93290 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91955 | .patterns = &.{ | 93291 | .patterns = &.{ |
| 91956 | .{ .src = .{ .to_mem, .none, .none } }, | 93292 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91957 | }, | 93293 | }, |
| 91958 | .extra_temps = .{ | 93294 | .extra_temps = .{ |
| 91959 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93295 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91960 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93296 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 91961 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 93297 | .unused, |
| 91962 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93298 | .unused, |
| 91963 | .unused, | 93299 | .unused, |
| 91964 | .unused, | 93300 | .unused, |
| 91965 | .unused, | 93301 | .unused, |
| ... | @@ -91971,28 +93307,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -91971,28 +93307,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91971 | .dst_temps = .{ .mem, .unused }, | 93307 | .dst_temps = .{ .mem, .unused }, |
| 91972 | .clobbers = .{ .eflags = true }, | 93308 | .clobbers = .{ .eflags = true }, |
| 91973 | .each = .{ .once = &.{ | 93309 | .each = .{ .once = &.{ |
| 91974 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93310 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 91975 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 93311 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91976 | .{ .@"0:", ._d, .movsx, .tmp2q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 93312 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 91977 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 93313 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 91978 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, | 93314 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 91979 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | | |
| 91980 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 91981 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 91982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 93315 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91983 | } }, | 93316 | } }, |
| 91984 | }, .{ | 93317 | }, .{ |
| 91985 | .required_features = .{ .@"64bit", null, null, null }, | 93318 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 91986 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 93319 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91987 | .dst_constraints = .{ .any_scalar_int, .any }, | | |
| 91988 | .patterns = &.{ | 93320 | .patterns = &.{ |
| 91989 | .{ .src = .{ .to_mem, .none, .none } }, | 93321 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91990 | }, | 93322 | }, |
| 91991 | .extra_temps = .{ | 93323 | .extra_temps = .{ |
| 91992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 93324 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91993 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93325 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 91994 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 93326 | .unused, |
| 91995 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93327 | .unused, |
| 91996 | .unused, | 93328 | .unused, |
| 91997 | .unused, | 93329 | .unused, |
| 91998 | .unused, | 93330 | .unused, |
| ... | @@ -92004,29 +93336,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92004,29 +93336,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92004 | .dst_temps = .{ .mem, .unused }, | 93336 | .dst_temps = .{ .mem, .unused }, |
| 92005 | .clobbers = .{ .eflags = true }, | 93337 | .clobbers = .{ .eflags = true }, |
| 92006 | .each = .{ .once = &.{ | 93338 | .each = .{ .once = &.{ |
| 92007 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 93339 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92008 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 93340 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 92009 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 93341 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 92010 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 93342 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92011 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 93343 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92012 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 93344 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92013 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 92014 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 92015 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 92016 | } }, | 93345 | } }, |
| 92017 | }, .{ | 93346 | }, .{ |
| 92018 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 93347 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92019 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 93348 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 92020 | .dst_constraints = .{ .any_scalar_signed_int, .any }, | 93349 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92021 | .patterns = &.{ | 93350 | .patterns = &.{ |
| 92022 | .{ .src = .{ .to_mem, .none, .none } }, | 93351 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92023 | }, | 93352 | }, |
| 92024 | .extra_temps = .{ | 93353 | .extra_temps = .{ |
| 92025 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 93354 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92026 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93355 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92027 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93356 | .unused, |
| 92028 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93357 | .unused, |
| 92029 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 93358 | .unused, |
| 92030 | .unused, | 93359 | .unused, |
| 92031 | .unused, | 93360 | .unused, |
| 92032 | .unused, | 93361 | .unused, |
| ... | @@ -92037,32 +93366,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92037,32 +93366,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92037 | .dst_temps = .{ .mem, .unused }, | 93366 | .dst_temps = .{ .mem, .unused }, |
| 92038 | .clobbers = .{ .eflags = true }, | 93367 | .clobbers = .{ .eflags = true }, |
| 92039 | .each = .{ .once = &.{ | 93368 | .each = .{ .once = &.{ |
| 92040 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 93369 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92041 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 93370 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92042 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 93371 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92043 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, | 93372 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 92044 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93373 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92045 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, | | |
| 92046 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 92047 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, | | |
| 92048 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | | |
| 92049 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 92050 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 92051 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 92052 | } }, | 93374 | } }, |
| 92053 | }, .{ | 93375 | }, .{ |
| 92054 | .required_features = .{ .@"64bit", null, null, null }, | 93376 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 92055 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 93377 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92056 | .dst_constraints = .{ .any_scalar_signed_int, .any }, | | |
| 92057 | .patterns = &.{ | 93378 | .patterns = &.{ |
| 92058 | .{ .src = .{ .to_mem, .none, .none } }, | 93379 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92059 | }, | 93380 | }, |
| 92060 | .extra_temps = .{ | 93381 | .extra_temps = .{ |
| 92061 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 93382 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92062 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93383 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92063 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93384 | .unused, |
| 92064 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93385 | .unused, |
| 92065 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 93386 | .unused, |
| 92066 | .unused, | 93387 | .unused, |
| 92067 | .unused, | 93388 | .unused, |
| 92068 | .unused, | 93389 | .unused, |
| ... | @@ -92073,32 +93394,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92073,32 +93394,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92073 | .dst_temps = .{ .mem, .unused }, | 93394 | .dst_temps = .{ .mem, .unused }, |
| 92074 | .clobbers = .{ .eflags = true }, | 93395 | .clobbers = .{ .eflags = true }, |
| 92075 | .each = .{ .once = &.{ | 93396 | .each = .{ .once = &.{ |
| 92076 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 93397 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92077 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 93398 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92078 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 93399 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92079 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, | 93400 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92080 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | | |
| 92081 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, | | |
| 92082 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 92083 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, | | |
| 92084 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | | |
| 92085 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 92086 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 92087 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 93401 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92088 | } }, | 93402 | } }, |
| 92089 | }, .{ | 93403 | }, .{ |
| 92090 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 93404 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92091 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 93405 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 92092 | .dst_constraints = .{ .any_scalar_int, .any }, | 93406 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92093 | .patterns = &.{ | 93407 | .patterns = &.{ |
| 92094 | .{ .src = .{ .to_mem, .none, .none } }, | 93408 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92095 | }, | 93409 | }, |
| 92096 | .extra_temps = .{ | 93410 | .extra_temps = .{ |
| 92097 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 93411 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92098 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93412 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 92099 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93413 | .unused, |
| 92100 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93414 | .unused, |
| 92101 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 93415 | .unused, |
| 92102 | .unused, | 93416 | .unused, |
| 92103 | .unused, | 93417 | .unused, |
| 92104 | .unused, | 93418 | .unused, |
| ... | @@ -92109,30 +93423,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92109,30 +93423,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92109 | .dst_temps = .{ .mem, .unused }, | 93423 | .dst_temps = .{ .mem, .unused }, |
| 92110 | .clobbers = .{ .eflags = true }, | 93424 | .clobbers = .{ .eflags = true }, |
| 92111 | .each = .{ .once = &.{ | 93425 | .each = .{ .once = &.{ |
| 92112 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 93426 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92113 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 93427 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92114 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 93428 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92115 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, | 93429 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92116 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93430 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92117 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 93431 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 92118 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | 93432 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92119 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 92120 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 92121 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 92122 | } }, | 93433 | } }, |
| 92123 | }, .{ | 93434 | }, .{ |
| 92124 | .required_features = .{ .@"64bit", null, null, null }, | 93435 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 92125 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 93436 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92126 | .dst_constraints = .{ .any_scalar_int, .any }, | | |
| 92127 | .patterns = &.{ | 93437 | .patterns = &.{ |
| 92128 | .{ .src = .{ .to_mem, .none, .none } }, | 93438 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92129 | }, | 93439 | }, |
| 92130 | .extra_temps = .{ | 93440 | .extra_temps = .{ |
| 92131 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 93441 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92132 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93442 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 92133 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93443 | .unused, |
| 92134 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93444 | .unused, |
| 92135 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 93445 | .unused, |
| 92136 | .unused, | 93446 | .unused, |
| 92137 | .unused, | 93447 | .unused, |
| 92138 | .unused, | 93448 | .unused, |
| ... | @@ -92143,343 +93453,84 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92143,343 +93453,84 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92143 | .dst_temps = .{ .mem, .unused }, | 93453 | .dst_temps = .{ .mem, .unused }, |
| 92144 | .clobbers = .{ .eflags = true }, | 93454 | .clobbers = .{ .eflags = true }, |
| 92145 | .each = .{ .once = &.{ | 93455 | .each = .{ .once = &.{ |
| 92146 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 93456 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92147 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 93457 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92148 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 93458 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92149 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, | 93459 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92150 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93460 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92151 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 93461 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92152 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | | |
| 92153 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 92154 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 92155 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 93462 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92156 | } }, | 93463 | } }, |
| 92157 | } }) catch |err| switch (err) { | | |
| 92158 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | | |
| 92159 | @tagName(air_tag), | | |
| 92160 | dst_ty.fmt(pt), | | |
| 92161 | src_ty.fmt(pt), | | |
| 92162 | ops[0].tracking(cg), | | |
| 92163 | }), | | |
| 92164 | else => |e| return e, | | |
| 92165 | }; | | |
| 92166 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 92167 | }, | | |
| 92168 | .intcast_safe => unreachable, | | |
| 92169 | .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else { | | |
| 92170 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 92171 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 92172 | var res: [1]Temp = undefined; | | |
| 92173 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ | | |
| 92174 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, | | |
| 92175 | .dst_constraints = .{ .{ .exact_signed_int = 1 }, .any }, | | |
| 92176 | .patterns = &.{ | | |
| 92177 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92178 | }, | | |
| 92179 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92180 | .clobbers = .{ .eflags = true }, | | |
| 92181 | .each = .{ .once = &.{ | | |
| 92182 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, | | |
| 92183 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | | |
| 92184 | } }, | | |
| 92185 | }, .{ | | |
| 92186 | .src_constraints = .{ .any_signed_int, .any, .any }, | | |
| 92187 | .dst_constraints = .{ .{ .exact_signed_int = 1 }, .any }, | | |
| 92188 | .patterns = &.{ | | |
| 92189 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92190 | }, | | |
| 92191 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92192 | .clobbers = .{ .eflags = true }, | | |
| 92193 | .each = .{ .once = &.{ | | |
| 92194 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 92195 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, | | |
| 92196 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | | |
| 92197 | } }, | | |
| 92198 | }, .{ | | |
| 92199 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | | |
| 92200 | .dst_constraints = .{ .{ .exact_int = 8 }, .any }, | | |
| 92201 | .patterns = &.{ | | |
| 92202 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92203 | }, | | |
| 92204 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92205 | .each = .{ .once = &.{} }, | | |
| 92206 | }, .{ | | |
| 92207 | .src_constraints = .{ .any_signed_int, .any, .any }, | | |
| 92208 | .dst_constraints = .{ .{ .exact_signed_int = 8 }, .any }, | | |
| 92209 | .patterns = &.{ | | |
| 92210 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92211 | }, | | |
| 92212 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92213 | .each = .{ .once = &.{ | | |
| 92214 | .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 92215 | } }, | | |
| 92216 | }, .{ | | |
| 92217 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | | |
| 92218 | .dst_constraints = .{ .{ .exact_unsigned_int = 8 }, .any }, | | |
| 92219 | .patterns = &.{ | | |
| 92220 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92221 | }, | | |
| 92222 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92223 | .each = .{ .once = &.{ | | |
| 92224 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 92225 | } }, | | |
| 92226 | }, .{ | | |
| 92227 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, | | |
| 92228 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, | | |
| 92229 | .patterns = &.{ | | |
| 92230 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92231 | }, | | |
| 92232 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92233 | .clobbers = .{ .eflags = true }, | | |
| 92234 | .each = .{ .once = &.{ | | |
| 92235 | .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92236 | .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92237 | } }, | | |
| 92238 | }, .{ | | |
| 92239 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, | | |
| 92240 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, | | |
| 92241 | .patterns = &.{ | | |
| 92242 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92243 | }, | | |
| 92244 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92245 | .clobbers = .{ .eflags = true }, | | |
| 92246 | .each = .{ .once = &.{ | | |
| 92247 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 92248 | } }, | | |
| 92249 | }, .{ | | |
| 92250 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 92251 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, | | |
| 92252 | .patterns = &.{ | | |
| 92253 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92254 | }, | | |
| 92255 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92256 | .clobbers = .{ .eflags = true }, | | |
| 92257 | .each = .{ .once = &.{ | | |
| 92258 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 92259 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 92260 | } }, | | |
| 92261 | }, .{ | | |
| 92262 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | | |
| 92263 | .dst_constraints = .{ .{ .exact_int = 16 }, .any }, | | |
| 92264 | .patterns = &.{ | | |
| 92265 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92266 | }, | | |
| 92267 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92268 | .each = .{ .once = &.{} }, | | |
| 92269 | }, .{ | | |
| 92270 | .src_constraints = .{ .any_signed_int, .any, .any }, | | |
| 92271 | .dst_constraints = .{ .{ .exact_signed_int = 16 }, .any }, | | |
| 92272 | .patterns = &.{ | | |
| 92273 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92274 | }, | | |
| 92275 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92276 | .each = .{ .once = &.{ | | |
| 92277 | .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ }, | | |
| 92278 | } }, | | |
| 92279 | }, .{ | | |
| 92280 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | | |
| 92281 | .dst_constraints = .{ .{ .exact_unsigned_int = 16 }, .any }, | | |
| 92282 | .patterns = &.{ | | |
| 92283 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92284 | }, | | |
| 92285 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92286 | .each = .{ .once = &.{ | | |
| 92287 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, | | |
| 92288 | } }, | | |
| 92289 | }, .{ | | |
| 92290 | .required_features = .{ .fast_imm16, null, null, null }, | | |
| 92291 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, | | |
| 92292 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, | | |
| 92293 | .patterns = &.{ | | |
| 92294 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92295 | }, | | |
| 92296 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92297 | .clobbers = .{ .eflags = true }, | | |
| 92298 | .each = .{ .once = &.{ | | |
| 92299 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 92300 | } }, | | |
| 92301 | }, .{ | | |
| 92302 | .required_features = .{ .fast_imm16, null, null, null }, | | |
| 92303 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | | |
| 92304 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, | | |
| 92305 | .patterns = &.{ | | |
| 92306 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92307 | }, | | |
| 92308 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92309 | .clobbers = .{ .eflags = true }, | | |
| 92310 | .each = .{ .once = &.{ | | |
| 92311 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, | | |
| 92312 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 92313 | } }, | | |
| 92314 | }, .{ | | |
| 92315 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | | |
| 92316 | .dst_constraints = .{ .{ .exact_int = 32 }, .any }, | | |
| 92317 | .patterns = &.{ | | |
| 92318 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92319 | }, | | |
| 92320 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92321 | .each = .{ .once = &.{} }, | | |
| 92322 | }, .{ | | |
| 92323 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 92324 | .dst_constraints = .{ .{ .exact_int = 32 }, .any }, | | |
| 92325 | .patterns = &.{ | | |
| 92326 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92327 | }, | | |
| 92328 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92329 | .each = .{ .once = &.{ | | |
| 92330 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, | | |
| 92331 | } }, | | |
| 92332 | }, .{ | | |
| 92333 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, | | |
| 92334 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, | | |
| 92335 | .patterns = &.{ | | |
| 92336 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92337 | }, | | |
| 92338 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92339 | .clobbers = .{ .eflags = true }, | | |
| 92340 | .each = .{ .once = &.{ | | |
| 92341 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92342 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92343 | } }, | | |
| 92344 | }, .{ | | |
| 92345 | .src_constraints = .{ .any_signed_int, .any, .any }, | | |
| 92346 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, | | |
| 92347 | .patterns = &.{ | | |
| 92348 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92349 | }, | | |
| 92350 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92351 | .clobbers = .{ .eflags = true }, | | |
| 92352 | .each = .{ .once = &.{ | | |
| 92353 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, | | |
| 92354 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92355 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92356 | } }, | | |
| 92357 | }, .{ | | |
| 92358 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, | | |
| 92359 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, | | |
| 92360 | .patterns = &.{ | | |
| 92361 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92362 | }, | | |
| 92363 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92364 | .clobbers = .{ .eflags = true }, | | |
| 92365 | .each = .{ .once = &.{ | | |
| 92366 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 92367 | } }, | | |
| 92368 | }, .{ | | |
| 92369 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | | |
| 92370 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, | | |
| 92371 | .patterns = &.{ | | |
| 92372 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92373 | }, | | |
| 92374 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92375 | .clobbers = .{ .eflags = true }, | | |
| 92376 | .each = .{ .once = &.{ | | |
| 92377 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, | | |
| 92378 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 92379 | } }, | | |
| 92380 | }, .{ | | |
| 92381 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 92382 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 92383 | .dst_constraints = .{ .{ .exact_int = 64 }, .any }, | | |
| 92384 | .patterns = &.{ | | |
| 92385 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92386 | }, | | |
| 92387 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92388 | .each = .{ .once = &.{ | | |
| 92389 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, | | |
| 92390 | } }, | | |
| 92391 | }, .{ | | |
| 92392 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 92393 | .src_constraints = .{ .{ .signed_int = .gpr }, .any, .any }, | | |
| 92394 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, | | |
| 92395 | .patterns = &.{ | | |
| 92396 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 92397 | }, | | |
| 92398 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 92399 | .clobbers = .{ .eflags = true }, | | |
| 92400 | .each = .{ .once = &.{ | | |
| 92401 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92402 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 92403 | } }, | | |
| 92404 | }, .{ | 93464 | }, .{ |
| 92405 | .required_features = .{ .@"64bit", null, null, null }, | 93465 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92406 | .src_constraints = .{ .any_signed_int, .any, .any }, | 93466 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 92407 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, | 93467 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92408 | .patterns = &.{ | 93468 | .patterns = &.{ |
| 92409 | .{ .src = .{ .to_mem, .none, .none } }, | 93469 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92410 | }, | 93470 | }, |
| 92411 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 93471 | .extra_temps = .{ |
| 92412 | .clobbers = .{ .eflags = true }, | 93472 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92413 | .each = .{ .once = &.{ | 93473 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92414 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, | 93474 | .unused, |
| 92415 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | 93475 | .unused, |
| 92416 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | 93476 | .unused, |
| 92417 | } }, | 93477 | .unused, |
| 92418 | }, .{ | 93478 | .unused, |
| 92419 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 93479 | .unused, |
| 92420 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, | 93480 | .unused, |
| 92421 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, | 93481 | .unused, |
| 92422 | .patterns = &.{ | 93482 | .unused, |
| 92423 | .{ .src = .{ .mem, .none, .none } }, | | |
| 92424 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 92425 | }, | 93483 | }, |
| 92426 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 93484 | .dst_temps = .{ .mem, .unused }, |
| 92427 | .clobbers = .{ .eflags = true }, | 93485 | .clobbers = .{ .eflags = true }, |
| 92428 | .each = .{ .once = &.{ | 93486 | .each = .{ .once = &.{ |
| 92429 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, | 93487 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92430 | .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ }, | 93488 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 93489 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 93490 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93491 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 93492 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92431 | } }, | 93493 | } }, |
| 92432 | }, .{ | 93494 | }, .{ |
| 92433 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 93495 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 92434 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | 93496 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92435 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, | | |
| 92436 | .patterns = &.{ | 93497 | .patterns = &.{ |
| 92437 | .{ .src = .{ .to_mem, .none, .none } }, | 93498 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92438 | }, | 93499 | }, |
| 92439 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 93500 | .extra_temps = .{ |
| 92440 | .clobbers = .{ .eflags = true }, | 93501 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92441 | .each = .{ .once = &.{ | 93502 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92442 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, | 93503 | .unused, |
| 92443 | .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ }, | 93504 | .unused, |
| 92444 | } }, | 93505 | .unused, |
| 92445 | }, .{ | 93506 | .unused, |
| 92446 | .required_features = .{ .@"64bit", null, null, null }, | 93507 | .unused, |
| 92447 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, | 93508 | .unused, |
| 92448 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, | 93509 | .unused, |
| 92449 | .patterns = &.{ | 93510 | .unused, |
| 92450 | .{ .src = .{ .mem, .none, .none } }, | 93511 | .unused, |
| 92451 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 92452 | }, | | |
| 92453 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 92454 | .clobbers = .{ .eflags = true }, | | |
| 92455 | .each = .{ .once = &.{ | | |
| 92456 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, | | |
| 92457 | .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ }, | | |
| 92458 | } }, | | |
| 92459 | }, .{ | | |
| 92460 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 92461 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | | |
| 92462 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, | | |
| 92463 | .patterns = &.{ | | |
| 92464 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 92465 | }, | 93512 | }, |
| 92466 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 93513 | .dst_temps = .{ .mem, .unused }, |
| 92467 | .clobbers = .{ .eflags = true }, | 93514 | .clobbers = .{ .eflags = true }, |
| 92468 | .each = .{ .once = &.{ | 93515 | .each = .{ .once = &.{ |
| 92469 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, | 93516 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92470 | .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ }, | 93517 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 93518 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 93519 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93520 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 93521 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92471 | } }, | 93522 | } }, |
| 92472 | }, .{ | 93523 | }, .{ |
| 92473 | .required_features = .{ .@"64bit", null, null, null }, | 93524 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92474 | .src_constraints = .{ .any_int, .any, .any }, | 93525 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92475 | .dst_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any }, | 93526 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92476 | .patterns = &.{ | 93527 | .patterns = &.{ |
| 92477 | .{ .src = .{ .to_mem, .none, .none } }, | 93528 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92478 | }, | 93529 | }, |
| 92479 | .extra_temps = .{ | 93530 | .extra_temps = .{ |
| 92480 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93531 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92481 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93532 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92482 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93533 | .unused, |
| 92483 | .unused, | 93534 | .unused, |
| 92484 | .unused, | 93535 | .unused, |
| 92485 | .unused, | 93536 | .unused, |
| ... | @@ -92490,23 +93541,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92490,23 +93541,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92490 | .unused, | 93541 | .unused, |
| 92491 | }, | 93542 | }, |
| 92492 | .dst_temps = .{ .mem, .unused }, | 93543 | .dst_temps = .{ .mem, .unused }, |
| | 93544 | .clobbers = .{ .eflags = true }, |
| 92493 | .each = .{ .once = &.{ | 93545 | .each = .{ .once = &.{ |
| 92494 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93546 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92495 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93547 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92496 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, | 93548 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92497 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93549 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 93550 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92498 | } }, | 93551 | } }, |
| 92499 | }, .{ | 93552 | }, .{ |
| 92500 | .required_features = .{ .@"64bit", null, null, null }, | 93553 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92501 | .src_constraints = .{ .any_signed_int, .any, .any }, | 93554 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92502 | .dst_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any }, | | |
| 92503 | .patterns = &.{ | 93555 | .patterns = &.{ |
| 92504 | .{ .src = .{ .to_mem, .none, .none } }, | 93556 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92505 | }, | 93557 | }, |
| 92506 | .extra_temps = .{ | 93558 | .extra_temps = .{ |
| 92507 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93559 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92508 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93560 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92509 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93561 | .unused, |
| 92510 | .unused, | 93562 | .unused, |
| 92511 | .unused, | 93563 | .unused, |
| 92512 | .unused, | 93564 | .unused, |
| ... | @@ -92519,26 +93571,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92519,26 +93571,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92519 | .dst_temps = .{ .mem, .unused }, | 93571 | .dst_temps = .{ .mem, .unused }, |
| 92520 | .clobbers = .{ .eflags = true }, | 93572 | .clobbers = .{ .eflags = true }, |
| 92521 | .each = .{ .once = &.{ | 93573 | .each = .{ .once = &.{ |
| 92522 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93574 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92523 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93575 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92524 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | 93576 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92525 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93577 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92526 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, | 93578 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92527 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, | | |
| 92528 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | | |
| 92529 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | | |
| 92530 | } }, | 93579 | } }, |
| 92531 | }, .{ | 93580 | }, .{ |
| 92532 | .required_features = .{ .@"64bit", null, null, null }, | 93581 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92533 | .src_constraints = .{ .any_signed_int, .any, .any }, | 93582 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92534 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 93583 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92535 | .patterns = &.{ | 93584 | .patterns = &.{ |
| 92536 | .{ .src = .{ .to_mem, .none, .none } }, | 93585 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92537 | }, | 93586 | }, |
| 92538 | .extra_temps = .{ | 93587 | .extra_temps = .{ |
| 92539 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93588 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92540 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93589 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 92541 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93590 | .unused, |
| 92542 | .unused, | 93591 | .unused, |
| 92543 | .unused, | 93592 | .unused, |
| 92544 | .unused, | 93593 | .unused, |
| ... | @@ -92551,28 +93600,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92551,28 +93600,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92551 | .dst_temps = .{ .mem, .unused }, | 93600 | .dst_temps = .{ .mem, .unused }, |
| 92552 | .clobbers = .{ .eflags = true }, | 93601 | .clobbers = .{ .eflags = true }, |
| 92553 | .each = .{ .once = &.{ | 93602 | .each = .{ .once = &.{ |
| 92554 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93603 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92555 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93604 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92556 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | 93605 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92557 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93606 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92558 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, | 93607 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92559 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 93608 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 92560 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 93609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92561 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, | | |
| 92562 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | | |
| 92563 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | | |
| 92564 | } }, | 93610 | } }, |
| 92565 | }, .{ | 93611 | }, .{ |
| 92566 | .required_features = .{ .@"64bit", null, null, null }, | 93612 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92567 | .src_constraints = .{ .any_signed_int, .any, .any }, | 93613 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92568 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 92569 | .patterns = &.{ | 93614 | .patterns = &.{ |
| 92570 | .{ .src = .{ .to_mem, .none, .none } }, | 93615 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92571 | }, | 93616 | }, |
| 92572 | .extra_temps = .{ | 93617 | .extra_temps = .{ |
| 92573 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93618 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92574 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93619 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 92575 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93620 | .unused, |
| 92576 | .unused, | 93621 | .unused, |
| 92577 | .unused, | 93622 | .unused, |
| 92578 | .unused, | 93623 | .unused, |
| ... | @@ -92585,26 +93630,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92585,26 +93630,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92585 | .dst_temps = .{ .mem, .unused }, | 93630 | .dst_temps = .{ .mem, .unused }, |
| 92586 | .clobbers = .{ .eflags = true }, | 93631 | .clobbers = .{ .eflags = true }, |
| 92587 | .each = .{ .once = &.{ | 93632 | .each = .{ .once = &.{ |
| 92588 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93633 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92589 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93634 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92590 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 93635 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92591 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93636 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92592 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, | 93637 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92593 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 93638 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92594 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 93639 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92595 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | | |
| 92596 | } }, | 93640 | } }, |
| 92597 | }, .{ | 93641 | }, .{ |
| 92598 | .required_features = .{ .@"64bit", null, null, null }, | 93642 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 92599 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | 93643 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92600 | .dst_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any }, | 93644 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92601 | .patterns = &.{ | 93645 | .patterns = &.{ |
| 92602 | .{ .src = .{ .to_mem, .none, .none } }, | 93646 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92603 | }, | 93647 | }, |
| 92604 | .extra_temps = .{ | 93648 | .extra_temps = .{ |
| 92605 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93649 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92606 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93650 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92607 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93651 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92608 | .unused, | 93652 | .unused, |
| 92609 | .unused, | 93653 | .unused, |
| 92610 | .unused, | 93654 | .unused, |
| ... | @@ -92615,24 +93659,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92615,24 +93659,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92615 | .unused, | 93659 | .unused, |
| 92616 | }, | 93660 | }, |
| 92617 | .dst_temps = .{ .mem, .unused }, | 93661 | .dst_temps = .{ .mem, .unused }, |
| | 93662 | .clobbers = .{ .eflags = true }, |
| 92618 | .each = .{ .once = &.{ | 93663 | .each = .{ .once = &.{ |
| 92619 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93664 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92620 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93665 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 92621 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 93666 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 92622 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93667 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 92623 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, | 93668 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 93669 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92624 | } }, | 93670 | } }, |
| 92625 | }, .{ | 93671 | }, .{ |
| 92626 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 93672 | .required_features = .{ .bmi2, null, null, null }, |
| 92627 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | 93673 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92628 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 93674 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92629 | .patterns = &.{ | 93675 | .patterns = &.{ |
| 92630 | .{ .src = .{ .to_mem, .none, .none } }, | 93676 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92631 | }, | 93677 | }, |
| 92632 | .extra_temps = .{ | 93678 | .extra_temps = .{ |
| 92633 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92634 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93680 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92635 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93681 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92636 | .unused, | 93682 | .unused, |
| 92637 | .unused, | 93683 | .unused, |
| 92638 | .unused, | 93684 | .unused, |
| ... | @@ -92645,26 +93691,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92645,26 +93691,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92645 | .dst_temps = .{ .mem, .unused }, | 93691 | .dst_temps = .{ .mem, .unused }, |
| 92646 | .clobbers = .{ .eflags = true }, | 93692 | .clobbers = .{ .eflags = true }, |
| 92647 | .each = .{ .once = &.{ | 93693 | .each = .{ .once = &.{ |
| 92648 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93694 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92649 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93695 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 92650 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | 93696 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 92651 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93697 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 92652 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, | 93698 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92653 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -16), .tmp2q, ._ }, | 93699 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92654 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp2q, ._, ._ }, | | |
| 92655 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, | | |
| 92656 | } }, | 93700 | } }, |
| 92657 | }, .{ | 93701 | }, .{ |
| 92658 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 93702 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92659 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | 93703 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92660 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 93704 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92661 | .patterns = &.{ | 93705 | .patterns = &.{ |
| 92662 | .{ .src = .{ .to_mem, .none, .none } }, | 93706 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92663 | }, | 93707 | }, |
| 92664 | .extra_temps = .{ | 93708 | .extra_temps = .{ |
| 92665 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93709 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92666 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93710 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92667 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93711 | .unused, |
| 92668 | .unused, | 93712 | .unused, |
| 92669 | .unused, | 93713 | .unused, |
| 92670 | .unused, | 93714 | .unused, |
| ... | @@ -92677,25 +93721,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92677,25 +93721,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92677 | .dst_temps = .{ .mem, .unused }, | 93721 | .dst_temps = .{ .mem, .unused }, |
| 92678 | .clobbers = .{ .eflags = true }, | 93722 | .clobbers = .{ .eflags = true }, |
| 92679 | .each = .{ .once = &.{ | 93723 | .each = .{ .once = &.{ |
| 92680 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93724 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92681 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93725 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92682 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 93726 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 92683 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93727 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92684 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, | 93728 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 92685 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -8), .tmp2q, ._ }, | 93729 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92686 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, | | |
| 92687 | } }, | 93730 | } }, |
| 92688 | }, .{ | 93731 | }, .{ |
| 92689 | .required_features = .{ .@"64bit", null, null, null }, | 93732 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 92690 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | 93733 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92691 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 92692 | .patterns = &.{ | 93734 | .patterns = &.{ |
| 92693 | .{ .src = .{ .to_mem, .none, .none } }, | 93735 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92694 | }, | 93736 | }, |
| 92695 | .extra_temps = .{ | 93737 | .extra_temps = .{ |
| 92696 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93738 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92697 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93739 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92698 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93740 | .unused, |
| 92699 | .unused, | 93741 | .unused, |
| 92700 | .unused, | 93742 | .unused, |
| 92701 | .unused, | 93743 | .unused, |
| ... | @@ -92708,26 +93750,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92708,26 +93750,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92708 | .dst_temps = .{ .mem, .unused }, | 93750 | .dst_temps = .{ .mem, .unused }, |
| 92709 | .clobbers = .{ .eflags = true }, | 93751 | .clobbers = .{ .eflags = true }, |
| 92710 | .each = .{ .once = &.{ | 93752 | .each = .{ .once = &.{ |
| 92711 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93753 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92712 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93754 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92713 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | 93755 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 92714 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93756 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92715 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, | 93757 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92716 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, | 93758 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92717 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, | | |
| 92718 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, | | |
| 92719 | } }, | 93759 | } }, |
| 92720 | }, .{ | 93760 | }, .{ |
| 92721 | .required_features = .{ .@"64bit", null, null, null }, | 93761 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92722 | .src_constraints = .{ .any_unsigned_int, .any, .any }, | 93762 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92723 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 93763 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92724 | .patterns = &.{ | 93764 | .patterns = &.{ |
| 92725 | .{ .src = .{ .to_mem, .none, .none } }, | 93765 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92726 | }, | 93766 | }, |
| 92727 | .extra_temps = .{ | 93767 | .extra_temps = .{ |
| 92728 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 93768 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92729 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 93769 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92730 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 93770 | .unused, |
| 92731 | .unused, | 93771 | .unused, |
| 92732 | .unused, | 93772 | .unused, |
| 92733 | .unused, | 93773 | .unused, |
| ... | @@ -92740,25 +93780,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92740,25 +93780,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92740 | .dst_temps = .{ .mem, .unused }, | 93780 | .dst_temps = .{ .mem, .unused }, |
| 92741 | .clobbers = .{ .eflags = true }, | 93781 | .clobbers = .{ .eflags = true }, |
| 92742 | .each = .{ .once = &.{ | 93782 | .each = .{ .once = &.{ |
| 92743 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 93783 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92744 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 93784 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92745 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 93785 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92746 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 93786 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 92747 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, | 93787 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92748 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, | | |
| 92749 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | | |
| 92750 | } }, | 93788 | } }, |
| 92751 | }, .{ | 93789 | }, .{ |
| 92752 | .required_features = .{ .avx, null, null, null }, | 93790 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92753 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 93791 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92754 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, | | |
| 92755 | .patterns = &.{ | 93792 | .patterns = &.{ |
| 92756 | .{ .src = .{ .to_sse, .none, .none } }, | 93793 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92757 | }, | 93794 | }, |
| 92758 | .extra_temps = .{ | 93795 | .extra_temps = .{ |
| 92759 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 93796 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92760 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 93797 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92761 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | 93798 | .unused, |
| 92762 | .unused, | 93799 | .unused, |
| 92763 | .unused, | 93800 | .unused, |
| 92764 | .unused, | 93801 | .unused, |
| ... | @@ -92768,24 +93805,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92768,24 +93805,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92768 | .unused, | 93805 | .unused, |
| 92769 | .unused, | 93806 | .unused, |
| 92770 | }, | 93807 | }, |
| 92771 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 93808 | .dst_temps = .{ .mem, .unused }, |
| | 93809 | .clobbers = .{ .eflags = true }, |
| 92772 | .each = .{ .once = &.{ | 93810 | .each = .{ .once = &.{ |
| 92773 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 93811 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92774 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, | 93812 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92775 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | 93813 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92776 | .{ ._, .vp_b, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | 93814 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92777 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | 93815 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92778 | } }, | 93816 | } }, |
| 92779 | }, .{ | 93817 | }, .{ |
| 92780 | .required_features = .{ .avx, null, null, null }, | 93818 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92781 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 93819 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92782 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, | 93820 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92783 | .patterns = &.{ | 93821 | .patterns = &.{ |
| 92784 | .{ .src = .{ .to_sse, .none, .none } }, | 93822 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92785 | }, | 93823 | }, |
| 92786 | .extra_temps = .{ | 93824 | .extra_temps = .{ |
| 92787 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 93825 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92788 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 93826 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 92789 | .unused, | 93827 | .unused, |
| 92790 | .unused, | 93828 | .unused, |
| 92791 | .unused, | 93829 | .unused, |
| ... | @@ -92796,22 +93834,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92796,22 +93834,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92796 | .unused, | 93834 | .unused, |
| 92797 | .unused, | 93835 | .unused, |
| 92798 | }, | 93836 | }, |
| 92799 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 93837 | .dst_temps = .{ .mem, .unused }, |
| | 93838 | .clobbers = .{ .eflags = true }, |
| 92800 | .each = .{ .once = &.{ | 93839 | .each = .{ .once = &.{ |
| 92801 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 93840 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92802 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, | 93841 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 93842 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 93843 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 93844 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93845 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 93846 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92803 | } }, | 93847 | } }, |
| 92804 | }, .{ | 93848 | }, .{ |
| 92805 | .required_features = .{ .sse2, null, null, null }, | 93849 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92806 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 93850 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92807 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, | | |
| 92808 | .patterns = &.{ | 93851 | .patterns = &.{ |
| 92809 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 93852 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92810 | }, | 93853 | }, |
| 92811 | .extra_temps = .{ | 93854 | .extra_temps = .{ |
| 92812 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 93855 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92813 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 93856 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 92814 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | 93857 | .unused, |
| 92815 | .unused, | 93858 | .unused, |
| 92816 | .unused, | 93859 | .unused, |
| 92817 | .unused, | 93860 | .unused, |
| ... | @@ -92821,25 +93864,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92821,25 +93864,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92821 | .unused, | 93864 | .unused, |
| 92822 | .unused, | 93865 | .unused, |
| 92823 | }, | 93866 | }, |
| 92824 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 93867 | .dst_temps = .{ .mem, .unused }, |
| | 93868 | .clobbers = .{ .eflags = true }, |
| 92825 | .each = .{ .once = &.{ | 93869 | .each = .{ .once = &.{ |
| 92826 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 93870 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92827 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | 93871 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92828 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | 93872 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92829 | .{ ._, .p_b, .add, .dst0x, .lea(.tmp0x), ._, ._ }, | 93873 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 92830 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, | 93874 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93875 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 93876 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92831 | } }, | 93877 | } }, |
| 92832 | }, .{ | 93878 | }, .{ |
| 92833 | .required_features = .{ .sse2, null, null, null }, | 93879 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 92834 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 93880 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92835 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, | 93881 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92836 | .patterns = &.{ | 93882 | .patterns = &.{ |
| 92837 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 93883 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92838 | }, | 93884 | }, |
| 92839 | .extra_temps = .{ | 93885 | .extra_temps = .{ |
| 92840 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 93886 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92841 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 93887 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92842 | .unused, | 93888 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92843 | .unused, | 93889 | .unused, |
| 92844 | .unused, | 93890 | .unused, |
| 92845 | .unused, | 93891 | .unused, |
| ... | @@ -92849,22 +93895,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92849,22 +93895,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92849 | .unused, | 93895 | .unused, |
| 92850 | .unused, | 93896 | .unused, |
| 92851 | }, | 93897 | }, |
| 92852 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 93898 | .dst_temps = .{ .mem, .unused }, |
| | 93899 | .clobbers = .{ .eflags = true }, |
| 92853 | .each = .{ .once = &.{ | 93900 | .each = .{ .once = &.{ |
| 92854 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 93901 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92855 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | 93902 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 93903 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 93904 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 93905 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 93906 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92856 | } }, | 93907 | } }, |
| 92857 | }, .{ | 93908 | }, .{ |
| 92858 | .required_features = .{ .sse, null, null, null }, | 93909 | .required_features = .{ .bmi2, null, null, null }, |
| 92859 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 93910 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92860 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, | 93911 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92861 | .patterns = &.{ | 93912 | .patterns = &.{ |
| 92862 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 93913 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92863 | }, | 93914 | }, |
| 92864 | .extra_temps = .{ | 93915 | .extra_temps = .{ |
| 92865 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 93916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92866 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 93917 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92867 | .unused, | 93918 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92868 | .unused, | 93919 | .unused, |
| 92869 | .unused, | 93920 | .unused, |
| 92870 | .unused, | 93921 | .unused, |
| ... | @@ -92874,22 +93925,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92874,22 +93925,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92874 | .unused, | 93925 | .unused, |
| 92875 | .unused, | 93926 | .unused, |
| 92876 | }, | 93927 | }, |
| 92877 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 93928 | .dst_temps = .{ .mem, .unused }, |
| | 93929 | .clobbers = .{ .eflags = true }, |
| 92878 | .each = .{ .once = &.{ | 93930 | .each = .{ .once = &.{ |
| 92879 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 93931 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92880 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | 93932 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 93933 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 93934 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 93935 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 93936 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92881 | } }, | 93937 | } }, |
| 92882 | }, .{ | 93938 | }, .{ |
| 92883 | .required_features = .{ .avx2, null, null, null }, | 93939 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92884 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, | 93940 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92885 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, | 93941 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92886 | .patterns = &.{ | 93942 | .patterns = &.{ |
| 92887 | .{ .src = .{ .to_sse, .none, .none } }, | 93943 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92888 | }, | 93944 | }, |
| 92889 | .extra_temps = .{ | 93945 | .extra_temps = .{ |
| 92890 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 93946 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92891 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 93947 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92892 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | 93948 | .unused, |
| 92893 | .unused, | 93949 | .unused, |
| 92894 | .unused, | 93950 | .unused, |
| 92895 | .unused, | 93951 | .unused, |
| ... | @@ -92899,24 +93955,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92899,24 +93955,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92899 | .unused, | 93955 | .unused, |
| 92900 | .unused, | 93956 | .unused, |
| 92901 | }, | 93957 | }, |
| 92902 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 93958 | .dst_temps = .{ .mem, .unused }, |
| | 93959 | .clobbers = .{ .eflags = true }, |
| 92903 | .each = .{ .once = &.{ | 93960 | .each = .{ .once = &.{ |
| 92904 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 93961 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92905 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, | 93962 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 92906 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | 93963 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 92907 | .{ ._, .vp_b, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, | 93964 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 92908 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, | 93965 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 93966 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92909 | } }, | 93967 | } }, |
| 92910 | }, .{ | 93968 | }, .{ |
| 92911 | .required_features = .{ .avx2, null, null, null }, | 93969 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 92912 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, | 93970 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92913 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, | | |
| 92914 | .patterns = &.{ | 93971 | .patterns = &.{ |
| 92915 | .{ .src = .{ .to_sse, .none, .none } }, | 93972 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92916 | }, | 93973 | }, |
| 92917 | .extra_temps = .{ | 93974 | .extra_temps = .{ |
| 92918 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 93975 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92919 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 93976 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92920 | .unused, | 93977 | .unused, |
| 92921 | .unused, | 93978 | .unused, |
| 92922 | .unused, | 93979 | .unused, |
| ... | @@ -92927,25 +93984,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92927,25 +93984,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92927 | .unused, | 93984 | .unused, |
| 92928 | .unused, | 93985 | .unused, |
| 92929 | }, | 93986 | }, |
| 92930 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 93987 | .dst_temps = .{ .mem, .unused }, |
| | 93988 | .clobbers = .{ .eflags = true }, |
| 92931 | .each = .{ .once = &.{ | 93989 | .each = .{ .once = &.{ |
| 92932 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 93990 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92933 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, | 93991 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 93992 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 93993 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 93994 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 93995 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92934 | } }, | 93996 | } }, |
| 92935 | }, .{ | 93997 | }, .{ |
| 92936 | .required_features = .{ .avx2, null, null, null }, | 93998 | .required_features = .{ .slow_incdec, null, null, null }, |
| 92937 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, | 93999 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 92938 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, | 94000 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92939 | .patterns = &.{ | 94001 | .patterns = &.{ |
| 92940 | .{ .src = .{ .to_mem, .none, .none } }, | 94002 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92941 | }, | 94003 | }, |
| 92942 | .extra_temps = .{ | 94004 | .extra_temps = .{ |
| 92943 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94005 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92944 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, | 94006 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92945 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, | 94007 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92946 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, | 94008 | .unused, |
| 92947 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 94009 | .unused, |
| 92948 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | 94010 | .unused, |
| 92949 | .unused, | 94011 | .unused, |
| 92950 | .unused, | 94012 | .unused, |
| 92951 | .unused, | 94013 | .unused, |
| ... | @@ -92955,30 +94017,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92955,30 +94017,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92955 | .dst_temps = .{ .mem, .unused }, | 94017 | .dst_temps = .{ .mem, .unused }, |
| 92956 | .clobbers = .{ .eflags = true }, | 94018 | .clobbers = .{ .eflags = true }, |
| 92957 | .each = .{ .once = &.{ | 94019 | .each = .{ .once = &.{ |
| 92958 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, | | |
| 92959 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, | | |
| 92960 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, | | |
| 92961 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, | | |
| 92962 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94020 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92963 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, | 94021 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 92964 | .{ ._, .vp_b, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, | 94022 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 92965 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, | 94023 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 92966 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, | 94024 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 92967 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 94025 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 92968 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94026 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92969 | } }, | 94027 | } }, |
| 92970 | }, .{ | 94028 | }, .{ |
| 92971 | .required_features = .{ .avx2, null, null, null }, | 94029 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 92972 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, | 94030 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92973 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, | | |
| 92974 | .patterns = &.{ | 94031 | .patterns = &.{ |
| 92975 | .{ .src = .{ .to_mem, .none, .none } }, | 94032 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92976 | }, | 94033 | }, |
| 92977 | .extra_temps = .{ | 94034 | .extra_temps = .{ |
| 92978 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94035 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92979 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, | 94036 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92980 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, | 94037 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92981 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 94038 | .unused, |
| 92982 | .unused, | 94039 | .unused, |
| 92983 | .unused, | 94040 | .unused, |
| 92984 | .unused, | 94041 | .unused, |
| ... | @@ -92990,28 +94047,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -92990,28 +94047,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92990 | .dst_temps = .{ .mem, .unused }, | 94047 | .dst_temps = .{ .mem, .unused }, |
| 92991 | .clobbers = .{ .eflags = true }, | 94048 | .clobbers = .{ .eflags = true }, |
| 92992 | .each = .{ .once = &.{ | 94049 | .each = .{ .once = &.{ |
| 92993 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 92994 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, | | |
| 92995 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94050 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92996 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, | 94051 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 92997 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, | 94052 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 92998 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 94053 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 92999 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94054 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 94055 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 94056 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 93000 | } }, | 94057 | } }, |
| 93001 | }, .{ | 94058 | }, .{ |
| 93002 | .required_features = .{ .avx, null, null, null }, | 94059 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93003 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 94060 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 93004 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, | 94061 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93005 | .patterns = &.{ | 94062 | .patterns = &.{ |
| 93006 | .{ .src = .{ .to_mem, .none, .none } }, | 94063 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93007 | }, | 94064 | }, |
| 93008 | .extra_temps = .{ | 94065 | .extra_temps = .{ |
| 93009 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94066 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93010 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 94067 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 93011 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 94068 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93012 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 94069 | .unused, |
| 93013 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 94070 | .unused, |
| 93014 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | 94071 | .unused, |
| 93015 | .unused, | 94072 | .unused, |
| 93016 | .unused, | 94073 | .unused, |
| 93017 | .unused, | 94074 | .unused, |
| ... | @@ -93021,30 +94078,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93021,30 +94078,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93021 | .dst_temps = .{ .mem, .unused }, | 94078 | .dst_temps = .{ .mem, .unused }, |
| 93022 | .clobbers = .{ .eflags = true }, | 94079 | .clobbers = .{ .eflags = true }, |
| 93023 | .each = .{ .once = &.{ | 94080 | .each = .{ .once = &.{ |
| 93024 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, | | |
| 93025 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 93026 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, | | |
| 93027 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | | |
| 93028 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94081 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93029 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, | 94082 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 93030 | .{ ._, .vp_b, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, | 94083 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 93031 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, | 94084 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93032 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 94085 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93033 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 94086 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 94087 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 94088 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93034 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94089 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93035 | } }, | 94090 | } }, |
| 93036 | }, .{ | 94091 | }, .{ |
| 93037 | .required_features = .{ .avx, null, null, null }, | 94092 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 93038 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 94093 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93039 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, | | |
| 93040 | .patterns = &.{ | 94094 | .patterns = &.{ |
| 93041 | .{ .src = .{ .to_mem, .none, .none } }, | 94095 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93042 | }, | 94096 | }, |
| 93043 | .extra_temps = .{ | 94097 | .extra_temps = .{ |
| 93044 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94098 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93045 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 94099 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 93046 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 94100 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93047 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 94101 | .unused, |
| 93048 | .unused, | 94102 | .unused, |
| 93049 | .unused, | 94103 | .unused, |
| 93050 | .unused, | 94104 | .unused, |
| ... | @@ -93056,28 +94110,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93056,28 +94110,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93056 | .dst_temps = .{ .mem, .unused }, | 94110 | .dst_temps = .{ .mem, .unused }, |
| 93057 | .clobbers = .{ .eflags = true }, | 94111 | .clobbers = .{ .eflags = true }, |
| 93058 | .each = .{ .once = &.{ | 94112 | .each = .{ .once = &.{ |
| 93059 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 93060 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 93061 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94113 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93062 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, | 94114 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 93063 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | 94115 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 93064 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 94116 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93065 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94117 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 94118 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 94119 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 94120 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 94121 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 93066 | } }, | 94122 | } }, |
| 93067 | }, .{ | 94123 | }, .{ |
| 93068 | .required_features = .{ .sse2, null, null, null }, | 94124 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 93069 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 94125 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 93070 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, | 94126 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93071 | .patterns = &.{ | 94127 | .patterns = &.{ |
| 93072 | .{ .src = .{ .to_mem, .none, .none } }, | 94128 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93073 | }, | 94129 | }, |
| 93074 | .extra_temps = .{ | 94130 | .extra_temps = .{ |
| 93075 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94131 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93076 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 94132 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 93077 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 94133 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93078 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, | 94134 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93079 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 94135 | .unused, |
| 93080 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | 94136 | .unused, |
| 93081 | .unused, | 94137 | .unused, |
| 93082 | .unused, | 94138 | .unused, |
| 93083 | .unused, | 94139 | .unused, |
| ... | @@ -93087,31 +94143,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93087,31 +94143,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93087 | .dst_temps = .{ .mem, .unused }, | 94143 | .dst_temps = .{ .mem, .unused }, |
| 93088 | .clobbers = .{ .eflags = true }, | 94144 | .clobbers = .{ .eflags = true }, |
| 93089 | .each = .{ .once = &.{ | 94145 | .each = .{ .once = &.{ |
| 93090 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, | | |
| 93091 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 93092 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, | | |
| 93093 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | | |
| 93094 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94146 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93095 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, | 94147 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 93096 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 94148 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93097 | .{ ._, .p_b, .add, .tmp3x, .tmp2x, ._, ._ }, | 94149 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 93098 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, | 94150 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 93099 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 94151 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 93100 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 94152 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93101 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94153 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93102 | } }, | 94154 | } }, |
| 93103 | }, .{ | 94155 | }, .{ |
| 93104 | .required_features = .{ .sse2, null, null, null }, | 94156 | .required_features = .{ .bmi2, null, null, null }, |
| 93105 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 94157 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 93106 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, | 94158 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93107 | .patterns = &.{ | 94159 | .patterns = &.{ |
| 93108 | .{ .src = .{ .to_mem, .none, .none } }, | 94160 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93109 | }, | 94161 | }, |
| 93110 | .extra_temps = .{ | 94162 | .extra_temps = .{ |
| 93111 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94163 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93112 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 94164 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 93113 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 94165 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93114 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 94166 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93115 | .unused, | 94167 | .unused, |
| 93116 | .unused, | 94168 | .unused, |
| 93117 | .unused, | 94169 | .unused, |
| ... | @@ -93123,27 +94175,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93123,27 +94175,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93123 | .dst_temps = .{ .mem, .unused }, | 94175 | .dst_temps = .{ .mem, .unused }, |
| 93124 | .clobbers = .{ .eflags = true }, | 94176 | .clobbers = .{ .eflags = true }, |
| 93125 | .each = .{ .once = &.{ | 94177 | .each = .{ .once = &.{ |
| 93126 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 93127 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 93128 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94178 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93129 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | 94179 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 93130 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 94180 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93131 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | 94181 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 93132 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 94182 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 93133 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94183 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 94184 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 94185 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 93134 | } }, | 94186 | } }, |
| 93135 | }, .{ | 94187 | }, .{ |
| 93136 | .required_features = .{ .sse, null, null, null }, | 94188 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93137 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, | 94189 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 93138 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, | 94190 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93139 | .patterns = &.{ | 94191 | .patterns = &.{ |
| 93140 | .{ .src = .{ .to_mem, .none, .none } }, | 94192 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93141 | }, | 94193 | }, |
| 93142 | .extra_temps = .{ | 94194 | .extra_temps = .{ |
| 93143 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94195 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93144 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 94196 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 93145 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 94197 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93146 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 94198 | .unused, |
| 93147 | .unused, | 94199 | .unused, |
| 93148 | .unused, | 94200 | .unused, |
| 93149 | .unused, | 94201 | .unused, |
| ... | @@ -93155,26 +94207,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93155,26 +94207,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93155 | .dst_temps = .{ .mem, .unused }, | 94207 | .dst_temps = .{ .mem, .unused }, |
| 93156 | .clobbers = .{ .eflags = true }, | 94208 | .clobbers = .{ .eflags = true }, |
| 93157 | .each = .{ .once = &.{ | 94209 | .each = .{ .once = &.{ |
| 93158 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 93159 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 93160 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94210 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93161 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, | 94211 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 93162 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 94212 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 93163 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | 94213 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93164 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 94214 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 94215 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 94216 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93165 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94217 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93166 | } }, | 94218 | } }, |
| 93167 | }, .{ | 94219 | }, .{ |
| 93168 | .required_features = .{ .slow_incdec, null, null, null }, | 94220 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 93169 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 94221 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93170 | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, | | |
| 93171 | .patterns = &.{ | 94222 | .patterns = &.{ |
| 93172 | .{ .src = .{ .to_mem, .none, .none } }, | 94223 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93173 | }, | 94224 | }, |
| 93174 | .extra_temps = .{ | 94225 | .extra_temps = .{ |
| 93175 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94226 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93176 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94227 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 93177 | .unused, | 94228 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93178 | .unused, | 94229 | .unused, |
| 93179 | .unused, | 94230 | .unused, |
| 93180 | .unused, | 94231 | .unused, |
| ... | @@ -93188,22 +94239,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93188,22 +94239,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93188 | .clobbers = .{ .eflags = true }, | 94239 | .clobbers = .{ .eflags = true }, |
| 93189 | .each = .{ .once = &.{ | 94240 | .each = .{ .once = &.{ |
| 93190 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94241 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93191 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 94242 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 93192 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, | 94243 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 93193 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, | 94244 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93194 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94245 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 93195 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94246 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 93196 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94247 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 94248 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 93197 | } }, | 94249 | } }, |
| 93198 | }, .{ | 94250 | }, .{ |
| 93199 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 94251 | .required_features = .{ .avx, null, null, null }, |
| 93200 | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, | 94252 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 94253 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93201 | .patterns = &.{ | 94254 | .patterns = &.{ |
| 93202 | .{ .src = .{ .to_mem, .none, .none } }, | 94255 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 94256 | }, |
| | 94257 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 94258 | .each = .{ .once = &.{ |
| | 94259 | .{ ._, .vp_w, .sll, .dst0x, .src0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 94260 | .{ ._, .vp_w, .sra, .dst0x, .dst0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 94261 | } }, |
| | 94262 | }, .{ |
| | 94263 | .required_features = .{ .avx, null, null, null }, |
| | 94264 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 94265 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 94266 | .patterns = &.{ |
| | 94267 | .{ .src = .{ .to_sse, .none, .none } }, |
| 93203 | }, | 94268 | }, |
| 93204 | .extra_temps = .{ | 94269 | .extra_temps = .{ |
| 93205 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94270 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 93206 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94271 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93207 | .unused, | 94272 | .unused, |
| 93208 | .unused, | 94273 | .unused, |
| 93209 | .unused, | 94274 | .unused, |
| ... | @@ -93214,27 +94279,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93214,27 +94279,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93214 | .unused, | 94279 | .unused, |
| 93215 | .unused, | 94280 | .unused, |
| 93216 | }, | 94281 | }, |
| 93217 | .dst_temps = .{ .mem, .unused }, | 94282 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93218 | .clobbers = .{ .eflags = true }, | | |
| 93219 | .each = .{ .once = &.{ | 94283 | .each = .{ .once = &.{ |
| 93220 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94284 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 93221 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 94285 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 93222 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, | | |
| 93223 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, | | |
| 93224 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | | |
| 93225 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 93226 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 93227 | } }, | 94286 | } }, |
| 93228 | }, .{ | 94287 | }, .{ |
| 93229 | .required_features = .{ .slow_incdec, null, null, null }, | 94288 | .required_features = .{ .sse2, null, null, null }, |
| 93230 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 94289 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 93231 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94290 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93232 | .patterns = &.{ | 94291 | .patterns = &.{ |
| 93233 | .{ .src = .{ .to_mem, .none, .none } }, | 94292 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 94293 | }, |
| | 94294 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 94295 | .each = .{ .once = &.{ |
| | 94296 | .{ ._, .p_w, .sll, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 94297 | .{ ._, .p_w, .sra, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 94298 | } }, |
| | 94299 | }, .{ |
| | 94300 | .required_features = .{ .sse2, null, null, null }, |
| | 94301 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 94302 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 94303 | .patterns = &.{ |
| | 94304 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93234 | }, | 94305 | }, |
| 93235 | .extra_temps = .{ | 94306 | .extra_temps = .{ |
| 93236 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94307 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 93237 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94308 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93238 | .unused, | 94309 | .unused, |
| 93239 | .unused, | 94310 | .unused, |
| 93240 | .unused, | 94311 | .unused, |
| ... | @@ -93245,26 +94316,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93245,26 +94316,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93245 | .unused, | 94316 | .unused, |
| 93246 | .unused, | 94317 | .unused, |
| 93247 | }, | 94318 | }, |
| 93248 | .dst_temps = .{ .mem, .unused }, | 94319 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93249 | .clobbers = .{ .eflags = true }, | | |
| 93250 | .each = .{ .once = &.{ | 94320 | .each = .{ .once = &.{ |
| 93251 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94321 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 93252 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 94322 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 93253 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 93254 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 93255 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | | |
| 93256 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 93257 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 93258 | } }, | 94323 | } }, |
| 93259 | }, .{ | 94324 | }, .{ |
| 93260 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 94325 | .required_features = .{ .sse, null, null, null }, |
| 93261 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94326 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 94327 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93262 | .patterns = &.{ | 94328 | .patterns = &.{ |
| 93263 | .{ .src = .{ .to_mem, .none, .none } }, | 94329 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93264 | }, | 94330 | }, |
| 93265 | .extra_temps = .{ | 94331 | .extra_temps = .{ |
| 93266 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94332 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 93267 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94333 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93268 | .unused, | 94334 | .unused, |
| 93269 | .unused, | 94335 | .unused, |
| 93270 | .unused, | 94336 | .unused, |
| ... | @@ -93275,27 +94341,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93275,27 +94341,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93275 | .unused, | 94341 | .unused, |
| 93276 | .unused, | 94342 | .unused, |
| 93277 | }, | 94343 | }, |
| 93278 | .dst_temps = .{ .mem, .unused }, | 94344 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93279 | .clobbers = .{ .eflags = true }, | | |
| 93280 | .each = .{ .once = &.{ | 94345 | .each = .{ .once = &.{ |
| 93281 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94346 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 93282 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 94347 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 93283 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 93284 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 93285 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | | |
| 93286 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 93287 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 93288 | } }, | 94348 | } }, |
| 93289 | }, .{ | 94349 | }, .{ |
| 93290 | .required_features = .{ .slow_incdec, null, null, null }, | 94350 | .required_features = .{ .avx2, null, null, null }, |
| 93291 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 94351 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 93292 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94352 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| 93293 | .patterns = &.{ | 94353 | .patterns = &.{ |
| 93294 | .{ .src = .{ .to_mem, .none, .none } }, | 94354 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 94355 | }, |
| | 94356 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 94357 | .each = .{ .once = &.{ |
| | 94358 | .{ ._, .vp_w, .sll, .dst0y, .src0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 94359 | .{ ._, .vp_w, .sra, .dst0y, .dst0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 94360 | } }, |
| | 94361 | }, .{ |
| | 94362 | .required_features = .{ .avx2, null, null, null }, |
| | 94363 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| | 94364 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| | 94365 | .patterns = &.{ |
| | 94366 | .{ .src = .{ .to_sse, .none, .none } }, |
| 93295 | }, | 94367 | }, |
| 93296 | .extra_temps = .{ | 94368 | .extra_temps = .{ |
| 93297 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94369 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 93298 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94370 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93299 | .unused, | 94371 | .unused, |
| 93300 | .unused, | 94372 | .unused, |
| 93301 | .unused, | 94373 | .unused, |
| ... | @@ -93306,25 +94378,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93306,25 +94378,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93306 | .unused, | 94378 | .unused, |
| 93307 | .unused, | 94379 | .unused, |
| 93308 | }, | 94380 | }, |
| 93309 | .dst_temps = .{ .mem, .unused }, | 94381 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93310 | .clobbers = .{ .eflags = true }, | | |
| 93311 | .each = .{ .once = &.{ | 94382 | .each = .{ .once = &.{ |
| 93312 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94383 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 93313 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 94384 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 93314 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 93315 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | | |
| 93316 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 93317 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 93318 | } }, | 94385 | } }, |
| 93319 | }, .{ | 94386 | }, .{ |
| 93320 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 94387 | .required_features = .{ .avx2, null, null, null }, |
| 93321 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94388 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| | 94389 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| 93322 | .patterns = &.{ | 94390 | .patterns = &.{ |
| 93323 | .{ .src = .{ .to_mem, .none, .none } }, | 94391 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93324 | }, | 94392 | }, |
| 93325 | .extra_temps = .{ | 94393 | .extra_temps = .{ |
| 93326 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94394 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93327 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94395 | .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, |
| 93328 | .unused, | 94396 | .unused, |
| 93329 | .unused, | 94397 | .unused, |
| 93330 | .unused, | 94398 | .unused, |
| ... | @@ -93339,24 +94407,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93339,24 +94407,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93339 | .clobbers = .{ .eflags = true }, | 94407 | .clobbers = .{ .eflags = true }, |
| 93340 | .each = .{ .once = &.{ | 94408 | .each = .{ .once = &.{ |
| 93341 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94409 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93342 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 94410 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93343 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | 94411 | .{ ._, .vp_w, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 93344 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94412 | .{ ._, .vp_w, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 93345 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94413 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 93346 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94414 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 94415 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93347 | } }, | 94416 | } }, |
| 93348 | }, .{ | 94417 | }, .{ |
| 93349 | .required_features = .{ .slow_incdec, null, null, null }, | 94418 | .required_features = .{ .avx2, null, null, null }, |
| 93350 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 94419 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 93351 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | 94420 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| 93352 | .patterns = &.{ | 94421 | .patterns = &.{ |
| 93353 | .{ .src = .{ .to_mem, .none, .none } }, | 94422 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93354 | }, | 94423 | }, |
| 93355 | .extra_temps = .{ | 94424 | .extra_temps = .{ |
| 93356 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94425 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93357 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94426 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 93358 | .unused, | 94427 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 93359 | .unused, | 94428 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93360 | .unused, | 94429 | .unused, |
| 93361 | .unused, | 94430 | .unused, |
| 93362 | .unused, | 94431 | .unused, |
| ... | @@ -93368,21 +94437,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93368,21 +94437,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93368 | .dst_temps = .{ .mem, .unused }, | 94437 | .dst_temps = .{ .mem, .unused }, |
| 93369 | .clobbers = .{ .eflags = true }, | 94438 | .clobbers = .{ .eflags = true }, |
| 93370 | .each = .{ .once = &.{ | 94439 | .each = .{ .once = &.{ |
| | 94440 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 94441 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 93371 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94442 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93372 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 94443 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 93373 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94444 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 93374 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94445 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 93375 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94446 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93376 | } }, | 94447 | } }, |
| 93377 | }, .{ | 94448 | }, .{ |
| 93378 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 94449 | .required_features = .{ .avx, null, null, null }, |
| 93379 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | 94450 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 94451 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93380 | .patterns = &.{ | 94452 | .patterns = &.{ |
| 93381 | .{ .src = .{ .to_mem, .none, .none } }, | 94453 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93382 | }, | 94454 | }, |
| 93383 | .extra_temps = .{ | 94455 | .extra_temps = .{ |
| 93384 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94456 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93385 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94457 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 93386 | .unused, | 94458 | .unused, |
| 93387 | .unused, | 94459 | .unused, |
| 93388 | .unused, | 94460 | .unused, |
| ... | @@ -93397,23 +94469,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93397,23 +94469,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93397 | .clobbers = .{ .eflags = true }, | 94469 | .clobbers = .{ .eflags = true }, |
| 93398 | .each = .{ .once = &.{ | 94470 | .each = .{ .once = &.{ |
| 93399 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94471 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93400 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 94472 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93401 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94473 | .{ ._, .vp_w, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 93402 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94474 | .{ ._, .vp_w, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 93403 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94475 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 94476 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 94477 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93404 | } }, | 94478 | } }, |
| 93405 | }, .{ | 94479 | }, .{ |
| 93406 | .required_features = .{ .slow_incdec, null, null, null }, | 94480 | .required_features = .{ .avx, null, null, null }, |
| 93407 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 94481 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 93408 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94482 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93409 | .patterns = &.{ | 94483 | .patterns = &.{ |
| 93410 | .{ .src = .{ .to_mem, .none, .none } }, | 94484 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93411 | }, | 94485 | }, |
| 93412 | .extra_temps = .{ | 94486 | .extra_temps = .{ |
| 93413 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94487 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93414 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94488 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 93415 | .unused, | 94489 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 93416 | .unused, | 94490 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93417 | .unused, | 94491 | .unused, |
| 93418 | .unused, | 94492 | .unused, |
| 93419 | .unused, | 94493 | .unused, |
| ... | @@ -93425,23 +94499,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93425,23 +94499,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93425 | .dst_temps = .{ .mem, .unused }, | 94499 | .dst_temps = .{ .mem, .unused }, |
| 93426 | .clobbers = .{ .eflags = true }, | 94500 | .clobbers = .{ .eflags = true }, |
| 93427 | .each = .{ .once = &.{ | 94501 | .each = .{ .once = &.{ |
| | 94502 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 94503 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93428 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94504 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93429 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 94505 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 93430 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94506 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 93431 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94507 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93432 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | | |
| 93433 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 93434 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94508 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93435 | } }, | 94509 | } }, |
| 93436 | }, .{ | 94510 | }, .{ |
| 93437 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 94511 | .required_features = .{ .sse2, null, null, null }, |
| 93438 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94512 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 94513 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93439 | .patterns = &.{ | 94514 | .patterns = &.{ |
| 93440 | .{ .src = .{ .to_mem, .none, .none } }, | 94515 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93441 | }, | 94516 | }, |
| 93442 | .extra_temps = .{ | 94517 | .extra_temps = .{ |
| 93443 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94518 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93444 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94519 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 93445 | .unused, | 94520 | .unused, |
| 93446 | .unused, | 94521 | .unused, |
| 93447 | .unused, | 94522 | .unused, |
| ... | @@ -93456,25 +94531,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93456,25 +94531,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93456 | .clobbers = .{ .eflags = true }, | 94531 | .clobbers = .{ .eflags = true }, |
| 93457 | .each = .{ .once = &.{ | 94532 | .each = .{ .once = &.{ |
| 93458 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94533 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93459 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 94534 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93460 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94535 | .{ ._, .p_w, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 93461 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94536 | .{ ._, .p_w, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 93462 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94537 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 93463 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94538 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93464 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94539 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93465 | } }, | 94540 | } }, |
| 93466 | }, .{ | 94541 | }, .{ |
| 93467 | .required_features = .{ .slow_incdec, null, null, null }, | 94542 | .required_features = .{ .sse2, null, null, null }, |
| 93468 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 94543 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 93469 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94544 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93470 | .patterns = &.{ | 94545 | .patterns = &.{ |
| 93471 | .{ .src = .{ .to_mem, .none, .none } }, | 94546 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93472 | }, | 94547 | }, |
| 93473 | .extra_temps = .{ | 94548 | .extra_temps = .{ |
| 93474 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94549 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93475 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94550 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 93476 | .unused, | 94551 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 93477 | .unused, | 94552 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93478 | .unused, | 94553 | .unused, |
| 93479 | .unused, | 94554 | .unused, |
| 93480 | .unused, | 94555 | .unused, |
| ... | @@ -93486,24 +94561,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93486,24 +94561,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93486 | .dst_temps = .{ .mem, .unused }, | 94561 | .dst_temps = .{ .mem, .unused }, |
| 93487 | .clobbers = .{ .eflags = true }, | 94562 | .clobbers = .{ .eflags = true }, |
| 93488 | .each = .{ .once = &.{ | 94563 | .each = .{ .once = &.{ |
| | 94564 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 94565 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93489 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94566 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93490 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 94567 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 93491 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | 94568 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93492 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94569 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 93493 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94570 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93494 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94571 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93495 | } }, | 94572 | } }, |
| 93496 | }, .{ | 94573 | }, .{ |
| 93497 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 94574 | .required_features = .{ .sse, null, null, null }, |
| 93498 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94575 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 94576 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93499 | .patterns = &.{ | 94577 | .patterns = &.{ |
| 93500 | .{ .src = .{ .to_mem, .none, .none } }, | 94578 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93501 | }, | 94579 | }, |
| 93502 | .extra_temps = .{ | 94580 | .extra_temps = .{ |
| 93503 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94581 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93504 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94582 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 93505 | .unused, | 94583 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 93506 | .unused, | 94584 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93507 | .unused, | 94585 | .unused, |
| 93508 | .unused, | 94586 | .unused, |
| 93509 | .unused, | 94587 | .unused, |
| ... | @@ -93515,23 +94593,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93515,23 +94593,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93515 | .dst_temps = .{ .mem, .unused }, | 94593 | .dst_temps = .{ .mem, .unused }, |
| 93516 | .clobbers = .{ .eflags = true }, | 94594 | .clobbers = .{ .eflags = true }, |
| 93517 | .each = .{ .once = &.{ | 94595 | .each = .{ .once = &.{ |
| | 94596 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 94597 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93518 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94598 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93519 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 94599 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 93520 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | 94600 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93521 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94601 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 93522 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94602 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93523 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94603 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93524 | } }, | 94604 | } }, |
| 93525 | }, .{ | 94605 | }, .{ |
| 93526 | .required_features = .{ .slow_incdec, null, null, null }, | 94606 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93527 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94607 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 93528 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | | |
| 93529 | .patterns = &.{ | 94608 | .patterns = &.{ |
| 93530 | .{ .src = .{ .to_mem, .none, .none } }, | 94609 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93531 | }, | 94610 | }, |
| 93532 | .extra_temps = .{ | 94611 | .extra_temps = .{ |
| 93533 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94612 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93534 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94613 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93535 | .unused, | 94614 | .unused, |
| 93536 | .unused, | 94615 | .unused, |
| 93537 | .unused, | 94616 | .unused, |
| ... | @@ -93546,20 +94625,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93546,20 +94625,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93546 | .clobbers = .{ .eflags = true }, | 94625 | .clobbers = .{ .eflags = true }, |
| 93547 | .each = .{ .once = &.{ | 94626 | .each = .{ .once = &.{ |
| 93548 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94627 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93549 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 94628 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93550 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94629 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93551 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94630 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93552 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94631 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93553 | } }, | 94632 | } }, |
| 93554 | }, .{ | 94633 | }, .{ |
| 93555 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94634 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93556 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | 94635 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 93557 | .patterns = &.{ | 94636 | .patterns = &.{ |
| 93558 | .{ .src = .{ .to_mem, .none, .none } }, | 94637 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93559 | }, | 94638 | }, |
| 93560 | .extra_temps = .{ | 94639 | .extra_temps = .{ |
| 93561 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94640 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93562 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94641 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 93563 | .unused, | 94642 | .unused, |
| 93564 | .unused, | 94643 | .unused, |
| 93565 | .unused, | 94644 | .unused, |
| ... | @@ -93574,21 +94653,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93574,21 +94653,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93574 | .clobbers = .{ .eflags = true }, | 94653 | .clobbers = .{ .eflags = true }, |
| 93575 | .each = .{ .once = &.{ | 94654 | .each = .{ .once = &.{ |
| 93576 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94655 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93577 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 94656 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93578 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94657 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93579 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94658 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93580 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94659 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 94660 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 94661 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93581 | } }, | 94662 | } }, |
| 93582 | }, .{ | 94663 | }, .{ |
| 93583 | .required_features = .{ .slow_incdec, null, null, null }, | 94664 | .required_features = .{ .fast_imm16, null, null, null }, |
| 93584 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94665 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93585 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94666 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93586 | .patterns = &.{ | 94667 | .patterns = &.{ |
| 93587 | .{ .src = .{ .to_mem, .none, .none } }, | 94668 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93588 | }, | 94669 | }, |
| 93589 | .extra_temps = .{ | 94670 | .extra_temps = .{ |
| 93590 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94671 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93591 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94672 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93592 | .unused, | 94673 | .unused, |
| 93593 | .unused, | 94674 | .unused, |
| 93594 | .unused, | 94675 | .unused, |
| ... | @@ -93603,22 +94684,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93603,22 +94684,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93603 | .clobbers = .{ .eflags = true }, | 94684 | .clobbers = .{ .eflags = true }, |
| 93604 | .each = .{ .once = &.{ | 94685 | .each = .{ .once = &.{ |
| 93605 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94686 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93606 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 94687 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93607 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94688 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 93608 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94689 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93609 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94690 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93610 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 93611 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94691 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93612 | } }, | 94692 | } }, |
| 93613 | }, .{ | 94693 | }, .{ |
| 93614 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94694 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93615 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94695 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93616 | .patterns = &.{ | 94696 | .patterns = &.{ |
| 93617 | .{ .src = .{ .to_mem, .none, .none } }, | 94697 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93618 | }, | 94698 | }, |
| 93619 | .extra_temps = .{ | 94699 | .extra_temps = .{ |
| 93620 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94700 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93621 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94701 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93622 | .unused, | 94702 | .unused, |
| 93623 | .unused, | 94703 | .unused, |
| 93624 | .unused, | 94704 | .unused, |
| ... | @@ -93633,24 +94713,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93633,24 +94713,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93633 | .clobbers = .{ .eflags = true }, | 94713 | .clobbers = .{ .eflags = true }, |
| 93634 | .each = .{ .once = &.{ | 94714 | .each = .{ .once = &.{ |
| 93635 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94715 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93636 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 94716 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93637 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94717 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 93638 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94718 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93639 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94719 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93640 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94720 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93641 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 93642 | } }, | 94721 | } }, |
| 93643 | }, .{ | 94722 | }, .{ |
| 93644 | .required_features = .{ .bmi2, .slow_incdec, null, null }, | 94723 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93645 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94724 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 93646 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | | |
| 93647 | .patterns = &.{ | 94725 | .patterns = &.{ |
| 93648 | .{ .src = .{ .to_mem, .none, .none } }, | 94726 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93649 | }, | 94727 | }, |
| 93650 | .extra_temps = .{ | 94728 | .extra_temps = .{ |
| 93651 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94729 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93652 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94730 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93653 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94731 | .unused, |
| 93654 | .unused, | 94732 | .unused, |
| 93655 | .unused, | 94733 | .unused, |
| 93656 | .unused, | 94734 | .unused, |
| ... | @@ -93664,23 +94742,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93664,23 +94742,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93664 | .clobbers = .{ .eflags = true }, | 94742 | .clobbers = .{ .eflags = true }, |
| 93665 | .each = .{ .once = &.{ | 94743 | .each = .{ .once = &.{ |
| 93666 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94744 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93667 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 94745 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93668 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 94746 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93669 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 94747 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93670 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 93671 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94748 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93672 | } }, | 94749 | } }, |
| 93673 | }, .{ | 94750 | }, .{ |
| 93674 | .required_features = .{ .bmi2, null, null, null }, | 94751 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93675 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94752 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 93676 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | | |
| 93677 | .patterns = &.{ | 94753 | .patterns = &.{ |
| 93678 | .{ .src = .{ .to_mem, .none, .none } }, | 94754 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93679 | }, | 94755 | }, |
| 93680 | .extra_temps = .{ | 94756 | .extra_temps = .{ |
| 93681 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94757 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93682 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94758 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 93683 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94759 | .unused, |
| 93684 | .unused, | 94760 | .unused, |
| 93685 | .unused, | 94761 | .unused, |
| 93686 | .unused, | 94762 | .unused, |
| ... | @@ -93694,23 +94770,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93694,23 +94770,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93694 | .clobbers = .{ .eflags = true }, | 94770 | .clobbers = .{ .eflags = true }, |
| 93695 | .each = .{ .once = &.{ | 94771 | .each = .{ .once = &.{ |
| 93696 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94772 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93697 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 94773 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93698 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 94774 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93699 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 94775 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93700 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94776 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93701 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94777 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 94778 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93702 | } }, | 94779 | } }, |
| 93703 | }, .{ | 94780 | }, .{ |
| 93704 | .required_features = .{ .slow_incdec, null, null, null }, | 94781 | .required_features = .{ .bmi2, null, null, null }, |
| 93705 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94782 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93706 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94783 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93707 | .patterns = &.{ | 94784 | .patterns = &.{ |
| 93708 | .{ .src = .{ .to_mem, .none, .none } }, | 94785 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93709 | }, | 94786 | }, |
| 93710 | .extra_temps = .{ | 94787 | .extra_temps = .{ |
| 93711 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94788 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93712 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94789 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93713 | .unused, | 94790 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93714 | .unused, | 94791 | .unused, |
| 93715 | .unused, | 94792 | .unused, |
| 93716 | .unused, | 94793 | .unused, |
| ... | @@ -93724,21 +94801,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93724,21 +94801,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93724 | .clobbers = .{ .eflags = true }, | 94801 | .clobbers = .{ .eflags = true }, |
| 93725 | .each = .{ .once = &.{ | 94802 | .each = .{ .once = &.{ |
| 93726 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94803 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93727 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 94804 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93728 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | 94805 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93729 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94806 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 93730 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94807 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93731 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94808 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93732 | } }, | 94809 | } }, |
| 93733 | }, .{ | 94810 | }, .{ |
| | 94811 | .required_features = .{ .fast_imm16, null, null, null }, |
| 93734 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 94812 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93735 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94813 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93736 | .patterns = &.{ | 94814 | .patterns = &.{ |
| 93737 | .{ .src = .{ .to_mem, .none, .none } }, | 94815 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93738 | }, | 94816 | }, |
| 93739 | .extra_temps = .{ | 94817 | .extra_temps = .{ |
| 93740 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94818 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93741 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94819 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93742 | .unused, | 94820 | .unused, |
| 93743 | .unused, | 94821 | .unused, |
| 93744 | .unused, | 94822 | .unused, |
| ... | @@ -93753,22 +94831,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93753,22 +94831,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93753 | .clobbers = .{ .eflags = true }, | 94831 | .clobbers = .{ .eflags = true }, |
| 93754 | .each = .{ .once = &.{ | 94832 | .each = .{ .once = &.{ |
| 93755 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94833 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93756 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 94834 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93757 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | 94835 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 93758 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94836 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93759 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94837 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93760 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94838 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93761 | } }, | 94839 | } }, |
| 93762 | }, .{ | 94840 | }, .{ |
| 93763 | .required_features = .{ .slow_incdec, null, null, null }, | 94841 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93764 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 94842 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93765 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | | |
| 93766 | .patterns = &.{ | 94843 | .patterns = &.{ |
| 93767 | .{ .src = .{ .to_mem, .none, .none } }, | 94844 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93768 | }, | 94845 | }, |
| 93769 | .extra_temps = .{ | 94846 | .extra_temps = .{ |
| 93770 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94847 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93771 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94848 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93772 | .unused, | 94849 | .unused, |
| 93773 | .unused, | 94850 | .unused, |
| 93774 | .unused, | 94851 | .unused, |
| ... | @@ -93783,20 +94860,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93783,20 +94860,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93783 | .clobbers = .{ .eflags = true }, | 94860 | .clobbers = .{ .eflags = true }, |
| 93784 | .each = .{ .once = &.{ | 94861 | .each = .{ .once = &.{ |
| 93785 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94862 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93786 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 94863 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93787 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94864 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 93788 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94865 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 94866 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93789 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94867 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93790 | } }, | 94868 | } }, |
| 93791 | }, .{ | 94869 | }, .{ |
| 93792 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 94870 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93793 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | 94871 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 93794 | .patterns = &.{ | 94872 | .patterns = &.{ |
| 93795 | .{ .src = .{ .to_mem, .none, .none } }, | 94873 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93796 | }, | 94874 | }, |
| 93797 | .extra_temps = .{ | 94875 | .extra_temps = .{ |
| 93798 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94876 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93799 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94877 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93800 | .unused, | 94878 | .unused, |
| 93801 | .unused, | 94879 | .unused, |
| 93802 | .unused, | 94880 | .unused, |
| ... | @@ -93811,21 +94889,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93811,21 +94889,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93811 | .clobbers = .{ .eflags = true }, | 94889 | .clobbers = .{ .eflags = true }, |
| 93812 | .each = .{ .once = &.{ | 94890 | .each = .{ .once = &.{ |
| 93813 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94891 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93814 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 94892 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93815 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94893 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93816 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94894 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93817 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 94895 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93818 | } }, | 94896 | } }, |
| 93819 | }, .{ | 94897 | }, .{ |
| 93820 | .required_features = .{ .slow_incdec, null, null, null }, | | |
| 93821 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 94898 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93822 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94899 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 93823 | .patterns = &.{ | 94900 | .patterns = &.{ |
| 93824 | .{ .src = .{ .to_mem, .none, .none } }, | 94901 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93825 | }, | 94902 | }, |
| 93826 | .extra_temps = .{ | 94903 | .extra_temps = .{ |
| 93827 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94904 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93828 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94905 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 93829 | .unused, | 94906 | .unused, |
| 93830 | .unused, | 94907 | .unused, |
| 93831 | .unused, | 94908 | .unused, |
| ... | @@ -93840,23 +94917,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93840,23 +94917,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93840 | .clobbers = .{ .eflags = true }, | 94917 | .clobbers = .{ .eflags = true }, |
| 93841 | .each = .{ .once = &.{ | 94918 | .each = .{ .once = &.{ |
| 93842 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94919 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93843 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 94920 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93844 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94921 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93845 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94922 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93846 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94923 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93847 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94924 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93848 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94925 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93849 | } }, | 94926 | } }, |
| 93850 | }, .{ | 94927 | }, .{ |
| 93851 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 94928 | .required_features = .{ .bmi2, null, null, null }, |
| 93852 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 94929 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 94930 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93853 | .patterns = &.{ | 94931 | .patterns = &.{ |
| 93854 | .{ .src = .{ .to_mem, .none, .none } }, | 94932 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93855 | }, | 94933 | }, |
| 93856 | .extra_temps = .{ | 94934 | .extra_temps = .{ |
| 93857 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94935 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93858 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 94936 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93859 | .unused, | 94937 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93860 | .unused, | 94938 | .unused, |
| 93861 | .unused, | 94939 | .unused, |
| 93862 | .unused, | 94940 | .unused, |
| ... | @@ -93870,24 +94948,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93870,24 +94948,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93870 | .clobbers = .{ .eflags = true }, | 94948 | .clobbers = .{ .eflags = true }, |
| 93871 | .each = .{ .once = &.{ | 94949 | .each = .{ .once = &.{ |
| 93872 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94950 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93873 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 94951 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93874 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94952 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93875 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 94953 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 93876 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 94954 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93877 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 94955 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93878 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 93879 | } }, | 94956 | } }, |
| 93880 | }, .{ | 94957 | }, .{ |
| 93881 | .required_features = .{ .bmi2, .slow_incdec, null, null }, | 94958 | .required_features = .{ .fast_imm16, null, null, null }, |
| 93882 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 94959 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93883 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94960 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93884 | .patterns = &.{ | 94961 | .patterns = &.{ |
| 93885 | .{ .src = .{ .to_mem, .none, .none } }, | 94962 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93886 | }, | 94963 | }, |
| 93887 | .extra_temps = .{ | 94964 | .extra_temps = .{ |
| 93888 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94965 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93889 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94966 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93890 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94967 | .unused, |
| 93891 | .unused, | 94968 | .unused, |
| 93892 | .unused, | 94969 | .unused, |
| 93893 | .unused, | 94970 | .unused, |
| ... | @@ -93901,23 +94978,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93901,23 +94978,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93901 | .clobbers = .{ .eflags = true }, | 94978 | .clobbers = .{ .eflags = true }, |
| 93902 | .each = .{ .once = &.{ | 94979 | .each = .{ .once = &.{ |
| 93903 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 94980 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93904 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 94981 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93905 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 94982 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 93906 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 94983 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93907 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 94984 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93908 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 94985 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93909 | } }, | 94986 | } }, |
| 93910 | }, .{ | 94987 | }, .{ |
| 93911 | .required_features = .{ .bmi2, null, null, null }, | | |
| 93912 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 94988 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93913 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 94989 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93914 | .patterns = &.{ | 94990 | .patterns = &.{ |
| 93915 | .{ .src = .{ .to_mem, .none, .none } }, | 94991 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93916 | }, | 94992 | }, |
| 93917 | .extra_temps = .{ | 94993 | .extra_temps = .{ |
| 93918 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 94994 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93919 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94995 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93920 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 94996 | .unused, |
| 93921 | .unused, | 94997 | .unused, |
| 93922 | .unused, | 94998 | .unused, |
| 93923 | .unused, | 94999 | .unused, |
| ... | @@ -93931,22 +95007,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93931,22 +95007,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93931 | .clobbers = .{ .eflags = true }, | 95007 | .clobbers = .{ .eflags = true }, |
| 93932 | .each = .{ .once = &.{ | 95008 | .each = .{ .once = &.{ |
| 93933 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95009 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93934 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 95010 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93935 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 95011 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 93936 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 95012 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93937 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 95013 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93938 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 95014 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93939 | } }, | 95015 | } }, |
| 93940 | }, .{ | 95016 | }, .{ |
| 93941 | .required_features = .{ .slow_incdec, null, null, null }, | 95017 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 93942 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 95018 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 93943 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | | |
| 93944 | .patterns = &.{ | 95019 | .patterns = &.{ |
| 93945 | .{ .src = .{ .to_mem, .none, .none } }, | 95020 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93946 | }, | 95021 | }, |
| 93947 | .extra_temps = .{ | 95022 | .extra_temps = .{ |
| 93948 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95023 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93949 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95024 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93950 | .unused, | 95025 | .unused, |
| 93951 | .unused, | 95026 | .unused, |
| 93952 | .unused, | 95027 | .unused, |
| ... | @@ -93962,20 +95037,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93962,20 +95037,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93962 | .each = .{ .once = &.{ | 95037 | .each = .{ .once = &.{ |
| 93963 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95038 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93964 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 95039 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93965 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | 95040 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93966 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 95041 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93967 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 93968 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95042 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93969 | } }, | 95043 | } }, |
| 93970 | }, .{ | 95044 | }, .{ |
| 93971 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 95045 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 93972 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 95046 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 93973 | .patterns = &.{ | 95047 | .patterns = &.{ |
| 93974 | .{ .src = .{ .to_mem, .none, .none } }, | 95048 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93975 | }, | 95049 | }, |
| 93976 | .extra_temps = .{ | 95050 | .extra_temps = .{ |
| 93977 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95051 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93978 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95052 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 93979 | .unused, | 95053 | .unused, |
| 93980 | .unused, | 95054 | .unused, |
| 93981 | .unused, | 95055 | .unused, |
| ... | @@ -93991,22 +95065,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -93991,22 +95065,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93991 | .each = .{ .once = &.{ | 95065 | .each = .{ .once = &.{ |
| 93992 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95066 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93993 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 95067 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93994 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, | 95068 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93995 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 95069 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 93996 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 95070 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 93997 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 95071 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 95072 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93998 | } }, | 95073 | } }, |
| 93999 | }, .{ | 95074 | }, .{ |
| 94000 | .required_features = .{ .slow_incdec, null, null, null }, | 95075 | .required_features = .{ .bmi2, null, null, null }, |
| 94001 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 95076 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 94002 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | 95077 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94003 | .patterns = &.{ | 95078 | .patterns = &.{ |
| 94004 | .{ .src = .{ .to_mem, .none, .none } }, | 95079 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94005 | }, | 95080 | }, |
| 94006 | .extra_temps = .{ | 95081 | .extra_temps = .{ |
| 94007 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95082 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94008 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 94009 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95083 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 95084 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94010 | .unused, | 95085 | .unused, |
| 94011 | .unused, | 95086 | .unused, |
| 94012 | .unused, | 95087 | .unused, |
| ... | @@ -94020,23 +95095,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94020,23 +95095,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94020 | .clobbers = .{ .eflags = true }, | 95095 | .clobbers = .{ .eflags = true }, |
| 94021 | .each = .{ .once = &.{ | 95096 | .each = .{ .once = &.{ |
| 94022 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95097 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94023 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95098 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94024 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 95099 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 94025 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 95100 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94026 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 95101 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94027 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 94028 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95102 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94029 | } }, | 95103 | } }, |
| 94030 | }, .{ | 95104 | }, .{ |
| 94031 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 95105 | .required_features = .{ .fast_imm16, null, null, null }, |
| 94032 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, | 95106 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 95107 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94033 | .patterns = &.{ | 95108 | .patterns = &.{ |
| 94034 | .{ .src = .{ .to_mem, .none, .none } }, | 95109 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94035 | }, | 95110 | }, |
| 94036 | .extra_temps = .{ | 95111 | .extra_temps = .{ |
| 94037 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95112 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94038 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 95113 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94039 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95114 | .unused, |
| 94040 | .unused, | 95115 | .unused, |
| 94041 | .unused, | 95116 | .unused, |
| 94042 | .unused, | 95117 | .unused, |
| ... | @@ -94050,24 +95125,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94050,24 +95125,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94050 | .clobbers = .{ .eflags = true }, | 95125 | .clobbers = .{ .eflags = true }, |
| 94051 | .each = .{ .once = &.{ | 95126 | .each = .{ .once = &.{ |
| 94052 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95127 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94053 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95128 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94054 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 95129 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94055 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 95130 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94056 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 95131 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94057 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 95132 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94058 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 94059 | } }, | 95133 | } }, |
| 94060 | }, .{ | 95134 | }, .{ |
| 94061 | .required_features = .{ .slow_incdec, null, null, null }, | 95135 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 94062 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 95136 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94063 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | | |
| 94064 | .patterns = &.{ | 95137 | .patterns = &.{ |
| 94065 | .{ .src = .{ .to_mem, .none, .none } }, | 95138 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94066 | }, | 95139 | }, |
| 94067 | .extra_temps = .{ | 95140 | .extra_temps = .{ |
| 94068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95141 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94069 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 95142 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94070 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 95143 | .unused, |
| 94071 | .unused, | 95144 | .unused, |
| 94072 | .unused, | 95145 | .unused, |
| 94073 | .unused, | 95146 | .unused, |
| ... | @@ -94081,25 +95154,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94081,25 +95154,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94081 | .clobbers = .{ .eflags = true }, | 95154 | .clobbers = .{ .eflags = true }, |
| 94082 | .each = .{ .once = &.{ | 95155 | .each = .{ .once = &.{ |
| 94083 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95156 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94084 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95157 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94085 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 95158 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94086 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 95159 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94087 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 95160 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94088 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | | |
| 94089 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 94090 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 94091 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95161 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94092 | } }, | 95162 | } }, |
| 94093 | }, .{ | 95163 | }, .{ |
| 94094 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 95164 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 94095 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 95165 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 94096 | .patterns = &.{ | 95166 | .patterns = &.{ |
| 94097 | .{ .src = .{ .to_mem, .none, .none } }, | 95167 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94098 | }, | 95168 | }, |
| 94099 | .extra_temps = .{ | 95169 | .extra_temps = .{ |
| 94100 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95170 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94101 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 95171 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94102 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 95172 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94103 | .unused, | 95173 | .unused, |
| 94104 | .unused, | 95174 | .unused, |
| 94105 | .unused, | 95175 | .unused, |
| ... | @@ -94115,25 +95185,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94115,25 +95185,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94115 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95185 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94116 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95186 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94117 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 95187 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94118 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | 95188 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94119 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 94120 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | | |
| 94121 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 95189 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94122 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 95190 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94123 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 95191 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94124 | } }, | 95192 | } }, |
| 94125 | }, .{ | 95193 | }, .{ |
| 94126 | .required_features = .{ .bmi2, .slow_incdec, null, null }, | 95194 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 94127 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 95195 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 94128 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | | |
| 94129 | .patterns = &.{ | 95196 | .patterns = &.{ |
| 94130 | .{ .src = .{ .to_mem, .none, .none } }, | 95197 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94131 | }, | 95198 | }, |
| 94132 | .extra_temps = .{ | 95199 | .extra_temps = .{ |
| 94133 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95200 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94134 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 95201 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94135 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95202 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 94136 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95203 | .unused, |
| 94137 | .unused, | 95204 | .unused, |
| 94138 | .unused, | 95205 | .unused, |
| 94139 | .unused, | 95206 | .unused, |
| ... | @@ -94147,17 +95214,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94147,17 +95214,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94147 | .each = .{ .once = &.{ | 95214 | .each = .{ .once = &.{ |
| 94148 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95215 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94149 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95216 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94150 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, | 95217 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94151 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, | 95218 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94152 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 95219 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 95220 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94153 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 95221 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94154 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 95222 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94155 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95223 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94156 | } }, | 95224 | } }, |
| 94157 | }, .{ | 95225 | }, .{ |
| 94158 | .required_features = .{ .bmi2, null, null, null }, | 95226 | .required_features = .{ .bmi2, null, null, null }, |
| 94159 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 95227 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94160 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 95228 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94161 | .patterns = &.{ | 95229 | .patterns = &.{ |
| 94162 | .{ .src = .{ .to_mem, .none, .none } }, | 95230 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94163 | }, | 95231 | }, |
| ... | @@ -94165,7 +95233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94165,7 +95233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94165 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95233 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94166 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 95234 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94167 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95235 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94168 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95236 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94169 | .unused, | 95237 | .unused, |
| 94170 | .unused, | 95238 | .unused, |
| 94171 | .unused, | 95239 | .unused, |
| ... | @@ -94181,22 +95249,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94181,22 +95249,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94181 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95249 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94182 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, | 95250 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94183 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, | 95251 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 94184 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 95252 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 94185 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 95253 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94186 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 95254 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94187 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 95255 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94188 | } }, | 95256 | } }, |
| 94189 | }, .{ | 95257 | }, .{ |
| 94190 | .required_features = .{ .slow_incdec, null, null, null }, | 95258 | .required_features = .{ .fast_imm16, null, null, null }, |
| 94191 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 95259 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94192 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 95260 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94193 | .patterns = &.{ | 95261 | .patterns = &.{ |
| 94194 | .{ .src = .{ .to_mem, .none, .none } }, | 95262 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94195 | }, | 95263 | }, |
| 94196 | .extra_temps = .{ | 95264 | .extra_temps = .{ |
| 94197 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95265 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94198 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 95266 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94199 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95267 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94200 | .unused, | 95268 | .unused, |
| 94201 | .unused, | 95269 | .unused, |
| 94202 | .unused, | 95270 | .unused, |
| ... | @@ -94212,22 +95280,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94212,22 +95280,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94212 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95280 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94213 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95281 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94214 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 95282 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94215 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, | 95283 | .{ ._, ._, .@"and", .tmp2w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94216 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 95284 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94217 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 95285 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94218 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 95286 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94219 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94220 | } }, | 95288 | } }, |
| 94221 | }, .{ | 95289 | }, .{ |
| 94222 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 95290 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94223 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 95291 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94224 | .patterns = &.{ | 95292 | .patterns = &.{ |
| 94225 | .{ .src = .{ .to_mem, .none, .none } }, | 95293 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94226 | }, | 95294 | }, |
| 94227 | .extra_temps = .{ | 95295 | .extra_temps = .{ |
| 94228 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95296 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94229 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 95297 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94230 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95298 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94231 | .unused, | 95299 | .unused, |
| 94232 | .unused, | 95300 | .unused, |
| 94233 | .unused, | 95301 | .unused, |
| ... | @@ -94243,28 +95311,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94243,28 +95311,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94243 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95311 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94244 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 95312 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94245 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 95313 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94246 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, | 95314 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94247 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, | 95315 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94248 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 95316 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94249 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 95317 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94250 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 95318 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94251 | } }, | 95319 | } }, |
| 94252 | }, .{ | 95320 | }, .{ |
| 94253 | .required_features = .{ .avx, null, null, null }, | 95321 | .required_features = .{ .avx, null, null, null }, |
| 94254 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95322 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94255 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, | 95323 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94256 | .patterns = &.{ | 95324 | .patterns = &.{ |
| 94257 | .{ .src = .{ .to_sse, .none, .none } }, | 95325 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94258 | }, | 95326 | }, |
| 94259 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 95327 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 94260 | .each = .{ .once = &.{ | 95328 | .each = .{ .once = &.{ |
| 94261 | .{ ._, .vp_w, .sll, .dst0x, .src0x, .uia(16, .dst0, .sub_bit_size), ._ }, | 95329 | .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94262 | .{ ._, .vp_w, .sra, .dst0x, .dst0x, .uia(16, .dst0, .sub_bit_size), ._ }, | 95330 | .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94263 | } }, | 95331 | } }, |
| 94264 | }, .{ | 95332 | }, .{ |
| 94265 | .required_features = .{ .avx, null, null, null }, | 95333 | .required_features = .{ .avx, null, null, null }, |
| 94266 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95334 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94267 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, | 95335 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94268 | .patterns = &.{ | 95336 | .patterns = &.{ |
| 94269 | .{ .src = .{ .to_sse, .none, .none } }, | 95337 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94270 | }, | 95338 | }, |
| ... | @@ -94288,20 +95356,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94288,20 +95356,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94288 | } }, | 95356 | } }, |
| 94289 | }, .{ | 95357 | }, .{ |
| 94290 | .required_features = .{ .sse2, null, null, null }, | 95358 | .required_features = .{ .sse2, null, null, null }, |
| 94291 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95359 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94292 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, | 95360 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94293 | .patterns = &.{ | 95361 | .patterns = &.{ |
| 94294 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 95362 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 94295 | }, | 95363 | }, |
| 94296 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 95364 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 94297 | .each = .{ .once = &.{ | 95365 | .each = .{ .once = &.{ |
| 94298 | .{ ._, .p_w, .sll, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, | 95366 | .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94299 | .{ ._, .p_w, .sra, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, | 95367 | .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94300 | } }, | 95368 | } }, |
| 94301 | }, .{ | 95369 | }, .{ |
| 94302 | .required_features = .{ .sse2, null, null, null }, | 95370 | .required_features = .{ .sse2, null, null, null }, |
| 94303 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95371 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94304 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, | 95372 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94305 | .patterns = &.{ | 95373 | .patterns = &.{ |
| 94306 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 95374 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 94307 | }, | 95375 | }, |
| ... | @@ -94325,8 +95393,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94325,8 +95393,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94325 | } }, | 95393 | } }, |
| 94326 | }, .{ | 95394 | }, .{ |
| 94327 | .required_features = .{ .sse, null, null, null }, | 95395 | .required_features = .{ .sse, null, null, null }, |
| 94328 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95396 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94329 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, | 95397 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94330 | .patterns = &.{ | 95398 | .patterns = &.{ |
| 94331 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 95399 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 94332 | }, | 95400 | }, |
| ... | @@ -94350,20 +95418,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94350,20 +95418,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94350 | } }, | 95418 | } }, |
| 94351 | }, .{ | 95419 | }, .{ |
| 94352 | .required_features = .{ .avx2, null, null, null }, | 95420 | .required_features = .{ .avx2, null, null, null }, |
| 94353 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, | 95421 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 94354 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, | 95422 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94355 | .patterns = &.{ | 95423 | .patterns = &.{ |
| 94356 | .{ .src = .{ .to_sse, .none, .none } }, | 95424 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94357 | }, | 95425 | }, |
| 94358 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 95426 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 94359 | .each = .{ .once = &.{ | 95427 | .each = .{ .once = &.{ |
| 94360 | .{ ._, .vp_w, .sll, .dst0y, .src0y, .uia(16, .dst0, .sub_bit_size), ._ }, | 95428 | .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94361 | .{ ._, .vp_w, .sra, .dst0y, .dst0y, .uia(16, .dst0, .sub_bit_size), ._ }, | 95429 | .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94362 | } }, | 95430 | } }, |
| 94363 | }, .{ | 95431 | }, .{ |
| 94364 | .required_features = .{ .avx2, null, null, null }, | 95432 | .required_features = .{ .avx2, null, null, null }, |
| 94365 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, | 95433 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 94366 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, | 95434 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94367 | .patterns = &.{ | 95435 | .patterns = &.{ |
| 94368 | .{ .src = .{ .to_sse, .none, .none } }, | 95436 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94369 | }, | 95437 | }, |
| ... | @@ -94387,14 +95455,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94387,14 +95455,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94387 | } }, | 95455 | } }, |
| 94388 | }, .{ | 95456 | }, .{ |
| 94389 | .required_features = .{ .avx2, null, null, null }, | 95457 | .required_features = .{ .avx2, null, null, null }, |
| 94390 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, | 95458 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 94391 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, | 95459 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94392 | .patterns = &.{ | 95460 | .patterns = &.{ |
| 94393 | .{ .src = .{ .to_mem, .none, .none } }, | 95461 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94394 | }, | 95462 | }, |
| 94395 | .extra_temps = .{ | 95463 | .extra_temps = .{ |
| 94396 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95464 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94397 | .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, | 95465 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 94398 | .unused, | 95466 | .unused, |
| 94399 | .unused, | 95467 | .unused, |
| 94400 | .unused, | 95468 | .unused, |
| ... | @@ -94410,23 +95478,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94410,23 +95478,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94410 | .each = .{ .once = &.{ | 95478 | .each = .{ .once = &.{ |
| 94411 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95479 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94412 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, | 95480 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94413 | .{ ._, .vp_w, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, | 95481 | .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94414 | .{ ._, .vp_w, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, | 95482 | .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94415 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 95483 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 94416 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 95484 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 94417 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95485 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94418 | } }, | 95486 | } }, |
| 94419 | }, .{ | 95487 | }, .{ |
| 94420 | .required_features = .{ .avx2, null, null, null }, | 95488 | .required_features = .{ .avx2, null, null, null }, |
| 94421 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, | 95489 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 94422 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, | 95490 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94423 | .patterns = &.{ | 95491 | .patterns = &.{ |
| 94424 | .{ .src = .{ .to_mem, .none, .none } }, | 95492 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94425 | }, | 95493 | }, |
| 94426 | .extra_temps = .{ | 95494 | .extra_temps = .{ |
| 94427 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95495 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94428 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, | 95496 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 94429 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, | 95497 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 94430 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 95498 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94431 | .unused, | 95499 | .unused, |
| 94432 | .unused, | 95500 | .unused, |
| ... | @@ -94449,14 +95517,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94449,14 +95517,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94449 | } }, | 95517 | } }, |
| 94450 | }, .{ | 95518 | }, .{ |
| 94451 | .required_features = .{ .avx, null, null, null }, | 95519 | .required_features = .{ .avx, null, null, null }, |
| 94452 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95520 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94453 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, | 95521 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94454 | .patterns = &.{ | 95522 | .patterns = &.{ |
| 94455 | .{ .src = .{ .to_mem, .none, .none } }, | 95523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94456 | }, | 95524 | }, |
| 94457 | .extra_temps = .{ | 95525 | .extra_temps = .{ |
| 94458 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94459 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 95527 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 94460 | .unused, | 95528 | .unused, |
| 94461 | .unused, | 95529 | .unused, |
| 94462 | .unused, | 95530 | .unused, |
| ... | @@ -94472,23 +95540,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94472,23 +95540,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94472 | .each = .{ .once = &.{ | 95540 | .each = .{ .once = &.{ |
| 94473 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95541 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94474 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 95542 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94475 | .{ ._, .vp_w, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, | 95543 | .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94476 | .{ ._, .vp_w, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, | 95544 | .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94477 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 95545 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 94478 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 95546 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94479 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95547 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94480 | } }, | 95548 | } }, |
| 94481 | }, .{ | 95549 | }, .{ |
| 94482 | .required_features = .{ .avx, null, null, null }, | 95550 | .required_features = .{ .avx, null, null, null }, |
| 94483 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95551 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94484 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, | 95552 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94485 | .patterns = &.{ | 95553 | .patterns = &.{ |
| 94486 | .{ .src = .{ .to_mem, .none, .none } }, | 95554 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94487 | }, | 95555 | }, |
| 94488 | .extra_temps = .{ | 95556 | .extra_temps = .{ |
| 94489 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95557 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94490 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 95558 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94491 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 95559 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94492 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 95560 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94493 | .unused, | 95561 | .unused, |
| 94494 | .unused, | 95562 | .unused, |
| ... | @@ -94511,14 +95579,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94511,14 +95579,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94511 | } }, | 95579 | } }, |
| 94512 | }, .{ | 95580 | }, .{ |
| 94513 | .required_features = .{ .sse2, null, null, null }, | 95581 | .required_features = .{ .sse2, null, null, null }, |
| 94514 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95582 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94515 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, | 95583 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94516 | .patterns = &.{ | 95584 | .patterns = &.{ |
| 94517 | .{ .src = .{ .to_mem, .none, .none } }, | 95585 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94518 | }, | 95586 | }, |
| 94519 | .extra_temps = .{ | 95587 | .extra_temps = .{ |
| 94520 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95588 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94521 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 95589 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 94522 | .unused, | 95590 | .unused, |
| 94523 | .unused, | 95591 | .unused, |
| 94524 | .unused, | 95592 | .unused, |
| ... | @@ -94534,23 +95602,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94534,23 +95602,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94534 | .each = .{ .once = &.{ | 95602 | .each = .{ .once = &.{ |
| 94535 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95603 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94536 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 95604 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94537 | .{ ._, .p_w, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, | 95605 | .{ ._, .p_d, .sll, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94538 | .{ ._, .p_w, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, | 95606 | .{ ._, .p_d, .sra, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94539 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 95607 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 94540 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 95608 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94541 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94542 | } }, | 95610 | } }, |
| 94543 | }, .{ | 95611 | }, .{ |
| 94544 | .required_features = .{ .sse2, null, null, null }, | 95612 | .required_features = .{ .sse2, null, null, null }, |
| 94545 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95613 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94546 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, | 95614 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94547 | .patterns = &.{ | 95615 | .patterns = &.{ |
| 94548 | .{ .src = .{ .to_mem, .none, .none } }, | 95616 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94549 | }, | 95617 | }, |
| 94550 | .extra_temps = .{ | 95618 | .extra_temps = .{ |
| 94551 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95619 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94552 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 95620 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94553 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 95621 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94554 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 95622 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94555 | .unused, | 95623 | .unused, |
| 94556 | .unused, | 95624 | .unused, |
| ... | @@ -94574,15 +95642,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94574,15 +95642,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94574 | } }, | 95642 | } }, |
| 94575 | }, .{ | 95643 | }, .{ |
| 94576 | .required_features = .{ .sse, null, null, null }, | 95644 | .required_features = .{ .sse, null, null, null }, |
| 94577 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 95645 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 94578 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, | 95646 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94579 | .patterns = &.{ | 95647 | .patterns = &.{ |
| 94580 | .{ .src = .{ .to_mem, .none, .none } }, | 95648 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94581 | }, | 95649 | }, |
| 94582 | .extra_temps = .{ | 95650 | .extra_temps = .{ |
| 94583 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95651 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94584 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 95652 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94585 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 95653 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94586 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 95654 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94587 | .unused, | 95655 | .unused, |
| 94588 | .unused, | 95656 | .unused, |
| ... | @@ -94605,14 +95673,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94605,14 +95673,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94605 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95673 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94606 | } }, | 95674 | } }, |
| 94607 | }, .{ | 95675 | }, .{ |
| 94608 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, | 95676 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94609 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, | 95677 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94610 | .patterns = &.{ | 95678 | .patterns = &.{ |
| 94611 | .{ .src = .{ .to_mem, .none, .none } }, | 95679 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94612 | }, | 95680 | }, |
| 94613 | .extra_temps = .{ | 95681 | .extra_temps = .{ |
| 94614 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95682 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94615 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95683 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94616 | .unused, | 95684 | .unused, |
| 94617 | .unused, | 95685 | .unused, |
| 94618 | .unused, | 95686 | .unused, |
| ... | @@ -94627,20 +95695,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94627,20 +95695,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94627 | .clobbers = .{ .eflags = true }, | 95695 | .clobbers = .{ .eflags = true }, |
| 94628 | .each = .{ .once = &.{ | 95696 | .each = .{ .once = &.{ |
| 94629 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95697 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94630 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 95698 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94631 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95699 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94632 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95700 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94633 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95701 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94634 | } }, | 95702 | } }, |
| 94635 | }, .{ | 95703 | }, .{ |
| 94636 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 95704 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94637 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | 95705 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94638 | .patterns = &.{ | 95706 | .patterns = &.{ |
| 94639 | .{ .src = .{ .to_mem, .none, .none } }, | 95707 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94640 | }, | 95708 | }, |
| 94641 | .extra_temps = .{ | 95709 | .extra_temps = .{ |
| 94642 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95710 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94643 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, | 95711 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94644 | .unused, | 95712 | .unused, |
| 94645 | .unused, | 95713 | .unused, |
| 94646 | .unused, | 95714 | .unused, |
| ... | @@ -94655,24 +95723,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94655,24 +95723,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94655 | .clobbers = .{ .eflags = true }, | 95723 | .clobbers = .{ .eflags = true }, |
| 94656 | .each = .{ .once = &.{ | 95724 | .each = .{ .once = &.{ |
| 94657 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95725 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94658 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 95726 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94659 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 95727 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94660 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 95728 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94661 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95729 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94662 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95730 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94663 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95731 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94664 | } }, | 95732 | } }, |
| 94665 | }, .{ | 95733 | }, .{ |
| 94666 | .required_features = .{ .fast_imm16, null, null, null }, | 95734 | .required_features = .{ .bmi2, null, null, null }, |
| 94667 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 95735 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94668 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 95736 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94669 | .patterns = &.{ | 95737 | .patterns = &.{ |
| 94670 | .{ .src = .{ .to_mem, .none, .none } }, | 95738 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94671 | }, | 95739 | }, |
| 94672 | .extra_temps = .{ | 95740 | .extra_temps = .{ |
| 94673 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95741 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94674 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95742 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94675 | .unused, | 95743 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94676 | .unused, | 95744 | .unused, |
| 94677 | .unused, | 95745 | .unused, |
| 94678 | .unused, | 95746 | .unused, |
| ... | @@ -94686,21 +95754,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94686,21 +95754,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94686 | .clobbers = .{ .eflags = true }, | 95754 | .clobbers = .{ .eflags = true }, |
| 94687 | .each = .{ .once = &.{ | 95755 | .each = .{ .once = &.{ |
| 94688 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95756 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94689 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 95757 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94690 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, | 95758 | .{ .@"0:", ._, .bzhi, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 94691 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95759 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 94692 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95760 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94693 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95761 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94694 | } }, | 95762 | } }, |
| 94695 | }, .{ | 95763 | }, .{ |
| 94696 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 95764 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94697 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 95765 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94698 | .patterns = &.{ | 95766 | .patterns = &.{ |
| 94699 | .{ .src = .{ .to_mem, .none, .none } }, | 95767 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94700 | }, | 95768 | }, |
| 94701 | .extra_temps = .{ | 95769 | .extra_temps = .{ |
| 94702 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95770 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94703 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95771 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94704 | .unused, | 95772 | .unused, |
| 94705 | .unused, | 95773 | .unused, |
| 94706 | .unused, | 95774 | .unused, |
| ... | @@ -94715,21 +95783,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94715,21 +95783,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94715 | .clobbers = .{ .eflags = true }, | 95783 | .clobbers = .{ .eflags = true }, |
| 94716 | .each = .{ .once = &.{ | 95784 | .each = .{ .once = &.{ |
| 94717 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95785 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94718 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 95786 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94719 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 95787 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94720 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95788 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94721 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95789 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94722 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95790 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94723 | } }, | 95791 | } }, |
| 94724 | }, .{ | 95792 | }, .{ |
| 94725 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 95793 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94726 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, | 95794 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94727 | .patterns = &.{ | 95795 | .patterns = &.{ |
| 94728 | .{ .src = .{ .to_mem, .none, .none } }, | 95796 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94729 | }, | 95797 | }, |
| 94730 | .extra_temps = .{ | 95798 | .extra_temps = .{ |
| 94731 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95799 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94732 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95800 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94733 | .unused, | 95801 | .unused, |
| 94734 | .unused, | 95802 | .unused, |
| 94735 | .unused, | 95803 | .unused, |
| ... | @@ -94745,19 +95813,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94745,19 +95813,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94745 | .each = .{ .once = &.{ | 95813 | .each = .{ .once = &.{ |
| 94746 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95814 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94747 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 95815 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94748 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95816 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94749 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95817 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94750 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95818 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94751 | } }, | 95819 | } }, |
| 94752 | }, .{ | 95820 | }, .{ |
| 94753 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 95821 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94754 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | 95822 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94755 | .patterns = &.{ | 95823 | .patterns = &.{ |
| 94756 | .{ .src = .{ .to_mem, .none, .none } }, | 95824 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94757 | }, | 95825 | }, |
| 94758 | .extra_temps = .{ | 95826 | .extra_temps = .{ |
| 94759 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95827 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94760 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, | 95828 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94761 | .unused, | 95829 | .unused, |
| 94762 | .unused, | 95830 | .unused, |
| 94763 | .unused, | 95831 | .unused, |
| ... | @@ -94775,21 +95843,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94775,21 +95843,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94775 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 95843 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94776 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 95844 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94777 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 95845 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94778 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95846 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94779 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95847 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94780 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95848 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94781 | } }, | 95849 | } }, |
| 94782 | }, .{ | 95850 | }, .{ |
| 94783 | .required_features = .{ .bmi2, null, null, null }, | 95851 | .required_features = .{ .bmi2, null, null, null }, |
| 94784 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 95852 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94785 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 95853 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94786 | .patterns = &.{ | 95854 | .patterns = &.{ |
| 94787 | .{ .src = .{ .to_mem, .none, .none } }, | 95855 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94788 | }, | 95856 | }, |
| 94789 | .extra_temps = .{ | 95857 | .extra_temps = .{ |
| 94790 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95858 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94791 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 95859 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94792 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95860 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94793 | .unused, | 95861 | .unused, |
| 94794 | .unused, | 95862 | .unused, |
| 94795 | .unused, | 95863 | .unused, |
| ... | @@ -94805,20 +95873,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94805,20 +95873,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94805 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95873 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94806 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 95874 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94807 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 95875 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 94808 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | 95876 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 94809 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95877 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94810 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95878 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94811 | } }, | 95879 | } }, |
| 94812 | }, .{ | 95880 | }, .{ |
| 94813 | .required_features = .{ .fast_imm16, null, null, null }, | 95881 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94814 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 95882 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94815 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | | |
| 94816 | .patterns = &.{ | 95883 | .patterns = &.{ |
| 94817 | .{ .src = .{ .to_mem, .none, .none } }, | 95884 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94818 | }, | 95885 | }, |
| 94819 | .extra_temps = .{ | 95886 | .extra_temps = .{ |
| 94820 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95887 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94821 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95888 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94822 | .unused, | 95889 | .unused, |
| 94823 | .unused, | 95890 | .unused, |
| 94824 | .unused, | 95891 | .unused, |
| ... | @@ -94834,20 +95901,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94834,20 +95901,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94834 | .each = .{ .once = &.{ | 95901 | .each = .{ .once = &.{ |
| 94835 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95902 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94836 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 95903 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94837 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, | 95904 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94838 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95905 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94839 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95906 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94840 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95907 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94841 | } }, | 95908 | } }, |
| 94842 | }, .{ | 95909 | }, .{ |
| 94843 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 95910 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 94844 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 95911 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94845 | .patterns = &.{ | 95912 | .patterns = &.{ |
| 94846 | .{ .src = .{ .to_mem, .none, .none } }, | 95913 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94847 | }, | 95914 | }, |
| 94848 | .extra_temps = .{ | 95915 | .extra_temps = .{ |
| 94849 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94850 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95917 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94851 | .unused, | 95918 | .unused, |
| 94852 | .unused, | 95919 | .unused, |
| 94853 | .unused, | 95920 | .unused, |
| ... | @@ -94862,21 +95929,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94862,21 +95929,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94862 | .clobbers = .{ .eflags = true }, | 95929 | .clobbers = .{ .eflags = true }, |
| 94863 | .each = .{ .once = &.{ | 95930 | .each = .{ .once = &.{ |
| 94864 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95931 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94865 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 95932 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94866 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 95933 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94867 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95934 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94868 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 94869 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95935 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94870 | } }, | 95936 | } }, |
| 94871 | }, .{ | 95937 | }, .{ |
| 94872 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 95938 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 94873 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, | 95939 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94874 | .patterns = &.{ | 95940 | .patterns = &.{ |
| 94875 | .{ .src = .{ .to_mem, .none, .none } }, | 95941 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94876 | }, | 95942 | }, |
| 94877 | .extra_temps = .{ | 95943 | .extra_temps = .{ |
| 94878 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95944 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94879 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 95945 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94880 | .unused, | 95946 | .unused, |
| 94881 | .unused, | 95947 | .unused, |
| 94882 | .unused, | 95948 | .unused, |
| ... | @@ -94892,19 +95958,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94892,19 +95958,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94892 | .each = .{ .once = &.{ | 95958 | .each = .{ .once = &.{ |
| 94893 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 95959 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94894 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 95960 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94895 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 95961 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94896 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 95962 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 95963 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 95964 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94897 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 95965 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94898 | } }, | 95966 | } }, |
| 94899 | }, .{ | 95967 | }, .{ |
| 94900 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 95968 | .required_features = .{ .bmi2, null, null, null }, |
| 94901 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | 95969 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 95970 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94902 | .patterns = &.{ | 95971 | .patterns = &.{ |
| 94903 | .{ .src = .{ .to_mem, .none, .none } }, | 95972 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94904 | }, | 95973 | }, |
| 94905 | .extra_temps = .{ | 95974 | .extra_temps = .{ |
| 94906 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 95975 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94907 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, | 95976 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 95977 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 95978 | .unused, |
| | 95979 | .unused, |
| | 95980 | .unused, |
| | 95981 | .unused, |
| | 95982 | .unused, |
| | 95983 | .unused, |
| | 95984 | .unused, |
| | 95985 | .unused, |
| | 95986 | }, |
| | 95987 | .dst_temps = .{ .mem, .unused }, |
| | 95988 | .clobbers = .{ .eflags = true }, |
| | 95989 | .each = .{ .once = &.{ |
| | 95990 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 95991 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 95992 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 95993 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 95994 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 95995 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 95996 | } }, |
| | 95997 | }, .{ |
| | 95998 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 95999 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 96000 | .patterns = &.{ |
| | 96001 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 96002 | }, |
| | 96003 | .extra_temps = .{ |
| | 96004 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96005 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94908 | .unused, | 96006 | .unused, |
| 94909 | .unused, | 96007 | .unused, |
| 94910 | .unused, | 96008 | .unused, |
| ... | @@ -94920,23 +96018,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94920,23 +96018,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94920 | .each = .{ .once = &.{ | 96018 | .each = .{ .once = &.{ |
| 94921 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96019 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94922 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 96020 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94923 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96021 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94924 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96022 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94925 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 96023 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94926 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 94927 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96024 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94928 | } }, | 96025 | } }, |
| 94929 | }, .{ | 96026 | }, .{ |
| 94930 | .required_features = .{ .bmi2, null, null, null }, | 96027 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 94931 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 96028 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94932 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | | |
| 94933 | .patterns = &.{ | 96029 | .patterns = &.{ |
| 94934 | .{ .src = .{ .to_mem, .none, .none } }, | 96030 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94935 | }, | 96031 | }, |
| 94936 | .extra_temps = .{ | 96032 | .extra_temps = .{ |
| 94937 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96033 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94938 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 96034 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94939 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96035 | .unused, |
| 94940 | .unused, | 96036 | .unused, |
| 94941 | .unused, | 96037 | .unused, |
| 94942 | .unused, | 96038 | .unused, |
| ... | @@ -94950,22 +96046,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94950,22 +96046,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94950 | .clobbers = .{ .eflags = true }, | 96046 | .clobbers = .{ .eflags = true }, |
| 94951 | .each = .{ .once = &.{ | 96047 | .each = .{ .once = &.{ |
| 94952 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96048 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94953 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 96049 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94954 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 96050 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 94955 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | 96051 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94956 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 94957 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96052 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94958 | } }, | 96053 | } }, |
| 94959 | }, .{ | 96054 | }, .{ |
| 94960 | .required_features = .{ .fast_imm16, null, null, null }, | 96055 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 94961 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 96056 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94962 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | | |
| 94963 | .patterns = &.{ | 96057 | .patterns = &.{ |
| 94964 | .{ .src = .{ .to_mem, .none, .none } }, | 96058 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94965 | }, | 96059 | }, |
| 94966 | .extra_temps = .{ | 96060 | .extra_temps = .{ |
| 94967 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96061 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94968 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96062 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94969 | .unused, | 96063 | .unused, |
| 94970 | .unused, | 96064 | .unused, |
| 94971 | .unused, | 96065 | .unused, |
| ... | @@ -94980,22 +96074,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -94980,22 +96074,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94980 | .clobbers = .{ .eflags = true }, | 96074 | .clobbers = .{ .eflags = true }, |
| 94981 | .each = .{ .once = &.{ | 96075 | .each = .{ .once = &.{ |
| 94982 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96076 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94983 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 96077 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94984 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, | 96078 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94985 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 96079 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94986 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 96080 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 96081 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94987 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96082 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94988 | } }, | 96083 | } }, |
| 94989 | }, .{ | 96084 | }, .{ |
| 94990 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 96085 | .required_features = .{ .bmi2, null, null, null }, |
| 94991 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 96086 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| | 96087 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94992 | .patterns = &.{ | 96088 | .patterns = &.{ |
| 94993 | .{ .src = .{ .to_mem, .none, .none } }, | 96089 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94994 | }, | 96090 | }, |
| 94995 | .extra_temps = .{ | 96091 | .extra_temps = .{ |
| 94996 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96092 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94997 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96093 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94998 | .unused, | 96094 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94999 | .unused, | 96095 | .unused, |
| 95000 | .unused, | 96096 | .unused, |
| 95001 | .unused, | 96097 | .unused, |
| ... | @@ -95009,21 +96105,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95009,21 +96105,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95009 | .clobbers = .{ .eflags = true }, | 96105 | .clobbers = .{ .eflags = true }, |
| 95010 | .each = .{ .once = &.{ | 96106 | .each = .{ .once = &.{ |
| 95011 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96107 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95012 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 96108 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95013 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 96109 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 95014 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 96110 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 95015 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 96111 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95016 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96112 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95017 | } }, | 96113 | } }, |
| 95018 | }, .{ | 96114 | }, .{ |
| 95019 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 96115 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 95020 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, | 96116 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 95021 | .patterns = &.{ | 96117 | .patterns = &.{ |
| 95022 | .{ .src = .{ .to_mem, .none, .none } }, | 96118 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95023 | }, | 96119 | }, |
| 95024 | .extra_temps = .{ | 96120 | .extra_temps = .{ |
| 95025 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96121 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95026 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96122 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95027 | .unused, | 96123 | .unused, |
| 95028 | .unused, | 96124 | .unused, |
| 95029 | .unused, | 96125 | .unused, |
| ... | @@ -95039,19 +96135,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95039,19 +96135,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95039 | .each = .{ .once = &.{ | 96135 | .each = .{ .once = &.{ |
| 95040 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96136 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95041 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 96137 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95042 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 96138 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95043 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 96139 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 96140 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95044 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96141 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95045 | } }, | 96142 | } }, |
| 95046 | }, .{ | 96143 | }, .{ |
| 95047 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 96144 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 95048 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | 96145 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 95049 | .patterns = &.{ | 96146 | .patterns = &.{ |
| 95050 | .{ .src = .{ .to_mem, .none, .none } }, | 96147 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95051 | }, | 96148 | }, |
| 95052 | .extra_temps = .{ | 96149 | .extra_temps = .{ |
| 95053 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96150 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95054 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, | 96151 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 96152 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 96153 | .unused, |
| 95055 | .unused, | 96154 | .unused, |
| 95056 | .unused, | 96155 | .unused, |
| 95057 | .unused, | 96156 | .unused, |
| ... | @@ -95059,6 +96158,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95059,6 +96158,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95059 | .unused, | 96158 | .unused, |
| 95060 | .unused, | 96159 | .unused, |
| 95061 | .unused, | 96160 | .unused, |
| | 96161 | }, |
| | 96162 | .dst_temps = .{ .mem, .unused }, |
| | 96163 | .clobbers = .{ .eflags = true }, |
| | 96164 | .each = .{ .once = &.{ |
| | 96165 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 96166 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 96167 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 96168 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 96169 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 96170 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 96171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 96172 | } }, |
| | 96173 | }, .{ |
| | 96174 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| | 96175 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 96176 | .patterns = &.{ |
| | 96177 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 96178 | }, |
| | 96179 | .extra_temps = .{ |
| | 96180 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96181 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 96182 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 96183 | .unused, |
| | 96184 | .unused, |
| | 96185 | .unused, |
| | 96186 | .unused, |
| | 96187 | .unused, |
| | 96188 | .unused, |
| 95062 | .unused, | 96189 | .unused, |
| 95063 | .unused, | 96190 | .unused, |
| 95064 | }, | 96191 | }, |
| ... | @@ -95066,25 +96193,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95066,25 +96193,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95066 | .clobbers = .{ .eflags = true }, | 96193 | .clobbers = .{ .eflags = true }, |
| 95067 | .each = .{ .once = &.{ | 96194 | .each = .{ .once = &.{ |
| 95068 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96195 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95069 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 96196 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95070 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96197 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 95071 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96198 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95072 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 96199 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95073 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 96200 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 96201 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 96202 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95074 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96203 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95075 | } }, | 96204 | } }, |
| 95076 | }, .{ | 96205 | }, .{ |
| 95077 | .required_features = .{ .bmi2, null, null, null }, | 96206 | .required_features = .{ .bmi2, null, null, null }, |
| 95078 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 96207 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 95079 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 96208 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 95080 | .patterns = &.{ | 96209 | .patterns = &.{ |
| 95081 | .{ .src = .{ .to_mem, .none, .none } }, | 96210 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95082 | }, | 96211 | }, |
| 95083 | .extra_temps = .{ | 96212 | .extra_temps = .{ |
| 95084 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96213 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96214 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95085 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 96215 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95086 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96216 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95087 | .unused, | | |
| 95088 | .unused, | 96217 | .unused, |
| 95089 | .unused, | 96218 | .unused, |
| 95090 | .unused, | 96219 | .unused, |
| ... | @@ -95097,23 +96226,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95097,23 +96226,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95097 | .clobbers = .{ .eflags = true }, | 96226 | .clobbers = .{ .eflags = true }, |
| 95098 | .each = .{ .once = &.{ | 96227 | .each = .{ .once = &.{ |
| 95099 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96228 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95100 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 96229 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95101 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 96230 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95102 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | 96231 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 95103 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 96232 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 96233 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 96234 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95104 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96235 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95105 | } }, | 96236 | } }, |
| 95106 | }, .{ | 96237 | }, .{ |
| 95107 | .required_features = .{ .fast_imm16, null, null, null }, | 96238 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 95108 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 96239 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 95109 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | | |
| 95110 | .patterns = &.{ | 96240 | .patterns = &.{ |
| 95111 | .{ .src = .{ .to_mem, .none, .none } }, | 96241 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95112 | }, | 96242 | }, |
| 95113 | .extra_temps = .{ | 96243 | .extra_temps = .{ |
| 95114 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96244 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95115 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96245 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95116 | .unused, | 96246 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95117 | .unused, | 96247 | .unused, |
| 95118 | .unused, | 96248 | .unused, |
| 95119 | .unused, | 96249 | .unused, |
| ... | @@ -95127,26 +96257,248 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95127,26 +96257,248 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95127 | .clobbers = .{ .eflags = true }, | 96257 | .clobbers = .{ .eflags = true }, |
| 95128 | .each = .{ .once = &.{ | 96258 | .each = .{ .once = &.{ |
| 95129 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96259 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95130 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 96260 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95131 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, | 96261 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 95132 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 96262 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95133 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 96263 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 96264 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 96265 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96266 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95135 | } }, | 96267 | } }, |
| 95136 | }, .{ | 96268 | }, .{ |
| 95137 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 96269 | .required_features = .{ .avx, null, null, null }, |
| 95138 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 96270 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96271 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 96272 | .patterns = &.{ |
| | 96273 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 96274 | }, |
| | 96275 | .extra_temps = .{ |
| | 96276 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 96277 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96278 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 96279 | .unused, |
| | 96280 | .unused, |
| | 96281 | .unused, |
| | 96282 | .unused, |
| | 96283 | .unused, |
| | 96284 | .unused, |
| | 96285 | .unused, |
| | 96286 | .unused, |
| | 96287 | }, |
| | 96288 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 96289 | .each = .{ .once = &.{ |
| | 96290 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 96291 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 96292 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 96293 | .{ ._, .vp_q, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| | 96294 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| | 96295 | } }, |
| | 96296 | }, .{ |
| | 96297 | .required_features = .{ .avx, null, null, null }, |
| | 96298 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96299 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 96300 | .patterns = &.{ |
| | 96301 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 96302 | }, |
| | 96303 | .extra_temps = .{ |
| | 96304 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 96305 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 96306 | .unused, |
| | 96307 | .unused, |
| | 96308 | .unused, |
| | 96309 | .unused, |
| | 96310 | .unused, |
| | 96311 | .unused, |
| | 96312 | .unused, |
| | 96313 | .unused, |
| | 96314 | .unused, |
| | 96315 | }, |
| | 96316 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 96317 | .each = .{ .once = &.{ |
| | 96318 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 96319 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 96320 | } }, |
| | 96321 | }, .{ |
| | 96322 | .required_features = .{ .sse2, null, null, null }, |
| | 96323 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96324 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 96325 | .patterns = &.{ |
| | 96326 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 96327 | }, |
| | 96328 | .extra_temps = .{ |
| | 96329 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 96330 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96331 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 96332 | .unused, |
| | 96333 | .unused, |
| | 96334 | .unused, |
| | 96335 | .unused, |
| | 96336 | .unused, |
| | 96337 | .unused, |
| | 96338 | .unused, |
| | 96339 | .unused, |
| | 96340 | }, |
| | 96341 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 96342 | .each = .{ .once = &.{ |
| | 96343 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 96344 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 96345 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 96346 | .{ ._, .p_q, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 96347 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 96348 | } }, |
| | 96349 | }, .{ |
| | 96350 | .required_features = .{ .sse2, null, null, null }, |
| | 96351 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96352 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 96353 | .patterns = &.{ |
| | 96354 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 96355 | }, |
| | 96356 | .extra_temps = .{ |
| | 96357 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 96358 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 96359 | .unused, |
| | 96360 | .unused, |
| | 96361 | .unused, |
| | 96362 | .unused, |
| | 96363 | .unused, |
| | 96364 | .unused, |
| | 96365 | .unused, |
| | 96366 | .unused, |
| | 96367 | .unused, |
| | 96368 | }, |
| | 96369 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 96370 | .each = .{ .once = &.{ |
| | 96371 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 96372 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 96373 | } }, |
| | 96374 | }, .{ |
| | 96375 | .required_features = .{ .sse, null, null, null }, |
| | 96376 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96377 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 96378 | .patterns = &.{ |
| | 96379 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 96380 | }, |
| | 96381 | .extra_temps = .{ |
| | 96382 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 96383 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 96384 | .unused, |
| | 96385 | .unused, |
| | 96386 | .unused, |
| | 96387 | .unused, |
| | 96388 | .unused, |
| | 96389 | .unused, |
| | 96390 | .unused, |
| | 96391 | .unused, |
| | 96392 | .unused, |
| | 96393 | }, |
| | 96394 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 96395 | .each = .{ .once = &.{ |
| | 96396 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 96397 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 96398 | } }, |
| | 96399 | }, .{ |
| | 96400 | .required_features = .{ .avx2, null, null, null }, |
| | 96401 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 96402 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 96403 | .patterns = &.{ |
| | 96404 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 96405 | }, |
| | 96406 | .extra_temps = .{ |
| | 96407 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 96408 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96409 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 96410 | .unused, |
| | 96411 | .unused, |
| | 96412 | .unused, |
| | 96413 | .unused, |
| | 96414 | .unused, |
| | 96415 | .unused, |
| | 96416 | .unused, |
| | 96417 | .unused, |
| | 96418 | }, |
| | 96419 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 96420 | .each = .{ .once = &.{ |
| | 96421 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 96422 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 96423 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 96424 | .{ ._, .vp_q, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 96425 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 96426 | } }, |
| | 96427 | }, .{ |
| | 96428 | .required_features = .{ .avx2, null, null, null }, |
| | 96429 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 96430 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 96431 | .patterns = &.{ |
| | 96432 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 96433 | }, |
| | 96434 | .extra_temps = .{ |
| | 96435 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 96436 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 96437 | .unused, |
| | 96438 | .unused, |
| | 96439 | .unused, |
| | 96440 | .unused, |
| | 96441 | .unused, |
| | 96442 | .unused, |
| | 96443 | .unused, |
| | 96444 | .unused, |
| | 96445 | .unused, |
| | 96446 | }, |
| | 96447 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 96448 | .each = .{ .once = &.{ |
| | 96449 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 96450 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 96451 | } }, |
| | 96452 | }, .{ |
| | 96453 | .required_features = .{ .avx2, null, null, null }, |
| | 96454 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 96455 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 95139 | .patterns = &.{ | 96456 | .patterns = &.{ |
| 95140 | .{ .src = .{ .to_mem, .none, .none } }, | 96457 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95141 | }, | 96458 | }, |
| 95142 | .extra_temps = .{ | 96459 | .extra_temps = .{ |
| 95143 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96460 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95144 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96461 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| | 96462 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| | 96463 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| | 96464 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96465 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 95145 | .unused, | 96466 | .unused, |
| 95146 | .unused, | 96467 | .unused, |
| 95147 | .unused, | 96468 | .unused, |
| 95148 | .unused, | 96469 | .unused, |
| 95149 | .unused, | 96470 | .unused, |
| | 96471 | }, |
| | 96472 | .dst_temps = .{ .mem, .unused }, |
| | 96473 | .clobbers = .{ .eflags = true }, |
| | 96474 | .each = .{ .once = &.{ |
| | 96475 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 96476 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 96477 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 96478 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 96479 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 96480 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 96481 | .{ ._, .vp_q, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 96482 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 96483 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, |
| | 96484 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 96485 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 96486 | } }, |
| | 96487 | }, .{ |
| | 96488 | .required_features = .{ .avx2, null, null, null }, |
| | 96489 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 96490 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 96491 | .patterns = &.{ |
| | 96492 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 96493 | }, |
| | 96494 | .extra_temps = .{ |
| | 96495 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96496 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| | 96497 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| | 96498 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96499 | .unused, |
| | 96500 | .unused, |
| | 96501 | .unused, |
| 95150 | .unused, | 96502 | .unused, |
| 95151 | .unused, | 96503 | .unused, |
| 95152 | .unused, | 96504 | .unused, |
| ... | @@ -95155,24 +96507,61 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95155,24 +96507,61 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95155 | .dst_temps = .{ .mem, .unused }, | 96507 | .dst_temps = .{ .mem, .unused }, |
| 95156 | .clobbers = .{ .eflags = true }, | 96508 | .clobbers = .{ .eflags = true }, |
| 95157 | .each = .{ .once = &.{ | 96509 | .each = .{ .once = &.{ |
| | 96510 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 96511 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 95158 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96512 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95159 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 96513 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 95160 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 96514 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 95161 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 96515 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 95162 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 95163 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96516 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95164 | } }, | 96517 | } }, |
| 95165 | }, .{ | 96518 | }, .{ |
| 95166 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 96519 | .required_features = .{ .avx, null, null, null }, |
| 95167 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, | 96520 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96521 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95168 | .patterns = &.{ | 96522 | .patterns = &.{ |
| 95169 | .{ .src = .{ .to_mem, .none, .none } }, | 96523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95170 | }, | 96524 | }, |
| 95171 | .extra_temps = .{ | 96525 | .extra_temps = .{ |
| 95172 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95173 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 96527 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 95174 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96528 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 96529 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 96530 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96531 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 96532 | .unused, |
| | 96533 | .unused, |
| | 96534 | .unused, |
| | 96535 | .unused, |
| 95175 | .unused, | 96536 | .unused, |
| | 96537 | }, |
| | 96538 | .dst_temps = .{ .mem, .unused }, |
| | 96539 | .clobbers = .{ .eflags = true }, |
| | 96540 | .each = .{ .once = &.{ |
| | 96541 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 96542 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 96543 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 96544 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 96545 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 96546 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 96547 | .{ ._, .vp_q, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 96548 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 96549 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 96550 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 96551 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 96552 | } }, |
| | 96553 | }, .{ |
| | 96554 | .required_features = .{ .avx, null, null, null }, |
| | 96555 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96556 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 96557 | .patterns = &.{ |
| | 96558 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 96559 | }, |
| | 96560 | .extra_temps = .{ |
| | 96561 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96562 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 96563 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 96564 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 95176 | .unused, | 96565 | .unused, |
| 95177 | .unused, | 96566 | .unused, |
| 95178 | .unused, | 96567 | .unused, |
| ... | @@ -95184,27 +96573,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95184,27 +96573,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95184 | .dst_temps = .{ .mem, .unused }, | 96573 | .dst_temps = .{ .mem, .unused }, |
| 95185 | .clobbers = .{ .eflags = true }, | 96574 | .clobbers = .{ .eflags = true }, |
| 95186 | .each = .{ .once = &.{ | 96575 | .each = .{ .once = &.{ |
| | 96576 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 96577 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95187 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96578 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95188 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 96579 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 95189 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 96580 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 95190 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | 96581 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 95191 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 95192 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 95193 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96582 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95194 | } }, | 96583 | } }, |
| 95195 | }, .{ | 96584 | }, .{ |
| 95196 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 96585 | .required_features = .{ .sse2, null, null, null }, |
| 95197 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | 96586 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96587 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95198 | .patterns = &.{ | 96588 | .patterns = &.{ |
| 95199 | .{ .src = .{ .to_mem, .none, .none } }, | 96589 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95200 | }, | 96590 | }, |
| 95201 | .extra_temps = .{ | 96591 | .extra_temps = .{ |
| 95202 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96592 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95203 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 96593 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 95204 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, | 96594 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 96595 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 96596 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96597 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 96598 | .unused, |
| | 96599 | .unused, |
| 95205 | .unused, | 96600 | .unused, |
| 95206 | .unused, | 96601 | .unused, |
| 95207 | .unused, | 96602 | .unused, |
| | 96603 | }, |
| | 96604 | .dst_temps = .{ .mem, .unused }, |
| | 96605 | .clobbers = .{ .eflags = true }, |
| | 96606 | .each = .{ .once = &.{ |
| | 96607 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 96608 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 96609 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 96610 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 96611 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 96612 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, |
| | 96613 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 96614 | .{ ._, .p_q, .add, .tmp3x, .tmp2x, ._, ._ }, |
| | 96615 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, |
| | 96616 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 96617 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 96618 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 96619 | } }, |
| | 96620 | }, .{ |
| | 96621 | .required_features = .{ .sse2, null, null, null }, |
| | 96622 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 96623 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 96624 | .patterns = &.{ |
| | 96625 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 96626 | }, |
| | 96627 | .extra_temps = .{ |
| | 96628 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96629 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 96630 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 96631 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 96632 | .unused, |
| | 96633 | .unused, |
| 95208 | .unused, | 96634 | .unused, |
| 95209 | .unused, | 96635 | .unused, |
| 95210 | .unused, | 96636 | .unused, |
| ... | @@ -95214,28 +96640,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95214,28 +96640,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95214 | .dst_temps = .{ .mem, .unused }, | 96640 | .dst_temps = .{ .mem, .unused }, |
| 95215 | .clobbers = .{ .eflags = true }, | 96641 | .clobbers = .{ .eflags = true }, |
| 95216 | .each = .{ .once = &.{ | 96642 | .each = .{ .once = &.{ |
| | 96643 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 96644 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95217 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96645 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95218 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 96646 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 95219 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 96647 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95220 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96648 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 95221 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96649 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 95222 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | | |
| 95223 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 95224 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 95225 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96650 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95226 | } }, | 96651 | } }, |
| 95227 | }, .{ | 96652 | }, .{ |
| 95228 | .required_features = .{ .bmi2, null, null, null }, | 96653 | .required_features = .{ .sse, null, null, null }, |
| 95229 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 96654 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 95230 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 96655 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95231 | .patterns = &.{ | 96656 | .patterns = &.{ |
| 95232 | .{ .src = .{ .to_mem, .none, .none } }, | 96657 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95233 | }, | 96658 | }, |
| 95234 | .extra_temps = .{ | 96659 | .extra_temps = .{ |
| 95235 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96660 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95236 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 96661 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 95237 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 96662 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 95238 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96663 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 95239 | .unused, | 96664 | .unused, |
| 95240 | .unused, | 96665 | .unused, |
| 95241 | .unused, | 96666 | .unused, |
| ... | @@ -95247,26 +96672,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95247,26 +96672,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95247 | .dst_temps = .{ .mem, .unused }, | 96672 | .dst_temps = .{ .mem, .unused }, |
| 95248 | .clobbers = .{ .eflags = true }, | 96673 | .clobbers = .{ .eflags = true }, |
| 95249 | .each = .{ .once = &.{ | 96674 | .each = .{ .once = &.{ |
| | 96675 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 96676 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95250 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96677 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95251 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 96678 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 95252 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, | 96679 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95253 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, | 96680 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 95254 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 96681 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 95255 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 95256 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 95257 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96682 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95258 | } }, | 96683 | } }, |
| 95259 | }, .{ | 96684 | }, .{ |
| 95260 | .required_features = .{ .fast_imm16, null, null, null }, | 96685 | .required_features = .{ .@"64bit", null, null, null }, |
| 95261 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 96686 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95262 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 96687 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95263 | .patterns = &.{ | 96688 | .patterns = &.{ |
| 95264 | .{ .src = .{ .to_mem, .none, .none } }, | 96689 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95265 | }, | 96690 | }, |
| 95266 | .extra_temps = .{ | 96691 | .extra_temps = .{ |
| 95267 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96692 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95268 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 96693 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95269 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96694 | .unused, |
| 95270 | .unused, | 96695 | .unused, |
| 95271 | .unused, | 96696 | .unused, |
| 95272 | .unused, | 96697 | .unused, |
| ... | @@ -95280,24 +96705,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95280,24 +96705,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95280 | .clobbers = .{ .eflags = true }, | 96705 | .clobbers = .{ .eflags = true }, |
| 95281 | .each = .{ .once = &.{ | 96706 | .each = .{ .once = &.{ |
| 95282 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96707 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95283 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 96708 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95284 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 96709 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 95285 | .{ ._, ._, .@"and", .tmp2w, .sa(.dst0, .add_umax), ._, ._ }, | 96710 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95286 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | | |
| 95287 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 95288 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 95289 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96711 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95290 | } }, | 96712 | } }, |
| 95291 | }, .{ | 96713 | }, .{ |
| 95292 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 96714 | .required_features = .{ .@"64bit", null, null, null }, |
| 95293 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 96715 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 96716 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95294 | .patterns = &.{ | 96717 | .patterns = &.{ |
| 95295 | .{ .src = .{ .to_mem, .none, .none } }, | 96718 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95296 | }, | 96719 | }, |
| 95297 | .extra_temps = .{ | 96720 | .extra_temps = .{ |
| 95298 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96721 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95299 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 96722 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 95300 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 96723 | .unused, |
| 95301 | .unused, | 96724 | .unused, |
| 95302 | .unused, | 96725 | .unused, |
| 95303 | .unused, | 96726 | .unused, |
| ... | @@ -95311,36 +96734,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95311,36 +96734,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95311 | .clobbers = .{ .eflags = true }, | 96734 | .clobbers = .{ .eflags = true }, |
| 95312 | .each = .{ .once = &.{ | 96735 | .each = .{ .once = &.{ |
| 95313 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96736 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95314 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 96737 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95315 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | 96738 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 95316 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, | 96739 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 95317 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, | 96740 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 95318 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | 96741 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95319 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 95320 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96742 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95321 | } }, | 96743 | } }, |
| 95322 | }, .{ | 96744 | }, .{ |
| 95323 | .required_features = .{ .avx, null, null, null }, | 96745 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 95324 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 96746 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95325 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 96747 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95326 | .patterns = &.{ | 96748 | .patterns = &.{ |
| 95327 | .{ .src = .{ .to_sse, .none, .none } }, | 96749 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95328 | }, | 96750 | }, |
| 95329 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 96751 | .extra_temps = .{ |
| | 96752 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96753 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 96754 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 96755 | .unused, |
| | 96756 | .unused, |
| | 96757 | .unused, |
| | 96758 | .unused, |
| | 96759 | .unused, |
| | 96760 | .unused, |
| | 96761 | .unused, |
| | 96762 | .unused, |
| | 96763 | }, |
| | 96764 | .dst_temps = .{ .mem, .unused }, |
| | 96765 | .clobbers = .{ .eflags = true }, |
| 95330 | .each = .{ .once = &.{ | 96766 | .each = .{ .once = &.{ |
| 95331 | .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ }, | 96767 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95332 | .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ }, | 96768 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 96769 | .{ .@"0:", ._, .bzhi, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| | 96770 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 96771 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 96772 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95333 | } }, | 96773 | } }, |
| 95334 | }, .{ | 96774 | }, .{ |
| 95335 | .required_features = .{ .avx, null, null, null }, | 96775 | .required_features = .{ .@"64bit", null, null, null }, |
| 95336 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 96776 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95337 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, | 96777 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95338 | .patterns = &.{ | 96778 | .patterns = &.{ |
| 95339 | .{ .src = .{ .to_sse, .none, .none } }, | 96779 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95340 | }, | 96780 | }, |
| 95341 | .extra_temps = .{ | 96781 | .extra_temps = .{ |
| 95342 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 96782 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95343 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 96783 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95344 | .unused, | 96784 | .unused, |
| 95345 | .unused, | 96785 | .unused, |
| 95346 | .unused, | 96786 | .unused, |
| ... | @@ -95351,33 +96791,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95351,33 +96791,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95351 | .unused, | 96791 | .unused, |
| 95352 | .unused, | 96792 | .unused, |
| 95353 | }, | 96793 | }, |
| 95354 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 96794 | .dst_temps = .{ .mem, .unused }, |
| | 96795 | .clobbers = .{ .eflags = true }, |
| 95355 | .each = .{ .once = &.{ | 96796 | .each = .{ .once = &.{ |
| 95356 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 96797 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95357 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, | 96798 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 96799 | .{ ._, ._, .@"and", .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 96800 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 96801 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 96802 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95358 | } }, | 96803 | } }, |
| 95359 | }, .{ | 96804 | }, .{ |
| 95360 | .required_features = .{ .sse2, null, null, null }, | 96805 | .required_features = .{ .@"64bit", null, null, null }, |
| 95361 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 96806 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95362 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 96807 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95363 | .patterns = &.{ | 96808 | .patterns = &.{ |
| 95364 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 96809 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95365 | }, | 96810 | }, |
| 95366 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 96811 | .extra_temps = .{ |
| | 96812 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 96813 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 96814 | .unused, |
| | 96815 | .unused, |
| | 96816 | .unused, |
| | 96817 | .unused, |
| | 96818 | .unused, |
| | 96819 | .unused, |
| | 96820 | .unused, |
| | 96821 | .unused, |
| | 96822 | .unused, |
| | 96823 | }, |
| | 96824 | .dst_temps = .{ .mem, .unused }, |
| | 96825 | .clobbers = .{ .eflags = true }, |
| 95367 | .each = .{ .once = &.{ | 96826 | .each = .{ .once = &.{ |
| 95368 | .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96827 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95369 | .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 96828 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 96829 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 96830 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 96831 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95370 | } }, | 96832 | } }, |
| 95371 | }, .{ | 96833 | }, .{ |
| 95372 | .required_features = .{ .sse2, null, null, null }, | 96834 | .required_features = .{ .@"64bit", null, null, null }, |
| 95373 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 96835 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95374 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, | 96836 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95375 | .patterns = &.{ | 96837 | .patterns = &.{ |
| 95376 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 96838 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95377 | }, | 96839 | }, |
| 95378 | .extra_temps = .{ | 96840 | .extra_temps = .{ |
| 95379 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 96841 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95380 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 96842 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 95381 | .unused, | 96843 | .unused, |
| 95382 | .unused, | 96844 | .unused, |
| 95383 | .unused, | 96845 | .unused, |
| ... | @@ -95388,22 +96850,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95388,22 +96850,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95388 | .unused, | 96850 | .unused, |
| 95389 | .unused, | 96851 | .unused, |
| 95390 | }, | 96852 | }, |
| 95391 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 96853 | .dst_temps = .{ .mem, .unused }, |
| | 96854 | .clobbers = .{ .eflags = true }, |
| 95392 | .each = .{ .once = &.{ | 96855 | .each = .{ .once = &.{ |
| 95393 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 96856 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95394 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | 96857 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 96858 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 96859 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 96860 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 96861 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 96862 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95395 | } }, | 96863 | } }, |
| 95396 | }, .{ | 96864 | }, .{ |
| 95397 | .required_features = .{ .sse, null, null, null }, | 96865 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 95398 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 96866 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95399 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, | 96867 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95400 | .patterns = &.{ | 96868 | .patterns = &.{ |
| 95401 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 96869 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95402 | }, | 96870 | }, |
| 95403 | .extra_temps = .{ | 96871 | .extra_temps = .{ |
| 95404 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 96872 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95405 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 96873 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95406 | .unused, | 96874 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95407 | .unused, | 96875 | .unused, |
| 95408 | .unused, | 96876 | .unused, |
| 95409 | .unused, | 96877 | .unused, |
| ... | @@ -95413,33 +96881,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95413,33 +96881,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95413 | .unused, | 96881 | .unused, |
| 95414 | .unused, | 96882 | .unused, |
| 95415 | }, | 96883 | }, |
| 95416 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 96884 | .dst_temps = .{ .mem, .unused }, |
| 95417 | .each = .{ .once = &.{ | 96885 | .clobbers = .{ .eflags = true }, |
| 95418 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | | |
| 95419 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | | |
| 95420 | } }, | | |
| 95421 | }, .{ | | |
| 95422 | .required_features = .{ .avx2, null, null, null }, | | |
| 95423 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | | |
| 95424 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, | | |
| 95425 | .patterns = &.{ | | |
| 95426 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 95427 | }, | | |
| 95428 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 95429 | .each = .{ .once = &.{ | 96886 | .each = .{ .once = &.{ |
| 95430 | .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ }, | 96887 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95431 | .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ }, | 96888 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 96889 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| | 96890 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 96891 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 96892 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95432 | } }, | 96893 | } }, |
| 95433 | }, .{ | 96894 | }, .{ |
| 95434 | .required_features = .{ .avx2, null, null, null }, | 96895 | .required_features = .{ .@"64bit", null, null, null }, |
| 95435 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | 96896 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95436 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, | 96897 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95437 | .patterns = &.{ | 96898 | .patterns = &.{ |
| 95438 | .{ .src = .{ .to_sse, .none, .none } }, | 96899 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95439 | }, | 96900 | }, |
| 95440 | .extra_temps = .{ | 96901 | .extra_temps = .{ |
| 95441 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 96902 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95442 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | 96903 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95443 | .unused, | 96904 | .unused, |
| 95444 | .unused, | 96905 | .unused, |
| 95445 | .unused, | 96906 | .unused, |
| ... | @@ -95450,21 +96911,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95450,21 +96911,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95450 | .unused, | 96911 | .unused, |
| 95451 | .unused, | 96912 | .unused, |
| 95452 | }, | 96913 | }, |
| 95453 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 96914 | .dst_temps = .{ .mem, .unused }, |
| | 96915 | .clobbers = .{ .eflags = true }, |
| 95454 | .each = .{ .once = &.{ | 96916 | .each = .{ .once = &.{ |
| 95455 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 96917 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95456 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, | 96918 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 96919 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 96920 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 96921 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 96922 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95457 | } }, | 96923 | } }, |
| 95458 | }, .{ | 96924 | }, .{ |
| 95459 | .required_features = .{ .avx2, null, null, null }, | 96925 | .required_features = .{ .@"64bit", null, null, null }, |
| 95460 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | 96926 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 95461 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, | 96927 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95462 | .patterns = &.{ | 96928 | .patterns = &.{ |
| 95463 | .{ .src = .{ .to_mem, .none, .none } }, | 96929 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95464 | }, | 96930 | }, |
| 95465 | .extra_temps = .{ | 96931 | .extra_temps = .{ |
| 95466 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96932 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95467 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 96933 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95468 | .unused, | 96934 | .unused, |
| 95469 | .unused, | 96935 | .unused, |
| 95470 | .unused, | 96936 | .unused, |
| ... | @@ -95479,25 +96945,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95479,25 +96945,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95479 | .clobbers = .{ .eflags = true }, | 96945 | .clobbers = .{ .eflags = true }, |
| 95480 | .each = .{ .once = &.{ | 96946 | .each = .{ .once = &.{ |
| 95481 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96947 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95482 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, | 96948 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95483 | .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, | 96949 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 95484 | .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, | 96950 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95485 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | | |
| 95486 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 95487 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96951 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95488 | } }, | 96952 | } }, |
| 95489 | }, .{ | 96953 | }, .{ |
| 95490 | .required_features = .{ .avx2, null, null, null }, | 96954 | .required_features = .{ .@"64bit", null, null, null }, |
| 95491 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | 96955 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 95492 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, | 96956 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95493 | .patterns = &.{ | 96957 | .patterns = &.{ |
| 95494 | .{ .src = .{ .to_mem, .none, .none } }, | 96958 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95495 | }, | 96959 | }, |
| 95496 | .extra_temps = .{ | 96960 | .extra_temps = .{ |
| 95497 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96961 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95498 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, | 96962 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 95499 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, | 96963 | .unused, |
| 95500 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 96964 | .unused, |
| 95501 | .unused, | 96965 | .unused, |
| 95502 | .unused, | 96966 | .unused, |
| 95503 | .unused, | 96967 | .unused, |
| ... | @@ -95509,25 +96973,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95509,25 +96973,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95509 | .dst_temps = .{ .mem, .unused }, | 96973 | .dst_temps = .{ .mem, .unused }, |
| 95510 | .clobbers = .{ .eflags = true }, | 96974 | .clobbers = .{ .eflags = true }, |
| 95511 | .each = .{ .once = &.{ | 96975 | .each = .{ .once = &.{ |
| 95512 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 95513 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, | | |
| 95514 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 96976 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95515 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, | 96977 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95516 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, | 96978 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 95517 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 96979 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 96980 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 96981 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95518 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 96982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95519 | } }, | 96983 | } }, |
| 95520 | }, .{ | 96984 | }, .{ |
| 95521 | .required_features = .{ .avx, null, null, null }, | 96985 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 95522 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 96986 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 95523 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 96987 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95524 | .patterns = &.{ | 96988 | .patterns = &.{ |
| 95525 | .{ .src = .{ .to_mem, .none, .none } }, | 96989 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95526 | }, | 96990 | }, |
| 95527 | .extra_temps = .{ | 96991 | .extra_temps = .{ |
| 95528 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 96992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95529 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 96993 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95530 | .unused, | 96994 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95531 | .unused, | 96995 | .unused, |
| 95532 | .unused, | 96996 | .unused, |
| 95533 | .unused, | 96997 | .unused, |
| ... | @@ -95541,25 +97005,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95541,25 +97005,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95541 | .clobbers = .{ .eflags = true }, | 97005 | .clobbers = .{ .eflags = true }, |
| 95542 | .each = .{ .once = &.{ | 97006 | .each = .{ .once = &.{ |
| 95543 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97007 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95544 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 97008 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95545 | .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, | 97009 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| 95546 | .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, | 97010 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 95547 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 97011 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95548 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 95549 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97012 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95550 | } }, | 97013 | } }, |
| 95551 | }, .{ | 97014 | }, .{ |
| 95552 | .required_features = .{ .avx, null, null, null }, | 97015 | .required_features = .{ .@"64bit", null, null, null }, |
| 95553 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 97016 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 95554 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, | 97017 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95555 | .patterns = &.{ | 97018 | .patterns = &.{ |
| 95556 | .{ .src = .{ .to_mem, .none, .none } }, | 97019 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95557 | }, | 97020 | }, |
| 95558 | .extra_temps = .{ | 97021 | .extra_temps = .{ |
| 95559 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97022 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95560 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 97023 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95561 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 97024 | .unused, |
| 95562 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 97025 | .unused, |
| 95563 | .unused, | 97026 | .unused, |
| 95564 | .unused, | 97027 | .unused, |
| 95565 | .unused, | 97028 | .unused, |
| ... | @@ -95571,25 +97034,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95571,25 +97034,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95571 | .dst_temps = .{ .mem, .unused }, | 97034 | .dst_temps = .{ .mem, .unused }, |
| 95572 | .clobbers = .{ .eflags = true }, | 97035 | .clobbers = .{ .eflags = true }, |
| 95573 | .each = .{ .once = &.{ | 97036 | .each = .{ .once = &.{ |
| 95574 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 95575 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 95576 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97037 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95577 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, | 97038 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 95578 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | 97039 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95579 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 97040 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 97041 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95580 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97042 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95581 | } }, | 97043 | } }, |
| 95582 | }, .{ | 97044 | }, .{ |
| 95583 | .required_features = .{ .sse2, null, null, null }, | 97045 | .required_features = .{ .@"64bit", null, null, null }, |
| 95584 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 97046 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 95585 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 97047 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95586 | .patterns = &.{ | 97048 | .patterns = &.{ |
| 95587 | .{ .src = .{ .to_mem, .none, .none } }, | 97049 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95588 | }, | 97050 | }, |
| 95589 | .extra_temps = .{ | 97051 | .extra_temps = .{ |
| 95590 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97052 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95591 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 97053 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95592 | .unused, | 97054 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95593 | .unused, | 97055 | .unused, |
| 95594 | .unused, | 97056 | .unused, |
| 95595 | .unused, | 97057 | .unused, |
| ... | @@ -95603,25 +97065,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95603,25 +97065,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95603 | .clobbers = .{ .eflags = true }, | 97065 | .clobbers = .{ .eflags = true }, |
| 95604 | .each = .{ .once = &.{ | 97066 | .each = .{ .once = &.{ |
| 95605 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97067 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95606 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 97068 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95607 | .{ ._, .p_d, .sll, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97069 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| 95608 | .{ ._, .p_d, .sra, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97070 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 95609 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 97071 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 95610 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 97072 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95611 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97073 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95612 | } }, | 97074 | } }, |
| 95613 | }, .{ | 97075 | }, .{ |
| 95614 | .required_features = .{ .sse2, null, null, null }, | 97076 | .required_features = .{ .@"64bit", null, null, null }, |
| 95615 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 97077 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 95616 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, | 97078 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95617 | .patterns = &.{ | 97079 | .patterns = &.{ |
| 95618 | .{ .src = .{ .to_mem, .none, .none } }, | 97080 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95619 | }, | 97081 | }, |
| 95620 | .extra_temps = .{ | 97082 | .extra_temps = .{ |
| 95621 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97083 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95622 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 97084 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95623 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 97085 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 95624 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 97086 | .unused, |
| 95625 | .unused, | 97087 | .unused, |
| 95626 | .unused, | 97088 | .unused, |
| 95627 | .unused, | 97089 | .unused, |
| ... | @@ -95633,27 +97095,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95633,27 +97095,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95633 | .dst_temps = .{ .mem, .unused }, | 97095 | .dst_temps = .{ .mem, .unused }, |
| 95634 | .clobbers = .{ .eflags = true }, | 97096 | .clobbers = .{ .eflags = true }, |
| 95635 | .each = .{ .once = &.{ | 97097 | .each = .{ .once = &.{ |
| 95636 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 95637 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 95638 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97098 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95639 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | 97099 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95640 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 97100 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| 95641 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | 97101 | .{ ._, ._l, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 95642 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 97102 | .{ ._, ._r, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 97103 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 97104 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 97105 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97106 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95644 | } }, | 97107 | } }, |
| 95645 | }, .{ | 97108 | }, .{ |
| 95646 | .required_features = .{ .sse, null, null, null }, | 97109 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 95647 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 97110 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 95648 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, | 97111 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95649 | .patterns = &.{ | 97112 | .patterns = &.{ |
| 95650 | .{ .src = .{ .to_mem, .none, .none } }, | 97113 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95651 | }, | 97114 | }, |
| 95652 | .extra_temps = .{ | 97115 | .extra_temps = .{ |
| 95653 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97116 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95654 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 97117 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95655 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, | 97118 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95656 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 97119 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95657 | .unused, | 97120 | .unused, |
| 95658 | .unused, | 97121 | .unused, |
| 95659 | .unused, | 97122 | .unused, |
| ... | @@ -95665,25 +97128,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95665,25 +97128,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95665 | .dst_temps = .{ .mem, .unused }, | 97128 | .dst_temps = .{ .mem, .unused }, |
| 95666 | .clobbers = .{ .eflags = true }, | 97129 | .clobbers = .{ .eflags = true }, |
| 95667 | .each = .{ .once = &.{ | 97130 | .each = .{ .once = &.{ |
| 95668 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | | |
| 95669 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 95670 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97131 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95671 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, | 97132 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95672 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 97133 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95673 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | 97134 | .{ .@"0:", ._, .bzhi, .tmp3q, .memi(.src0q, .tmp1), .tmp2q, ._ }, |
| 95674 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 97135 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 97136 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 97137 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95675 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97138 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95676 | } }, | 97139 | } }, |
| 95677 | }, .{ | 97140 | }, .{ |
| 95678 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 97141 | .required_features = .{ .@"64bit", null, null, null }, |
| 95679 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, | 97142 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97143 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95680 | .patterns = &.{ | 97144 | .patterns = &.{ |
| 95681 | .{ .src = .{ .to_mem, .none, .none } }, | 97145 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95682 | }, | 97146 | }, |
| 95683 | .extra_temps = .{ | 97147 | .extra_temps = .{ |
| 95684 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97148 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95685 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97149 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95686 | .unused, | 97150 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95687 | .unused, | 97151 | .unused, |
| 95688 | .unused, | 97152 | .unused, |
| 95689 | .unused, | 97153 | .unused, |
| ... | @@ -95697,22 +97161,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95697,22 +97161,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95697 | .clobbers = .{ .eflags = true }, | 97161 | .clobbers = .{ .eflags = true }, |
| 95698 | .each = .{ .once = &.{ | 97162 | .each = .{ .once = &.{ |
| 95699 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97163 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95700 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 97164 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95701 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97165 | .{ .@"0:", ._, .mov, .tmp2q, .ua(.dst0, .add_umax), ._, ._ }, |
| 95702 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97166 | .{ ._, ._, .@"and", .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| | 97167 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 97168 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 97169 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95703 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97170 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95704 | } }, | 97171 | } }, |
| 95705 | }, .{ | 97172 | }, .{ |
| 95706 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 97173 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 95707 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 97174 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| | 97175 | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95708 | .patterns = &.{ | 97176 | .patterns = &.{ |
| 95709 | .{ .src = .{ .to_mem, .none, .none } }, | 97177 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95710 | }, | 97178 | }, |
| 95711 | .extra_temps = .{ | 97179 | .extra_temps = .{ |
| 95712 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97180 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95713 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 97181 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95714 | .unused, | 97182 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 95715 | .unused, | 97183 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95716 | .unused, | 97184 | .unused, |
| 95717 | .unused, | 97185 | .unused, |
| 95718 | .unused, | 97186 | .unused, |
| ... | @@ -95724,26 +97192,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95724,26 +97192,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95724 | .dst_temps = .{ .mem, .unused }, | 97192 | .dst_temps = .{ .mem, .unused }, |
| 95725 | .clobbers = .{ .eflags = true }, | 97193 | .clobbers = .{ .eflags = true }, |
| 95726 | .each = .{ .once = &.{ | 97194 | .each = .{ .once = &.{ |
| 95727 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97195 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95728 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 97196 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95729 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97197 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95730 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97198 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| 95731 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97199 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 95732 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97200 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 95733 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97201 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97202 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 95734 | } }, | 97203 | } }, |
| 95735 | }, .{ | 97204 | }, .{ |
| 95736 | .required_features = .{ .bmi2, null, null, null }, | 97205 | .required_features = .{ .@"64bit", null, null, null }, |
| 95737 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 97206 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 95738 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97207 | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95739 | .patterns = &.{ | 97208 | .patterns = &.{ |
| 95740 | .{ .src = .{ .to_mem, .none, .none } }, | 97209 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95741 | }, | 97210 | }, |
| 95742 | .extra_temps = .{ | 97211 | .extra_temps = .{ |
| 95743 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 95744 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 95745 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97212 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95746 | .unused, | 97213 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 97214 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97215 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95747 | .unused, | 97216 | .unused, |
| 95748 | .unused, | 97217 | .unused, |
| 95749 | .unused, | 97218 | .unused, |
| ... | @@ -95755,24 +97224,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95755,24 +97224,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95755 | .dst_temps = .{ .mem, .unused }, | 97224 | .dst_temps = .{ .mem, .unused }, |
| 95756 | .clobbers = .{ .eflags = true }, | 97225 | .clobbers = .{ .eflags = true }, |
| 95757 | .each = .{ .once = &.{ | 97226 | .each = .{ .once = &.{ |
| 95758 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97227 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95759 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 97228 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95760 | .{ .@"0:", ._, .bzhi, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 97229 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95761 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | 97230 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| 95762 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97231 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 95763 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97232 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97233 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97234 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95764 | } }, | 97235 | } }, |
| 95765 | }, .{ | 97236 | }, .{ |
| 95766 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 97237 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 95767 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97238 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| | 97239 | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95768 | .patterns = &.{ | 97240 | .patterns = &.{ |
| 95769 | .{ .src = .{ .to_mem, .none, .none } }, | 97241 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95770 | }, | 97242 | }, |
| 95771 | .extra_temps = .{ | 97243 | .extra_temps = .{ |
| 95772 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 95773 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97244 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95774 | .unused, | 97245 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95775 | .unused, | 97246 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97247 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95776 | .unused, | 97248 | .unused, |
| 95777 | .unused, | 97249 | .unused, |
| 95778 | .unused, | 97250 | .unused, |
| ... | @@ -95784,24 +97256,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95784,24 +97256,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95784 | .dst_temps = .{ .mem, .unused }, | 97256 | .dst_temps = .{ .mem, .unused }, |
| 95785 | .clobbers = .{ .eflags = true }, | 97257 | .clobbers = .{ .eflags = true }, |
| 95786 | .each = .{ .once = &.{ | 97258 | .each = .{ .once = &.{ |
| 95787 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97259 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95788 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 97260 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95789 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 97261 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95790 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97262 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95791 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97263 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 95792 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97264 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 97265 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 97266 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 97267 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 97268 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97269 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97270 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97271 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 95793 | } }, | 97272 | } }, |
| 95794 | }, .{ | 97273 | }, .{ |
| 95795 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 97274 | .required_features = .{ .@"64bit", null, null, null }, |
| 95796 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, | 97275 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| | 97276 | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95797 | .patterns = &.{ | 97277 | .patterns = &.{ |
| 95798 | .{ .src = .{ .to_mem, .none, .none } }, | 97278 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95799 | }, | 97279 | }, |
| 95800 | .extra_temps = .{ | 97280 | .extra_temps = .{ |
| 95801 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 95802 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97281 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95803 | .unused, | 97282 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95804 | .unused, | 97283 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97284 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95805 | .unused, | 97285 | .unused, |
| 95806 | .unused, | 97286 | .unused, |
| 95807 | .unused, | 97287 | .unused, |
| ... | @@ -95813,23 +97293,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95813,23 +97293,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95813 | .dst_temps = .{ .mem, .unused }, | 97293 | .dst_temps = .{ .mem, .unused }, |
| 95814 | .clobbers = .{ .eflags = true }, | 97294 | .clobbers = .{ .eflags = true }, |
| 95815 | .each = .{ .once = &.{ | 97295 | .each = .{ .once = &.{ |
| 95816 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97296 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95817 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 97297 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95818 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97298 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95819 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97299 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95820 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97300 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97301 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 97302 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 97303 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 97304 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 97305 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97306 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97307 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97308 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95821 | } }, | 97309 | } }, |
| 95822 | }, .{ | 97310 | }, .{ |
| 95823 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 97311 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 95824 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 97312 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| | 97313 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95825 | .patterns = &.{ | 97314 | .patterns = &.{ |
| 95826 | .{ .src = .{ .to_mem, .none, .none } }, | 97315 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95827 | }, | 97316 | }, |
| 95828 | .extra_temps = .{ | 97317 | .extra_temps = .{ |
| 95829 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97318 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95830 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 97319 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95831 | .unused, | 97320 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 95832 | .unused, | 97321 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95833 | .unused, | 97322 | .unused, |
| 95834 | .unused, | 97323 | .unused, |
| 95835 | .unused, | 97324 | .unused, |
| ... | @@ -95841,26 +97330,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95841,26 +97330,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95841 | .dst_temps = .{ .mem, .unused }, | 97330 | .dst_temps = .{ .mem, .unused }, |
| 95842 | .clobbers = .{ .eflags = true }, | 97331 | .clobbers = .{ .eflags = true }, |
| 95843 | .each = .{ .once = &.{ | 97332 | .each = .{ .once = &.{ |
| 95844 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97333 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95845 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 97334 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95846 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97335 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95847 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97336 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95848 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97337 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 95849 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97338 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 95850 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97339 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97340 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97341 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 97342 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 97343 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 97344 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97345 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97346 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97347 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 95851 | } }, | 97348 | } }, |
| 95852 | }, .{ | 97349 | }, .{ |
| 95853 | .required_features = .{ .bmi2, null, null, null }, | 97350 | .required_features = .{ .@"64bit", null, null, null }, |
| 95854 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 97351 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 95855 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97352 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95856 | .patterns = &.{ | 97353 | .patterns = &.{ |
| 95857 | .{ .src = .{ .to_mem, .none, .none } }, | 97354 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95858 | }, | 97355 | }, |
| 95859 | .extra_temps = .{ | 97356 | .extra_temps = .{ |
| 95860 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 95861 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 95862 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97357 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95863 | .unused, | 97358 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 97359 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97360 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95864 | .unused, | 97361 | .unused, |
| 95865 | .unused, | 97362 | .unused, |
| 95866 | .unused, | 97363 | .unused, |
| ... | @@ -95872,25 +97369,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95872,25 +97369,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95872 | .dst_temps = .{ .mem, .unused }, | 97369 | .dst_temps = .{ .mem, .unused }, |
| 95873 | .clobbers = .{ .eflags = true }, | 97370 | .clobbers = .{ .eflags = true }, |
| 95874 | .each = .{ .once = &.{ | 97371 | .each = .{ .once = &.{ |
| 95875 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97372 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95876 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 97373 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95877 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 97374 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95878 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | 97375 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95879 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97376 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 95880 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97377 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 97378 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97379 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97380 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 97381 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 97382 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 97383 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97384 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97385 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97386 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95881 | } }, | 97387 | } }, |
| 95882 | }, .{ | 97388 | }, .{ |
| 95883 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 97389 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 95884 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97390 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| | 97391 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95885 | .patterns = &.{ | 97392 | .patterns = &.{ |
| 95886 | .{ .src = .{ .to_mem, .none, .none } }, | 97393 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95887 | }, | 97394 | }, |
| 95888 | .extra_temps = .{ | 97395 | .extra_temps = .{ |
| 95889 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 95890 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97396 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95891 | .unused, | 97397 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95892 | .unused, | 97398 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 95893 | .unused, | 97399 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 97400 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 95894 | .unused, | 97401 | .unused, |
| 95895 | .unused, | 97402 | .unused, |
| 95896 | .unused, | 97403 | .unused, |
| ... | @@ -95901,25 +97408,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95901,25 +97408,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95901 | .dst_temps = .{ .mem, .unused }, | 97408 | .dst_temps = .{ .mem, .unused }, |
| 95902 | .clobbers = .{ .eflags = true }, | 97409 | .clobbers = .{ .eflags = true }, |
| 95903 | .each = .{ .once = &.{ | 97410 | .each = .{ .once = &.{ |
| 95904 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97411 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95905 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 97412 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95906 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 97413 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95907 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97414 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95908 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97415 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 95909 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97416 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| | 97417 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97418 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97419 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97420 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97421 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97422 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 95910 | } }, | 97423 | } }, |
| 95911 | }, .{ | 97424 | }, .{ |
| 95912 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 97425 | .required_features = .{ .@"64bit", null, null, null }, |
| 95913 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, | 97426 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| | 97427 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95914 | .patterns = &.{ | 97428 | .patterns = &.{ |
| 95915 | .{ .src = .{ .to_mem, .none, .none } }, | 97429 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95916 | }, | 97430 | }, |
| 95917 | .extra_temps = .{ | 97431 | .extra_temps = .{ |
| 95918 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 95919 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97432 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95920 | .unused, | 97433 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95921 | .unused, | 97434 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 95922 | .unused, | 97435 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 97436 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 95923 | .unused, | 97437 | .unused, |
| 95924 | .unused, | 97438 | .unused, |
| 95925 | .unused, | 97439 | .unused, |
| ... | @@ -95930,24 +97444,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95930,24 +97444,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95930 | .dst_temps = .{ .mem, .unused }, | 97444 | .dst_temps = .{ .mem, .unused }, |
| 95931 | .clobbers = .{ .eflags = true }, | 97445 | .clobbers = .{ .eflags = true }, |
| 95932 | .each = .{ .once = &.{ | 97446 | .each = .{ .once = &.{ |
| 95933 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97447 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95934 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 97448 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95935 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97449 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95936 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97450 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95937 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97451 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97452 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| | 97453 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97454 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 97455 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97456 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97457 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97458 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95938 | } }, | 97459 | } }, |
| 95939 | }, .{ | 97460 | }, .{ |
| 95940 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 97461 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 95941 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 97462 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97463 | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95942 | .patterns = &.{ | 97464 | .patterns = &.{ |
| 95943 | .{ .src = .{ .to_mem, .none, .none } }, | 97465 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95944 | }, | 97466 | }, |
| 95945 | .extra_temps = .{ | 97467 | .extra_temps = .{ |
| 95946 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97468 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95947 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 97469 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95948 | .unused, | 97470 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 95949 | .unused, | 97471 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 95950 | .unused, | 97472 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95951 | .unused, | 97473 | .unused, |
| 95952 | .unused, | 97474 | .unused, |
| 95953 | .unused, | 97475 | .unused, |
| ... | @@ -95958,27 +97480,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95958,27 +97480,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95958 | .dst_temps = .{ .mem, .unused }, | 97480 | .dst_temps = .{ .mem, .unused }, |
| 95959 | .clobbers = .{ .eflags = true }, | 97481 | .clobbers = .{ .eflags = true }, |
| 95960 | .each = .{ .once = &.{ | 97482 | .each = .{ .once = &.{ |
| 95961 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97483 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95962 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 97484 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95963 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97485 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95964 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97486 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 95965 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97487 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95966 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97488 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 95967 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97489 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97490 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97491 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97492 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 95968 | } }, | 97493 | } }, |
| 95969 | }, .{ | 97494 | }, .{ |
| 95970 | .required_features = .{ .bmi2, null, null, null }, | 97495 | .required_features = .{ .@"64bit", null, null, null }, |
| 95971 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 97496 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 95972 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97497 | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95973 | .patterns = &.{ | 97498 | .patterns = &.{ |
| 95974 | .{ .src = .{ .to_mem, .none, .none } }, | 97499 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95975 | }, | 97500 | }, |
| 95976 | .extra_temps = .{ | 97501 | .extra_temps = .{ |
| 95977 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 95978 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 95979 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97502 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95980 | .unused, | 97503 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 95981 | .unused, | 97504 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97505 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 97506 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95982 | .unused, | 97507 | .unused, |
| 95983 | .unused, | 97508 | .unused, |
| 95984 | .unused, | 97509 | .unused, |
| ... | @@ -95989,26 +97514,68 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -95989,26 +97514,68 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95989 | .dst_temps = .{ .mem, .unused }, | 97514 | .dst_temps = .{ .mem, .unused }, |
| 95990 | .clobbers = .{ .eflags = true }, | 97515 | .clobbers = .{ .eflags = true }, |
| 95991 | .each = .{ .once = &.{ | 97516 | .each = .{ .once = &.{ |
| 95992 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97517 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 95993 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 97518 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 95994 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 97519 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 95995 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | 97520 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 95996 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97521 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 95997 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97522 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97523 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97524 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97525 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97526 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95998 | } }, | 97527 | } }, |
| 95999 | }, .{ | 97528 | }, .{ |
| 96000 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 97529 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 96001 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97530 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97531 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 96002 | .patterns = &.{ | 97532 | .patterns = &.{ |
| 96003 | .{ .src = .{ .to_mem, .none, .none } }, | 97533 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96004 | }, | 97534 | }, |
| 96005 | .extra_temps = .{ | 97535 | .extra_temps = .{ |
| 96006 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96007 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97536 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 97537 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 97538 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97539 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 97540 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 97541 | .unused, |
| | 97542 | .unused, |
| 96008 | .unused, | 97543 | .unused, |
| 96009 | .unused, | 97544 | .unused, |
| 96010 | .unused, | 97545 | .unused, |
| 96011 | .unused, | 97546 | .unused, |
| | 97547 | }, |
| | 97548 | .dst_temps = .{ .mem, .unused }, |
| | 97549 | .clobbers = .{ .eflags = true }, |
| | 97550 | .each = .{ .once = &.{ |
| | 97551 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 97552 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 97553 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 97554 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 97555 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 97556 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97557 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| | 97558 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, |
| | 97559 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 97560 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97561 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97562 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97563 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 97564 | } }, |
| | 97565 | }, .{ |
| | 97566 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 97567 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97568 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 97569 | .patterns = &.{ |
| | 97570 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 97571 | }, |
| | 97572 | .extra_temps = .{ |
| | 97573 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 97574 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 97575 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97576 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 97577 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 97578 | .unused, |
| 96012 | .unused, | 97579 | .unused, |
| 96013 | .unused, | 97580 | .unused, |
| 96014 | .unused, | 97581 | .unused, |
| ... | @@ -96018,27 +97585,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96018,27 +97585,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96018 | .dst_temps = .{ .mem, .unused }, | 97585 | .dst_temps = .{ .mem, .unused }, |
| 96019 | .clobbers = .{ .eflags = true }, | 97586 | .clobbers = .{ .eflags = true }, |
| 96020 | .each = .{ .once = &.{ | 97587 | .each = .{ .once = &.{ |
| 96021 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97588 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 96022 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 97589 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 96023 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 97590 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 96024 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97591 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 96025 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97592 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 96026 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97593 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97594 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| | 97595 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, |
| | 97596 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 97597 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97598 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97599 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97600 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 96027 | } }, | 97601 | } }, |
| 96028 | }, .{ | 97602 | }, .{ |
| 96029 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 97603 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 96030 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, | 97604 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97605 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 96031 | .patterns = &.{ | 97606 | .patterns = &.{ |
| 96032 | .{ .src = .{ .to_mem, .none, .none } }, | 97607 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96033 | }, | 97608 | }, |
| 96034 | .extra_temps = .{ | 97609 | .extra_temps = .{ |
| 96035 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96036 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97610 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 97611 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 97612 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97613 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 97614 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 97615 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 96037 | .unused, | 97616 | .unused, |
| 96038 | .unused, | 97617 | .unused, |
| 96039 | .unused, | 97618 | .unused, |
| 96040 | .unused, | 97619 | .unused, |
| 96041 | .unused, | 97620 | .unused, |
| | 97621 | }, |
| | 97622 | .dst_temps = .{ .mem, .unused }, |
| | 97623 | .clobbers = .{ .eflags = true }, |
| | 97624 | .each = .{ .once = &.{ |
| | 97625 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 97626 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 97627 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 97628 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 97629 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 97630 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97631 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, |
| | 97632 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97633 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97634 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97635 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 97636 | } }, |
| | 97637 | }, .{ |
| | 97638 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 97639 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97640 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 97641 | .patterns = &.{ |
| | 97642 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 97643 | }, |
| | 97644 | .extra_temps = .{ |
| | 97645 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 97646 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 97647 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97648 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 97649 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 97650 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 97651 | .unused, |
| 96042 | .unused, | 97652 | .unused, |
| 96043 | .unused, | 97653 | .unused, |
| 96044 | .unused, | 97654 | .unused, |
| ... | @@ -96047,23 +97657,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96047,23 +97657,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96047 | .dst_temps = .{ .mem, .unused }, | 97657 | .dst_temps = .{ .mem, .unused }, |
| 96048 | .clobbers = .{ .eflags = true }, | 97658 | .clobbers = .{ .eflags = true }, |
| 96049 | .each = .{ .once = &.{ | 97659 | .each = .{ .once = &.{ |
| 96050 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97660 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 96051 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 97661 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 96052 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97662 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 96053 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97663 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 96054 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97664 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 97665 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97666 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, |
| | 97667 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97668 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97669 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97670 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 96055 | } }, | 97671 | } }, |
| 96056 | }, .{ | 97672 | }, .{ |
| 96057 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 97673 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 96058 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 97674 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97675 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 96059 | .patterns = &.{ | 97676 | .patterns = &.{ |
| 96060 | .{ .src = .{ .to_mem, .none, .none } }, | 97677 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96061 | }, | 97678 | }, |
| 96062 | .extra_temps = .{ | 97679 | .extra_temps = .{ |
| 96063 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 97680 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96064 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 97681 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 96065 | .unused, | 97682 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 96066 | .unused, | 97683 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96067 | .unused, | 97684 | .unused, |
| 96068 | .unused, | 97685 | .unused, |
| 96069 | .unused, | 97686 | .unused, |
| ... | @@ -96075,26 +97692,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96075,26 +97692,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96075 | .dst_temps = .{ .mem, .unused }, | 97692 | .dst_temps = .{ .mem, .unused }, |
| 96076 | .clobbers = .{ .eflags = true }, | 97693 | .clobbers = .{ .eflags = true }, |
| 96077 | .each = .{ .once = &.{ | 97694 | .each = .{ .once = &.{ |
| 96078 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97695 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 96079 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 97696 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 96080 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97697 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 96081 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | 97698 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 96082 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97699 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 96083 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97700 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| 96084 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97701 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 97702 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 97703 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 97704 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97705 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97706 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97707 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 96085 | } }, | 97708 | } }, |
| 96086 | }, .{ | 97709 | }, .{ |
| 96087 | .required_features = .{ .bmi2, null, null, null }, | 97710 | .required_features = .{ .@"64bit", null, null, null }, |
| 96088 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 97711 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 96089 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97712 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 96090 | .patterns = &.{ | 97713 | .patterns = &.{ |
| 96091 | .{ .src = .{ .to_mem, .none, .none } }, | 97714 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96092 | }, | 97715 | }, |
| 96093 | .extra_temps = .{ | 97716 | .extra_temps = .{ |
| 96094 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96095 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 96096 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97717 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96097 | .unused, | 97718 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 97719 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 97720 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96098 | .unused, | 97721 | .unused, |
| 96099 | .unused, | 97722 | .unused, |
| 96100 | .unused, | 97723 | .unused, |
| ... | @@ -96106,25 +97729,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96106,25 +97729,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96106 | .dst_temps = .{ .mem, .unused }, | 97729 | .dst_temps = .{ .mem, .unused }, |
| 96107 | .clobbers = .{ .eflags = true }, | 97730 | .clobbers = .{ .eflags = true }, |
| 96108 | .each = .{ .once = &.{ | 97731 | .each = .{ .once = &.{ |
| 96109 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97732 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 96110 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 97733 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 96111 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, | 97734 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 96112 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | 97735 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 96113 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97736 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 96114 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97737 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 97738 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 97739 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 97740 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 97741 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97742 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 97743 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97744 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 96115 | } }, | 97745 | } }, |
| 96116 | }, .{ | 97746 | }, .{ |
| 96117 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 97747 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 96118 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 97748 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97749 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 96119 | .patterns = &.{ | 97750 | .patterns = &.{ |
| 96120 | .{ .src = .{ .to_mem, .none, .none } }, | 97751 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96121 | }, | 97752 | }, |
| 96122 | .extra_temps = .{ | 97753 | .extra_temps = .{ |
| 96123 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96124 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97754 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96125 | .unused, | 97755 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 96126 | .unused, | 97756 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 96127 | .unused, | 97757 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 97758 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96128 | .unused, | 97759 | .unused, |
| 96129 | .unused, | 97760 | .unused, |
| 96130 | .unused, | 97761 | .unused, |
| ... | @@ -96135,25 +97766,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96135,25 +97766,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96135 | .dst_temps = .{ .mem, .unused }, | 97766 | .dst_temps = .{ .mem, .unused }, |
| 96136 | .clobbers = .{ .eflags = true }, | 97767 | .clobbers = .{ .eflags = true }, |
| 96137 | .each = .{ .once = &.{ | 97768 | .each = .{ .once = &.{ |
| 96138 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 97769 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 96139 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 97770 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 96140 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, | 97771 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 96141 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | 97772 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 96142 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 97773 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 96143 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 97774 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97775 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 97776 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, |
| | 97777 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97778 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97779 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 97780 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 96144 | } }, | 97781 | } }, |
| 96145 | }, .{ | 97782 | }, .{ |
| 96146 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 97783 | .required_features = .{ .@"64bit", null, null, null }, |
| 96147 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, | 97784 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| | 97785 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 96148 | .patterns = &.{ | 97786 | .patterns = &.{ |
| 96149 | .{ .src = .{ .to_mem, .none, .none } }, | 97787 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96150 | }, | 97788 | }, |
| 96151 | .extra_temps = .{ | 97789 | .extra_temps = .{ |
| 96152 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96153 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97790 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96154 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 97791 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 96155 | .unused, | 97792 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 96156 | .unused, | 97793 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 97794 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96157 | .unused, | 97795 | .unused, |
| 96158 | .unused, | 97796 | .unused, |
| 96159 | .unused, | 97797 | .unused, |
| ... | @@ -96161,658 +97799,659 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96161,658 +97799,659 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96161 | .unused, | 97799 | .unused, |
| 96162 | .unused, | 97800 | .unused, |
| 96163 | }, | 97801 | }, |
| 96164 | .dst_temps = .{ .mem, .unused }, | 97802 | .dst_temps = .{ .mem, .unused }, |
| | 97803 | .clobbers = .{ .eflags = true }, |
| | 97804 | .each = .{ .once = &.{ |
| | 97805 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 97806 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 97807 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 97808 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 97809 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 97810 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 97811 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 97812 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, |
| | 97813 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 97814 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 97815 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 97816 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 97817 | } }, |
| | 97818 | } }) catch |err| switch (err) { |
| | 97819 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| | 97820 | @tagName(air_tag), |
| | 97821 | ty_op.ty.toType().fmt(pt), |
| | 97822 | cg.typeOf(ty_op.operand).fmt(pt), |
| | 97823 | ops[0].tracking(cg), |
| | 97824 | }), |
| | 97825 | else => |e| return e, |
| | 97826 | }; |
| | 97827 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97828 | }, |
| | 97829 | .optional_payload => if (use_old) try cg.airOptionalPayload(inst) else { |
| | 97830 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97831 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97832 | const pl = if (!hack_around_sema_opv_bugs or ty_op.ty.toType().hasRuntimeBitsIgnoreComptime(zcu)) |
| | 97833 | try ops[0].read(ty_op.ty.toType(), .{}, cg) |
| | 97834 | else |
| | 97835 | try cg.tempInit(ty_op.ty.toType(), .none); |
| | 97836 | try pl.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97837 | }, |
| | 97838 | .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else { |
| | 97839 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97840 | const ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97841 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97842 | }, |
| | 97843 | .optional_payload_ptr_set => if (use_old) try cg.airOptionalPayloadPtrSet(inst) else { |
| | 97844 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97845 | const opt_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| | 97846 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97847 | if (!opt_ty.optionalReprIsPayload(zcu)) { |
| | 97848 | const opt_pl_ty = opt_ty.optionalChild(zcu); |
| | 97849 | const opt_pl_abi_size: i32 = @intCast(opt_pl_ty.abiSize(zcu)); |
| | 97850 | try ops[0].toOffset(opt_pl_abi_size, cg); |
| | 97851 | var has_value = try cg.tempInit(.bool, .{ .immediate = 1 }); |
| | 97852 | try ops[0].store(&has_value, .{}, cg); |
| | 97853 | try has_value.die(cg); |
| | 97854 | try ops[0].toOffset(-opt_pl_abi_size, cg); |
| | 97855 | } |
| | 97856 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97857 | }, |
| | 97858 | .wrap_optional => if (use_old) try cg.airWrapOptional(inst) else { |
| | 97859 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97860 | const opt_ty = ty_op.ty.toType(); |
| | 97861 | const opt_pl_ty = cg.typeOf(ty_op.operand); |
| | 97862 | const opt_pl_abi_size: u31 = @intCast(opt_pl_ty.abiSize(zcu)); |
| | 97863 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97864 | var opt = try cg.tempAlloc(opt_ty); |
| | 97865 | try opt.write(&ops[0], .{}, cg); |
| | 97866 | if (!opt_ty.optionalReprIsPayload(zcu)) { |
| | 97867 | var has_value = try cg.tempInit(.bool, .{ .immediate = 1 }); |
| | 97868 | try opt.write(&has_value, .{ .disp = opt_pl_abi_size }, cg); |
| | 97869 | try has_value.die(cg); |
| | 97870 | } |
| | 97871 | try opt.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97872 | }, |
| | 97873 | .unwrap_errunion_payload => if (use_old) try cg.airUnwrapErrUnionPayload(inst) else { |
| | 97874 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97875 | const eu_pl_ty = ty_op.ty.toType(); |
| | 97876 | const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); |
| | 97877 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97878 | const pl = if (!hack_around_sema_opv_bugs or eu_pl_ty.hasRuntimeBitsIgnoreComptime(zcu)) |
| | 97879 | try ops[0].read(eu_pl_ty, .{ .disp = eu_pl_off }, cg) |
| | 97880 | else |
| | 97881 | try cg.tempInit(eu_pl_ty, .none); |
| | 97882 | try pl.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97883 | }, |
| | 97884 | .unwrap_errunion_err => if (use_old) try cg.airUnwrapErrUnionErr(inst) else { |
| | 97885 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97886 | const eu_ty = cg.typeOf(ty_op.operand); |
| | 97887 | const eu_err_ty = ty_op.ty.toType(); |
| | 97888 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); |
| | 97889 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); |
| | 97890 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97891 | const err = try ops[0].read(eu_err_ty, .{ .disp = eu_err_off }, cg); |
| | 97892 | try err.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97893 | }, |
| | 97894 | .unwrap_errunion_payload_ptr => if (use_old) try cg.airUnwrapErrUnionPayloadPtr(inst) else { |
| | 97895 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97896 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| | 97897 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); |
| | 97898 | const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); |
| | 97899 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97900 | try ops[0].toOffset(eu_pl_off, cg); |
| | 97901 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97902 | }, |
| | 97903 | .unwrap_errunion_err_ptr => if (use_old) try cg.airUnwrapErrUnionErrPtr(inst) else { |
| | 97904 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97905 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| | 97906 | const eu_err_ty = ty_op.ty.toType(); |
| | 97907 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); |
| | 97908 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); |
| | 97909 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97910 | try ops[0].toOffset(eu_err_off, cg); |
| | 97911 | const err = try ops[0].load(eu_err_ty, .{}, cg); |
| | 97912 | try err.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97913 | }, |
| | 97914 | .errunion_payload_ptr_set => if (use_old) try cg.airErrUnionPayloadPtrSet(inst) else { |
| | 97915 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97916 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| | 97917 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| | 97918 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); |
| | 97919 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); |
| | 97920 | const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); |
| | 97921 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97922 | try ops[0].toOffset(eu_err_off, cg); |
| | 97923 | var err = try cg.tempInit(eu_err_ty, .{ .immediate = 0 }); |
| | 97924 | try ops[0].store(&err, .{}, cg); |
| | 97925 | try err.die(cg); |
| | 97926 | try ops[0].toOffset(eu_pl_off - eu_err_off, cg); |
| | 97927 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97928 | }, |
| | 97929 | .wrap_errunion_payload => if (use_old) try cg.airWrapErrUnionPayload(inst) else { |
| | 97930 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97931 | const eu_ty = ty_op.ty.toType(); |
| | 97932 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| | 97933 | const eu_pl_ty = cg.typeOf(ty_op.operand); |
| | 97934 | const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); |
| | 97935 | const eu_pl_off: u31 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); |
| | 97936 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97937 | var eu = try cg.tempAlloc(eu_ty); |
| | 97938 | try eu.write(&ops[0], .{ .disp = eu_pl_off }, cg); |
| | 97939 | var err = try cg.tempInit(eu_err_ty, .{ .immediate = 0 }); |
| | 97940 | try eu.write(&err, .{ .disp = eu_err_off }, cg); |
| | 97941 | try err.die(cg); |
| | 97942 | try eu.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97943 | }, |
| | 97944 | .wrap_errunion_err => if (use_old) try cg.airWrapErrUnionErr(inst) else { |
| | 97945 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97946 | const eu_ty = ty_op.ty.toType(); |
| | 97947 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); |
| | 97948 | const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); |
| | 97949 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97950 | var eu = try cg.tempAlloc(eu_ty); |
| | 97951 | try eu.write(&ops[0], .{ .disp = eu_err_off }, cg); |
| | 97952 | try eu.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97953 | }, |
| | 97954 | .struct_field_ptr => if (use_old) try cg.airStructFieldPtr(inst) else { |
| | 97955 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| | 97956 | const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data; |
| | 97957 | var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand}); |
| | 97958 | try ops[0].toOffset(cg.fieldOffset( |
| | 97959 | cg.typeOf(extra.struct_operand), |
| | 97960 | ty_pl.ty.toType(), |
| | 97961 | extra.field_index, |
| | 97962 | ), cg); |
| | 97963 | try ops[0].finish(inst, &.{extra.struct_operand}, &ops, cg); |
| | 97964 | }, |
| | 97965 | .struct_field_ptr_index_0, |
| | 97966 | .struct_field_ptr_index_1, |
| | 97967 | .struct_field_ptr_index_2, |
| | 97968 | .struct_field_ptr_index_3, |
| | 97969 | => |air_tag| if (use_old) try cg.airStructFieldPtrIndex(inst, switch (air_tag) { |
| | 97970 | else => unreachable, |
| | 97971 | .struct_field_ptr_index_0 => 0, |
| | 97972 | .struct_field_ptr_index_1 => 1, |
| | 97973 | .struct_field_ptr_index_2 => 2, |
| | 97974 | .struct_field_ptr_index_3 => 3, |
| | 97975 | }) else { |
| | 97976 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 97977 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 97978 | try ops[0].toOffset(cg.fieldOffset( |
| | 97979 | cg.typeOf(ty_op.operand), |
| | 97980 | ty_op.ty.toType(), |
| | 97981 | switch (air_tag) { |
| | 97982 | else => unreachable, |
| | 97983 | .struct_field_ptr_index_0 => 0, |
| | 97984 | .struct_field_ptr_index_1 => 1, |
| | 97985 | .struct_field_ptr_index_2 => 2, |
| | 97986 | .struct_field_ptr_index_3 => 3, |
| | 97987 | }, |
| | 97988 | ), cg); |
| | 97989 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 97990 | }, |
| | 97991 | .struct_field_val => if (use_old) try cg.airStructFieldVal(inst) else fallback: { |
| | 97992 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| | 97993 | const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data; |
| | 97994 | const agg_ty = cg.typeOf(extra.struct_operand); |
| | 97995 | const field_ty = ty_pl.ty.toType(); |
| | 97996 | const field_off: u31 = switch (agg_ty.containerLayout(zcu)) { |
| | 97997 | .auto, .@"extern" => @intCast(agg_ty.structFieldOffset(extra.field_index, zcu)), |
| | 97998 | .@"packed" => break :fallback try cg.airStructFieldVal(inst), |
| | 97999 | }; |
| | 98000 | var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand}); |
| | 98001 | var res = if (!hack_around_sema_opv_bugs or field_ty.hasRuntimeBitsIgnoreComptime(zcu)) |
| | 98002 | try ops[0].read(field_ty, .{ .disp = field_off }, cg) |
| | 98003 | else |
| | 98004 | try cg.tempInit(field_ty, .none); |
| | 98005 | try res.finish(inst, &.{extra.struct_operand}, &ops, cg); |
| | 98006 | }, |
| | 98007 | .set_union_tag => if (use_old) try cg.airSetUnionTag(inst) else { |
| | 98008 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| | 98009 | const union_ty = cg.typeOf(bin_op.lhs).childType(zcu); |
| | 98010 | const union_layout = union_ty.unionGetLayout(zcu); |
| | 98011 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 98012 | if (!hack_around_sema_opv_bugs or union_layout.tag_size > 0) try ops[0].store(&ops[1], .{ |
| | 98013 | .disp = @intCast(union_layout.tagOffset()), |
| | 98014 | }, cg); |
| | 98015 | const res = try cg.tempInit(.void, .none); |
| | 98016 | try res.finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 98017 | }, |
| | 98018 | .get_union_tag => if (use_old) try cg.airGetUnionTag(inst) else { |
| | 98019 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 98020 | const union_ty = cg.typeOf(ty_op.operand); |
| | 98021 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 98022 | const union_layout = union_ty.unionGetLayout(zcu); |
| | 98023 | assert(union_layout.tag_size > 0); |
| | 98024 | const res = try ops[0].read(ty_op.ty.toType(), .{ |
| | 98025 | .disp = @intCast(union_layout.tagOffset()), |
| | 98026 | }, cg); |
| | 98027 | try res.finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 98028 | }, |
| | 98029 | .slice => if (use_old) try cg.airSlice(inst) else { |
| | 98030 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| | 98031 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| | 98032 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 98033 | try ops[0].toPair(&ops[1], cg); |
| | 98034 | try ops[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 98035 | }, |
| | 98036 | .slice_len => if (use_old) try cg.airSliceLen(inst) else { |
| | 98037 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 98038 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 98039 | try ops[0].toSliceLen(cg); |
| | 98040 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 98041 | }, |
| | 98042 | .slice_ptr => if (use_old) try cg.airSlicePtr(inst) else { |
| | 98043 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 98044 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 98045 | try ops[0].toSlicePtr(cg); |
| | 98046 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 98047 | }, |
| | 98048 | .ptr_slice_len_ptr => if (use_old) try cg.airPtrSliceLenPtr(inst) else { |
| | 98049 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 98050 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 98051 | try ops[0].toOffset(8, cg); |
| | 98052 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 98053 | }, |
| | 98054 | .ptr_slice_ptr_ptr => if (use_old) try cg.airPtrSlicePtrPtr(inst) else { |
| | 98055 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 98056 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 98057 | try ops[0].toOffset(0, cg); |
| | 98058 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 98059 | }, |
| | 98060 | .array_elem_val => if (use_old) try cg.airArrayElemVal(inst) else { |
| | 98061 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| | 98062 | const array_ty = cg.typeOf(bin_op.lhs); |
| | 98063 | const res_ty = array_ty.elemType2(zcu); |
| | 98064 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 98065 | var res: [1]Temp = undefined; |
| | 98066 | cg.select(&res, &.{res_ty}, &ops, comptime &.{ .{ |
| | 98067 | .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any }, |
| | 98068 | .patterns = &.{ |
| | 98069 | .{ .src = .{ .to_gpr, .imm32, .none } }, |
| | 98070 | }, |
| | 98071 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 96165 | .clobbers = .{ .eflags = true }, | 98072 | .clobbers = .{ .eflags = true }, |
| 96166 | .each = .{ .once = &.{ | 98073 | .each = .{ .once = &.{ |
| 96167 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98074 | .{ ._, ._, .bt, .src0d, .ua(.none, .add_src1_rem_32), ._, ._ }, |
| 96168 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 96169 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | | |
| 96170 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | | |
| 96171 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 96172 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 96173 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96174 | } }, | 98075 | } }, |
| 96175 | }, .{ | 98076 | }, .{ |
| 96176 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98077 | .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any }, |
| 96177 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | | |
| 96178 | .patterns = &.{ | 98078 | .patterns = &.{ |
| 96179 | .{ .src = .{ .to_mem, .none, .none } }, | 98079 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96180 | }, | | |
| 96181 | .extra_temps = .{ | | |
| 96182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96183 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 96184 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | | |
| 96185 | .unused, | | |
| 96186 | .unused, | | |
| 96187 | .unused, | | |
| 96188 | .unused, | | |
| 96189 | .unused, | | |
| 96190 | .unused, | | |
| 96191 | .unused, | | |
| 96192 | .unused, | | |
| 96193 | }, | 98080 | }, |
| 96194 | .dst_temps = .{ .mem, .unused }, | 98081 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 96195 | .clobbers = .{ .eflags = true }, | 98082 | .clobbers = .{ .eflags = true }, |
| 96196 | .each = .{ .once = &.{ | 98083 | .each = .{ .once = &.{ |
| 96197 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98084 | .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, |
| 96198 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 96199 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | | |
| 96200 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 96201 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 96202 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | | |
| 96203 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 96204 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 96205 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96206 | } }, | 98085 | } }, |
| 96207 | }, .{ | 98086 | }, .{ |
| 96208 | .required_features = .{ .bmi2, null, null, null }, | 98087 | .required_features = .{ .@"64bit", null, null, null }, |
| 96209 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 98088 | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, |
| 96210 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | | |
| 96211 | .patterns = &.{ | 98089 | .patterns = &.{ |
| 96212 | .{ .src = .{ .to_mem, .none, .none } }, | 98090 | .{ .src = .{ .to_gpr, .imm32, .none } }, |
| 96213 | }, | | |
| 96214 | .extra_temps = .{ | | |
| 96215 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96216 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 96217 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 96218 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 96219 | .unused, | | |
| 96220 | .unused, | | |
| 96221 | .unused, | | |
| 96222 | .unused, | | |
| 96223 | .unused, | | |
| 96224 | .unused, | | |
| 96225 | .unused, | | |
| 96226 | }, | 98091 | }, |
| 96227 | .dst_temps = .{ .mem, .unused }, | 98092 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 96228 | .clobbers = .{ .eflags = true }, | 98093 | .clobbers = .{ .eflags = true }, |
| 96229 | .each = .{ .once = &.{ | 98094 | .each = .{ .once = &.{ |
| 96230 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98095 | .{ ._, ._, .bt, .src0q, .ua(.none, .add_src1_rem_64), ._, ._ }, |
| 96231 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 96232 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 96233 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, | | |
| 96234 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | | |
| 96235 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 96236 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 96237 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96238 | } }, | 98096 | } }, |
| 96239 | }, .{ | 98097 | }, .{ |
| 96240 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 98098 | .required_features = .{ .@"64bit", null, null, null }, |
| 96241 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 98099 | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, |
| 96242 | .patterns = &.{ | 98100 | .patterns = &.{ |
| 96243 | .{ .src = .{ .to_mem, .none, .none } }, | 98101 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96244 | }, | | |
| 96245 | .extra_temps = .{ | | |
| 96246 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96247 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 96248 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | | |
| 96249 | .unused, | | |
| 96250 | .unused, | | |
| 96251 | .unused, | | |
| 96252 | .unused, | | |
| 96253 | .unused, | | |
| 96254 | .unused, | | |
| 96255 | .unused, | | |
| 96256 | .unused, | | |
| 96257 | }, | 98102 | }, |
| 96258 | .dst_temps = .{ .mem, .unused }, | 98103 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 96259 | .clobbers = .{ .eflags = true }, | 98104 | .clobbers = .{ .eflags = true }, |
| 96260 | .each = .{ .once = &.{ | 98105 | .each = .{ .once = &.{ |
| 96261 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98106 | .{ ._, ._, .bt, .src0q, .src1q, ._, ._ }, |
| 96262 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 96263 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, | | |
| 96264 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 96265 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | | |
| 96266 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 96267 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 96268 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96269 | } }, | 98107 | } }, |
| 96270 | }, .{ | 98108 | }, .{ |
| 96271 | .required_features = .{ .avx, null, null, null }, | 98109 | .src_constraints = .{ .any_bool_vec, .any, .any }, |
| 96272 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96273 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96274 | .patterns = &.{ | 98110 | .patterns = &.{ |
| 96275 | .{ .src = .{ .to_sse, .none, .none } }, | 98111 | .{ .src = .{ .to_mem, .imm32, .none } }, |
| 96276 | }, | | |
| 96277 | .extra_temps = .{ | | |
| 96278 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 96279 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96280 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | | |
| 96281 | .unused, | | |
| 96282 | .unused, | | |
| 96283 | .unused, | | |
| 96284 | .unused, | | |
| 96285 | .unused, | | |
| 96286 | .unused, | | |
| 96287 | .unused, | | |
| 96288 | .unused, | | |
| 96289 | }, | 98112 | }, |
| 96290 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 98113 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| | 98114 | .clobbers = .{ .eflags = true }, |
| 96291 | .each = .{ .once = &.{ | 98115 | .each = .{ .once = &.{ |
| 96292 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 98116 | .{ ._, ._, .bt, .mema(.src0d, .add_src1_div_8_down_4), .ua(.none, .add_src1_rem_32), ._, ._ }, |
| 96293 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, | | |
| 96294 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | | |
| 96295 | .{ ._, .vp_q, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | | |
| 96296 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | | |
| 96297 | } }, | 98117 | } }, |
| 96298 | }, .{ | 98118 | }, .{ |
| 96299 | .required_features = .{ .avx, null, null, null }, | 98119 | .src_constraints = .{ .any_bool_vec, .any, .any }, |
| 96300 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96301 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96302 | .patterns = &.{ | 98120 | .patterns = &.{ |
| 96303 | .{ .src = .{ .to_sse, .none, .none } }, | 98121 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96304 | }, | | |
| 96305 | .extra_temps = .{ | | |
| 96306 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 96307 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | | |
| 96308 | .unused, | | |
| 96309 | .unused, | | |
| 96310 | .unused, | | |
| 96311 | .unused, | | |
| 96312 | .unused, | | |
| 96313 | .unused, | | |
| 96314 | .unused, | | |
| 96315 | .unused, | | |
| 96316 | .unused, | | |
| 96317 | }, | 98122 | }, |
| 96318 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 98123 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| | 98124 | .clobbers = .{ .eflags = true }, |
| 96319 | .each = .{ .once = &.{ | 98125 | .each = .{ .once = &.{ |
| 96320 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 98126 | .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, |
| 96321 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, | | |
| 96322 | } }, | 98127 | } }, |
| 96323 | }, .{ | 98128 | }, .{ |
| 96324 | .required_features = .{ .sse2, null, null, null }, | 98129 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 96325 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96326 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96327 | .patterns = &.{ | 98130 | .patterns = &.{ |
| 96328 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 98131 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96329 | }, | | |
| 96330 | .extra_temps = .{ | | |
| 96331 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 96332 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96333 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | | |
| 96334 | .unused, | | |
| 96335 | .unused, | | |
| 96336 | .unused, | | |
| 96337 | .unused, | | |
| 96338 | .unused, | | |
| 96339 | .unused, | | |
| 96340 | .unused, | | |
| 96341 | .unused, | | |
| 96342 | }, | 98132 | }, |
| 96343 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 98133 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96344 | .each = .{ .once = &.{ | 98134 | .each = .{ .once = &.{ |
| 96345 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 98135 | .{ ._, ._, .movzx, .dst0d, .mema(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96346 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | | |
| 96347 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | | |
| 96348 | .{ ._, .p_q, .add, .dst0x, .lea(.tmp0x), ._, ._ }, | | |
| 96349 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, | | |
| 96350 | } }, | 98136 | } }, |
| 96351 | }, .{ | 98137 | }, .{ |
| 96352 | .required_features = .{ .sse2, null, null, null }, | 98138 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 96353 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96354 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96355 | .patterns = &.{ | 98139 | .patterns = &.{ |
| 96356 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 98140 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96357 | }, | | |
| 96358 | .extra_temps = .{ | | |
| 96359 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 96360 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | | |
| 96361 | .unused, | | |
| 96362 | .unused, | | |
| 96363 | .unused, | | |
| 96364 | .unused, | | |
| 96365 | .unused, | | |
| 96366 | .unused, | | |
| 96367 | .unused, | | |
| 96368 | .unused, | | |
| 96369 | .unused, | | |
| 96370 | }, | 98141 | }, |
| 96371 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 98142 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96372 | .each = .{ .once = &.{ | 98143 | .each = .{ .once = &.{ |
| 96373 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 98144 | .{ ._, ._, .movzx, .dst0d, .memi(.src0b, .src1), ._, ._ }, |
| 96374 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | | |
| 96375 | } }, | 98145 | } }, |
| 96376 | }, .{ | 98146 | }, .{ |
| 96377 | .required_features = .{ .sse, null, null, null }, | 98147 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96378 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96379 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96380 | .patterns = &.{ | 98148 | .patterns = &.{ |
| 96381 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 98149 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96382 | }, | | |
| 96383 | .extra_temps = .{ | | |
| 96384 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 96385 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | | |
| 96386 | .unused, | | |
| 96387 | .unused, | | |
| 96388 | .unused, | | |
| 96389 | .unused, | | |
| 96390 | .unused, | | |
| 96391 | .unused, | | |
| 96392 | .unused, | | |
| 96393 | .unused, | | |
| 96394 | .unused, | | |
| 96395 | }, | 98150 | }, |
| 96396 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 98151 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96397 | .each = .{ .once = &.{ | 98152 | .each = .{ .once = &.{ |
| 96398 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 98153 | .{ ._, ._, .movzx, .dst0d, .mema(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96399 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, | | |
| 96400 | } }, | 98154 | } }, |
| 96401 | }, .{ | 98155 | }, .{ |
| 96402 | .required_features = .{ .avx2, null, null, null }, | 98156 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96403 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 96404 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 96405 | .patterns = &.{ | 98157 | .patterns = &.{ |
| 96406 | .{ .src = .{ .to_sse, .none, .none } }, | 98158 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96407 | }, | | |
| 96408 | .extra_temps = .{ | | |
| 96409 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 96410 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96411 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | | |
| 96412 | .unused, | | |
| 96413 | .unused, | | |
| 96414 | .unused, | | |
| 96415 | .unused, | | |
| 96416 | .unused, | | |
| 96417 | .unused, | | |
| 96418 | .unused, | | |
| 96419 | .unused, | | |
| 96420 | }, | 98159 | }, |
| 96421 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 98160 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96422 | .each = .{ .once = &.{ | 98161 | .each = .{ .once = &.{ |
| 96423 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 98162 | .{ ._, ._, .movzx, .dst0d, .memsi(.src0w, .@"2", .src1), ._, ._ }, |
| 96424 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, | | |
| 96425 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | | |
| 96426 | .{ ._, .vp_q, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, | | |
| 96427 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, | | |
| 96428 | } }, | 98163 | } }, |
| 96429 | }, .{ | 98164 | }, .{ |
| 96430 | .required_features = .{ .avx2, null, null, null }, | 98165 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96431 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 96432 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 96433 | .patterns = &.{ | 98166 | .patterns = &.{ |
| 96434 | .{ .src = .{ .to_sse, .none, .none } }, | 98167 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96435 | }, | | |
| 96436 | .extra_temps = .{ | | |
| 96437 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 96438 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, | | |
| 96439 | .unused, | | |
| 96440 | .unused, | | |
| 96441 | .unused, | | |
| 96442 | .unused, | | |
| 96443 | .unused, | | |
| 96444 | .unused, | | |
| 96445 | .unused, | | |
| 96446 | .unused, | | |
| 96447 | .unused, | | |
| 96448 | }, | 98168 | }, |
| 96449 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 98169 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96450 | .each = .{ .once = &.{ | 98170 | .each = .{ .once = &.{ |
| 96451 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 98171 | .{ ._, ._, .mov, .dst0d, .mema(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96452 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, | | |
| 96453 | } }, | 98172 | } }, |
| 96454 | }, .{ | 98173 | }, .{ |
| 96455 | .required_features = .{ .avx2, null, null, null }, | 98174 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96456 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 96457 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 96458 | .patterns = &.{ | 98175 | .patterns = &.{ |
| 96459 | .{ .src = .{ .to_mem, .none, .none } }, | 98176 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96460 | }, | | |
| 96461 | .extra_temps = .{ | | |
| 96462 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96463 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | | |
| 96464 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | | |
| 96465 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, | | |
| 96466 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96467 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | | |
| 96468 | .unused, | | |
| 96469 | .unused, | | |
| 96470 | .unused, | | |
| 96471 | .unused, | | |
| 96472 | .unused, | | |
| 96473 | }, | 98177 | }, |
| 96474 | .dst_temps = .{ .mem, .unused }, | 98178 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96475 | .clobbers = .{ .eflags = true }, | | |
| 96476 | .each = .{ .once = &.{ | 98179 | .each = .{ .once = &.{ |
| 96477 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, | 98180 | .{ ._, ._, .mov, .dst0d, .memsi(.src0d, .@"4", .src1), ._, ._ }, |
| 96478 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, | | |
| 96479 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, | | |
| 96480 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, | | |
| 96481 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96482 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, | | |
| 96483 | .{ ._, .vp_q, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, | | |
| 96484 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, | | |
| 96485 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, | | |
| 96486 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 96487 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96488 | } }, | 98181 | } }, |
| 96489 | }, .{ | 98182 | }, .{ |
| 96490 | .required_features = .{ .avx2, null, null, null }, | 98183 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96491 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 96492 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 96493 | .patterns = &.{ | 98184 | .patterns = &.{ |
| 96494 | .{ .src = .{ .to_mem, .none, .none } }, | 98185 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96495 | }, | | |
| 96496 | .extra_temps = .{ | | |
| 96497 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96498 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, | | |
| 96499 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, | | |
| 96500 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96501 | .unused, | | |
| 96502 | .unused, | | |
| 96503 | .unused, | | |
| 96504 | .unused, | | |
| 96505 | .unused, | | |
| 96506 | .unused, | | |
| 96507 | .unused, | | |
| 96508 | }, | 98186 | }, |
| 96509 | .dst_temps = .{ .mem, .unused }, | 98187 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96510 | .clobbers = .{ .eflags = true }, | | |
| 96511 | .each = .{ .once = &.{ | 98188 | .each = .{ .once = &.{ |
| 96512 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | 98189 | .{ ._, ._, .mov, .dst0q, .mema(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96513 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, | | |
| 96514 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96515 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, | | |
| 96516 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, | | |
| 96517 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | | |
| 96518 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96519 | } }, | 98190 | } }, |
| 96520 | }, .{ | 98191 | }, .{ |
| 96521 | .required_features = .{ .avx, null, null, null }, | 98192 | .required_features = .{ .@"64bit", null, null, null }, |
| 96522 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | 98193 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96523 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96524 | .patterns = &.{ | 98194 | .patterns = &.{ |
| 96525 | .{ .src = .{ .to_mem, .none, .none } }, | 98195 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96526 | }, | | |
| 96527 | .extra_temps = .{ | | |
| 96528 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96529 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | | |
| 96530 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | | |
| 96531 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | | |
| 96532 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96533 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | | |
| 96534 | .unused, | | |
| 96535 | .unused, | | |
| 96536 | .unused, | | |
| 96537 | .unused, | | |
| 96538 | .unused, | | |
| 96539 | }, | 98196 | }, |
| 96540 | .dst_temps = .{ .mem, .unused }, | 98197 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96541 | .clobbers = .{ .eflags = true }, | | |
| 96542 | .each = .{ .once = &.{ | 98198 | .each = .{ .once = &.{ |
| 96543 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, | 98199 | .{ ._, ._, .mov, .dst0q, .memsi(.src0q, .@"8", .src1), ._, ._ }, |
| 96544 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 96545 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, | | |
| 96546 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | | |
| 96547 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96548 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, | | |
| 96549 | .{ ._, .vp_q, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, | | |
| 96550 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, | | |
| 96551 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 96552 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 96553 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96554 | } }, | 98200 | } }, |
| 96555 | }, .{ | 98201 | } }) catch |err| switch (err) { |
| 96556 | .required_features = .{ .avx, null, null, null }, | 98202 | error.SelectFailed => { |
| 96557 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | 98203 | const elem_size = res_ty.abiSize(zcu); |
| 96558 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 98204 | const base = try cg.tempAllocReg(.usize, abi.RegisterClass.gp); |
| 96559 | .patterns = &.{ | 98205 | while (try ops[0].toBase(false, cg) or |
| 96560 | .{ .src = .{ .to_mem, .none, .none } }, | 98206 | try ops[1].toRegClass(true, .general_purpose, cg)) |
| | 98207 | {} |
| | 98208 | const base_reg = base.tracking(cg).short.register.to64(); |
| | 98209 | const rhs_reg = ops[1].tracking(cg).short.register.to64(); |
| | 98210 | if (!std.math.isPowerOfTwo(elem_size)) { |
| | 98211 | try cg.spillEflagsIfOccupied(); |
| | 98212 | try cg.asmRegisterRegisterImmediate( |
| | 98213 | .{ .i_, .mul }, |
| | 98214 | rhs_reg, |
| | 98215 | rhs_reg, |
| | 98216 | .u(elem_size), |
| | 98217 | ); |
| | 98218 | try cg.asmRegisterMemory( |
| | 98219 | .{ ._, .lea }, |
| | 98220 | base_reg, |
| | 98221 | try ops[0].tracking(cg).short.mem(cg, .{ .index = rhs_reg }), |
| | 98222 | ); |
| | 98223 | } else if (elem_size > 8) { |
| | 98224 | try cg.spillEflagsIfOccupied(); |
| | 98225 | try cg.asmRegisterImmediate( |
| | 98226 | .{ ._l, .sh }, |
| | 98227 | rhs_reg, |
| | 98228 | .u(std.math.log2_int(u64, elem_size)), |
| | 98229 | ); |
| | 98230 | try cg.asmRegisterMemory( |
| | 98231 | .{ ._, .lea }, |
| | 98232 | base_reg, |
| | 98233 | try ops[0].tracking(cg).short.mem(cg, .{ .index = rhs_reg }), |
| | 98234 | ); |
| | 98235 | } else try cg.asmRegisterMemory( |
| | 98236 | .{ ._, .lea }, |
| | 98237 | base_reg, |
| | 98238 | try ops[0].tracking(cg).short.mem(cg, .{ |
| | 98239 | .index = rhs_reg, |
| | 98240 | .scale = .fromFactor(@intCast(elem_size)), |
| | 98241 | }), |
| | 98242 | ); |
| | 98243 | // Hack around Sema insanity: lhs could be an arbitrarily large comptime-known array |
| | 98244 | // which could easily get spilled by the upcoming `load`, which would infinite recurse |
| | 98245 | // since spilling an array requires the same operation that triggered the spill. |
| | 98246 | try ops[0].die(cg); |
| | 98247 | ops[0] = base; |
| | 98248 | res[0] = try ops[0].load(res_ty, .{}, cg); |
| 96561 | }, | 98249 | }, |
| 96562 | .extra_temps = .{ | 98250 | else => |e| return e, |
| 96563 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98251 | }; |
| 96564 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | 98252 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 96565 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | 98253 | }, |
| 96566 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | 98254 | .slice_elem_val, .ptr_elem_val => |air_tag| if (use_old) switch (air_tag) { |
| 96567 | .unused, | 98255 | else => unreachable, |
| 96568 | .unused, | 98256 | .slice_elem_val => try cg.airSliceElemVal(inst), |
| 96569 | .unused, | 98257 | .ptr_elem_val => try cg.airPtrElemVal(inst), |
| 96570 | .unused, | 98258 | } else { |
| 96571 | .unused, | 98259 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 96572 | .unused, | 98260 | const res_ty = cg.typeOf(bin_op.lhs).elemType2(zcu); |
| 96573 | .unused, | 98261 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 98262 | try ops[0].toSlicePtr(cg); |
| | 98263 | var res: [1]Temp = undefined; |
| | 98264 | if (!hack_around_sema_opv_bugs or res_ty.hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{res_ty}, &ops, comptime &.{ .{ |
| | 98265 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| | 98266 | .patterns = &.{ |
| | 98267 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 96574 | }, | 98268 | }, |
| 96575 | .dst_temps = .{ .mem, .unused }, | 98269 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96576 | .clobbers = .{ .eflags = true }, | | |
| 96577 | .each = .{ .once = &.{ | 98270 | .each = .{ .once = &.{ |
| 96578 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | 98271 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96579 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 96580 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96581 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, | | |
| 96582 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | | |
| 96583 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 96584 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96585 | } }, | 98272 | } }, |
| 96586 | }, .{ | 98273 | }, .{ |
| 96587 | .required_features = .{ .sse2, null, null, null }, | 98274 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 96588 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96589 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96590 | .patterns = &.{ | 98275 | .patterns = &.{ |
| 96591 | .{ .src = .{ .to_mem, .none, .none } }, | 98276 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96592 | }, | | |
| 96593 | .extra_temps = .{ | | |
| 96594 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96595 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | | |
| 96596 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | | |
| 96597 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | | |
| 96598 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96599 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, | | |
| 96600 | .unused, | | |
| 96601 | .unused, | | |
| 96602 | .unused, | | |
| 96603 | .unused, | | |
| 96604 | .unused, | | |
| 96605 | }, | 98277 | }, |
| 96606 | .dst_temps = .{ .mem, .unused }, | 98278 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96607 | .clobbers = .{ .eflags = true }, | | |
| 96608 | .each = .{ .once = &.{ | 98279 | .each = .{ .once = &.{ |
| 96609 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, | 98280 | .{ ._, ._, .movzx, .dst0d, .leai(.src0b, .src1), ._, ._ }, |
| 96610 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 96611 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, | | |
| 96612 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | | |
| 96613 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96614 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, | | |
| 96615 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96616 | .{ ._, .p_q, .add, .tmp3x, .tmp2x, ._, ._ }, | | |
| 96617 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, | | |
| 96618 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 96619 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 96620 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96621 | } }, | 98281 | } }, |
| 96622 | }, .{ | 98282 | }, .{ |
| 96623 | .required_features = .{ .sse2, null, null, null }, | 98283 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96624 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96625 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96626 | .patterns = &.{ | 98284 | .patterns = &.{ |
| 96627 | .{ .src = .{ .to_mem, .none, .none } }, | 98285 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 96628 | }, | | |
| 96629 | .extra_temps = .{ | | |
| 96630 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96631 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | | |
| 96632 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | | |
| 96633 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96634 | .unused, | | |
| 96635 | .unused, | | |
| 96636 | .unused, | | |
| 96637 | .unused, | | |
| 96638 | .unused, | | |
| 96639 | .unused, | | |
| 96640 | .unused, | | |
| 96641 | }, | 98286 | }, |
| 96642 | .dst_temps = .{ .mem, .unused }, | 98287 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96643 | .clobbers = .{ .eflags = true }, | | |
| 96644 | .each = .{ .once = &.{ | 98288 | .each = .{ .once = &.{ |
| 96645 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | 98289 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96646 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 96647 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96648 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | | |
| 96649 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96650 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | | |
| 96651 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 96652 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96653 | } }, | 98290 | } }, |
| 96654 | }, .{ | 98291 | }, .{ |
| 96655 | .required_features = .{ .sse, null, null, null }, | 98292 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96656 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 96657 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 96658 | .patterns = &.{ | 98293 | .patterns = &.{ |
| 96659 | .{ .src = .{ .to_mem, .none, .none } }, | 98294 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96660 | }, | | |
| 96661 | .extra_temps = .{ | | |
| 96662 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96663 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | | |
| 96664 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, | | |
| 96665 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, | | |
| 96666 | .unused, | | |
| 96667 | .unused, | | |
| 96668 | .unused, | | |
| 96669 | .unused, | | |
| 96670 | .unused, | | |
| 96671 | .unused, | | |
| 96672 | .unused, | | |
| 96673 | }, | 98295 | }, |
| 96674 | .dst_temps = .{ .mem, .unused }, | 98296 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96675 | .clobbers = .{ .eflags = true }, | | |
| 96676 | .each = .{ .once = &.{ | 98297 | .each = .{ .once = &.{ |
| 96677 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, | 98298 | .{ ._, ._, .movzx, .dst0d, .leasi(.src0w, .@"2", .src1), ._, ._ }, |
| 96678 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, | | |
| 96679 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96680 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, | | |
| 96681 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96682 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, | | |
| 96683 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 96684 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96685 | } }, | 98299 | } }, |
| 96686 | }, .{ | 98300 | }, .{ |
| 96687 | .required_features = .{ .@"64bit", null, null, null }, | 98301 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96688 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | | |
| 96689 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, | | |
| 96690 | .patterns = &.{ | 98302 | .patterns = &.{ |
| 96691 | .{ .src = .{ .to_mem, .none, .none } }, | 98303 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 96692 | }, | | |
| 96693 | .extra_temps = .{ | | |
| 96694 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96695 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 96696 | .unused, | | |
| 96697 | .unused, | | |
| 96698 | .unused, | | |
| 96699 | .unused, | | |
| 96700 | .unused, | | |
| 96701 | .unused, | | |
| 96702 | .unused, | | |
| 96703 | .unused, | | |
| 96704 | .unused, | | |
| 96705 | }, | 98304 | }, |
| 96706 | .dst_temps = .{ .mem, .unused }, | 98305 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96707 | .clobbers = .{ .eflags = true }, | | |
| 96708 | .each = .{ .once = &.{ | 98306 | .each = .{ .once = &.{ |
| 96709 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98307 | .{ ._, ._, .mov, .dst0d, .leaa(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96710 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96711 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 96712 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96713 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96714 | } }, | 98308 | } }, |
| 96715 | }, .{ | 98309 | }, .{ |
| 96716 | .required_features = .{ .@"64bit", null, null, null }, | 98310 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96717 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | | |
| 96718 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 96719 | .patterns = &.{ | 98311 | .patterns = &.{ |
| 96720 | .{ .src = .{ .to_mem, .none, .none } }, | 98312 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96721 | }, | | |
| 96722 | .extra_temps = .{ | | |
| 96723 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96724 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 96725 | .unused, | | |
| 96726 | .unused, | | |
| 96727 | .unused, | | |
| 96728 | .unused, | | |
| 96729 | .unused, | | |
| 96730 | .unused, | | |
| 96731 | .unused, | | |
| 96732 | .unused, | | |
| 96733 | .unused, | | |
| 96734 | }, | 98313 | }, |
| 96735 | .dst_temps = .{ .mem, .unused }, | 98314 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96736 | .clobbers = .{ .eflags = true }, | | |
| 96737 | .each = .{ .once = &.{ | 98315 | .each = .{ .once = &.{ |
| 96738 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98316 | .{ ._, ._, .mov, .dst0d, .leasi(.src0d, .@"4", .src1), ._, ._ }, |
| 96739 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96740 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 96741 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 96742 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 96743 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96744 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96745 | } }, | 98317 | } }, |
| 96746 | }, .{ | 98318 | }, .{ |
| 96747 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 98319 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96748 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | | |
| 96749 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 96750 | .patterns = &.{ | 98320 | .patterns = &.{ |
| 96751 | .{ .src = .{ .to_mem, .none, .none } }, | 98321 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 96752 | }, | | |
| 96753 | .extra_temps = .{ | | |
| 96754 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96755 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 96756 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 96757 | .unused, | | |
| 96758 | .unused, | | |
| 96759 | .unused, | | |
| 96760 | .unused, | | |
| 96761 | .unused, | | |
| 96762 | .unused, | | |
| 96763 | .unused, | | |
| 96764 | .unused, | | |
| 96765 | }, | 98322 | }, |
| 96766 | .dst_temps = .{ .mem, .unused }, | 98323 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96767 | .clobbers = .{ .eflags = true }, | | |
| 96768 | .each = .{ .once = &.{ | 98324 | .each = .{ .once = &.{ |
| 96769 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98325 | .{ ._, ._, .mov, .dst0q, .leaa(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96770 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 96771 | .{ .@"0:", ._, .bzhi, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), .tmp1q, ._ }, | | |
| 96772 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | | |
| 96773 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96774 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96775 | } }, | 98326 | } }, |
| 96776 | }, .{ | 98327 | }, .{ |
| 96777 | .required_features = .{ .@"64bit", null, null, null }, | 98328 | .required_features = .{ .@"64bit", null, null, null }, |
| 96778 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 98329 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96779 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 96780 | .patterns = &.{ | 98330 | .patterns = &.{ |
| 96781 | .{ .src = .{ .to_mem, .none, .none } }, | 98331 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96782 | }, | | |
| 96783 | .extra_temps = .{ | | |
| 96784 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96785 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 96786 | .unused, | | |
| 96787 | .unused, | | |
| 96788 | .unused, | | |
| 96789 | .unused, | | |
| 96790 | .unused, | | |
| 96791 | .unused, | | |
| 96792 | .unused, | | |
| 96793 | .unused, | | |
| 96794 | .unused, | | |
| 96795 | }, | 98332 | }, |
| 96796 | .dst_temps = .{ .mem, .unused }, | 98333 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96797 | .clobbers = .{ .eflags = true }, | | |
| 96798 | .each = .{ .once = &.{ | 98334 | .each = .{ .once = &.{ |
| 96799 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98335 | .{ ._, ._, .mov, .dst0q, .leasi(.src0q, .@"8", .src1), ._, ._ }, |
| 96800 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, | | |
| 96801 | .{ ._, ._, .@"and", .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96802 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 96803 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96804 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96805 | } }, | 98336 | } }, |
| 96806 | }, .{ | 98337 | } }) catch |err| switch (err) { |
| 96807 | .required_features = .{ .@"64bit", null, null, null }, | 98338 | error.SelectFailed => { |
| 96808 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 98339 | const elem_size = res_ty.abiSize(zcu); |
| 96809 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, | 98340 | while (true) for (&ops) |*op| { |
| | 98341 | if (try op.toRegClass(true, .general_purpose, cg)) break; |
| | 98342 | } else break; |
| | 98343 | const lhs_reg = ops[0].tracking(cg).short.register.to64(); |
| | 98344 | const rhs_reg = ops[1].tracking(cg).short.register.to64(); |
| | 98345 | if (!std.math.isPowerOfTwo(elem_size)) { |
| | 98346 | try cg.spillEflagsIfOccupied(); |
| | 98347 | try cg.asmRegisterRegisterImmediate( |
| | 98348 | .{ .i_, .mul }, |
| | 98349 | rhs_reg, |
| | 98350 | rhs_reg, |
| | 98351 | .u(elem_size), |
| | 98352 | ); |
| | 98353 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ |
| | 98354 | .base = .{ .reg = lhs_reg }, |
| | 98355 | .mod = .{ .rm = .{ .index = rhs_reg } }, |
| | 98356 | }); |
| | 98357 | } else if (elem_size > 8) { |
| | 98358 | try cg.spillEflagsIfOccupied(); |
| | 98359 | try cg.asmRegisterImmediate( |
| | 98360 | .{ ._l, .sh }, |
| | 98361 | rhs_reg, |
| | 98362 | .u(std.math.log2_int(u64, elem_size)), |
| | 98363 | ); |
| | 98364 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ |
| | 98365 | .base = .{ .reg = lhs_reg }, |
| | 98366 | .mod = .{ .rm = .{ .index = rhs_reg } }, |
| | 98367 | }); |
| | 98368 | } else try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ |
| | 98369 | .base = .{ .reg = lhs_reg }, |
| | 98370 | .mod = .{ .rm = .{ |
| | 98371 | .index = rhs_reg, |
| | 98372 | .scale = .fromFactor(@intCast(elem_size)), |
| | 98373 | } }, |
| | 98374 | }); |
| | 98375 | res[0] = try ops[0].load(res_ty, .{}, cg); |
| | 98376 | }, |
| | 98377 | else => |e| return e, |
| | 98378 | } else res[0] = try cg.tempInit(res_ty, .none); |
| | 98379 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 98380 | }, |
| | 98381 | .slice_elem_ptr, .ptr_elem_ptr => |air_tag| if (use_old) switch (air_tag) { |
| | 98382 | else => unreachable, |
| | 98383 | .slice_elem_ptr => try cg.airSliceElemPtr(inst), |
| | 98384 | .ptr_elem_ptr => try cg.airPtrElemPtr(inst), |
| | 98385 | } else { |
| | 98386 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| | 98387 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| | 98388 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 98389 | try ops[0].toSlicePtr(cg); |
| | 98390 | const dst_ty = ty_pl.ty.toType(); |
| | 98391 | if (dst_ty.ptrInfo(zcu).flags.vector_index == .none) zero_offset: { |
| | 98392 | const elem_size = dst_ty.childType(zcu).abiSize(zcu); |
| | 98393 | if (hack_around_sema_opv_bugs and elem_size == 0) break :zero_offset; |
| | 98394 | while (true) for (&ops) |*op| { |
| | 98395 | if (try op.toRegClass(true, .general_purpose, cg)) break; |
| | 98396 | } else break; |
| | 98397 | const lhs_reg = ops[0].tracking(cg).short.register.to64(); |
| | 98398 | const rhs_reg = ops[1].tracking(cg).short.register.to64(); |
| | 98399 | if (!std.math.isPowerOfTwo(elem_size)) { |
| | 98400 | try cg.spillEflagsIfOccupied(); |
| | 98401 | try cg.asmRegisterRegisterImmediate( |
| | 98402 | .{ .i_, .mul }, |
| | 98403 | rhs_reg, |
| | 98404 | rhs_reg, |
| | 98405 | .u(elem_size), |
| | 98406 | ); |
| | 98407 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ |
| | 98408 | .base = .{ .reg = lhs_reg }, |
| | 98409 | .mod = .{ .rm = .{ .index = rhs_reg } }, |
| | 98410 | }); |
| | 98411 | } else if (elem_size > 8) { |
| | 98412 | try cg.spillEflagsIfOccupied(); |
| | 98413 | try cg.asmRegisterImmediate( |
| | 98414 | .{ ._l, .sh }, |
| | 98415 | rhs_reg, |
| | 98416 | .u(std.math.log2_int(u64, elem_size)), |
| | 98417 | ); |
| | 98418 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ |
| | 98419 | .base = .{ .reg = lhs_reg }, |
| | 98420 | .mod = .{ .rm = .{ .index = rhs_reg } }, |
| | 98421 | }); |
| | 98422 | } else try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ |
| | 98423 | .base = .{ .reg = lhs_reg }, |
| | 98424 | .mod = .{ .rm = .{ |
| | 98425 | .index = rhs_reg, |
| | 98426 | .scale = .fromFactor(@intCast(elem_size)), |
| | 98427 | } }, |
| | 98428 | }); |
| | 98429 | } |
| | 98430 | try ops[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 98431 | }, |
| | 98432 | .array_to_slice => if (use_old) try cg.airArrayToSlice(inst) else { |
| | 98433 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 98434 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 98435 | var len = try cg.tempInit(.usize, .{ |
| | 98436 | .immediate = cg.typeOf(ty_op.operand).childType(zcu).arrayLen(zcu), |
| | 98437 | }); |
| | 98438 | try ops[0].toPair(&len, cg); |
| | 98439 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 98440 | }, |
| | 98441 | .int_from_float, .int_from_float_optimized => |air_tag| if (use_old) try cg.airIntFromFloat(inst) else { |
| | 98442 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 98443 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 98444 | var res: [1]Temp = undefined; |
| | 98445 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| | 98446 | .required_features = .{ .f16c, null, null, null }, |
| | 98447 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| | 98448 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96810 | .patterns = &.{ | 98449 | .patterns = &.{ |
| 96811 | .{ .src = .{ .to_mem, .none, .none } }, | 98450 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96812 | }, | 98451 | }, |
| 96813 | .extra_temps = .{ | 98452 | .extra_temps = .{ |
| 96814 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98453 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 96815 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98454 | .unused, |
| 96816 | .unused, | 98455 | .unused, |
| 96817 | .unused, | 98456 | .unused, |
| 96818 | .unused, | 98457 | .unused, |
| ... | @@ -96823,57 +98462,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96823,57 +98462,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96823 | .unused, | 98462 | .unused, |
| 96824 | .unused, | 98463 | .unused, |
| 96825 | }, | 98464 | }, |
| 96826 | .dst_temps = .{ .mem, .unused }, | 98465 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96827 | .clobbers = .{ .eflags = true }, | | |
| 96828 | .each = .{ .once = &.{ | 98466 | .each = .{ .once = &.{ |
| 96829 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98467 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 96830 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 98468 | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, |
| 96831 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 96832 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96833 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96834 | } }, | 98469 | } }, |
| 96835 | }, .{ | 98470 | }, .{ |
| 96836 | .required_features = .{ .@"64bit", null, null, null }, | 98471 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 96837 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 98472 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 96838 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 98473 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 96839 | .patterns = &.{ | 98474 | .patterns = &.{ |
| 96840 | .{ .src = .{ .to_mem, .none, .none } }, | 98475 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96841 | }, | 98476 | }, |
| 96842 | .extra_temps = .{ | 98477 | .extra_temps = .{ |
| 96843 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98478 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 96844 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 96845 | .unused, | | |
| 96846 | .unused, | | |
| 96847 | .unused, | | |
| 96848 | .unused, | | |
| 96849 | .unused, | | |
| 96850 | .unused, | | |
| 96851 | .unused, | | |
| 96852 | .unused, | 98479 | .unused, |
| 96853 | .unused, | 98480 | .unused, |
| 96854 | }, | | |
| 96855 | .dst_temps = .{ .mem, .unused }, | | |
| 96856 | .clobbers = .{ .eflags = true }, | | |
| 96857 | .each = .{ .once = &.{ | | |
| 96858 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 96859 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96860 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 96861 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 96862 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 96863 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96864 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96865 | } }, | | |
| 96866 | }, .{ | | |
| 96867 | .required_features = .{ .@"64bit", .bmi2, null, null }, | | |
| 96868 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | | |
| 96869 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 96870 | .patterns = &.{ | | |
| 96871 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 96872 | }, | | |
| 96873 | .extra_temps = .{ | | |
| 96874 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 96875 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 96876 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 96877 | .unused, | 98481 | .unused, |
| 96878 | .unused, | 98482 | .unused, |
| 96879 | .unused, | 98483 | .unused, |
| ... | @@ -96883,26 +98487,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96883,26 +98487,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96883 | .unused, | 98487 | .unused, |
| 96884 | .unused, | 98488 | .unused, |
| 96885 | }, | 98489 | }, |
| 96886 | .dst_temps = .{ .mem, .unused }, | 98490 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96887 | .clobbers = .{ .eflags = true }, | | |
| 96888 | .each = .{ .once = &.{ | 98491 | .each = .{ .once = &.{ |
| 96889 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98492 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 96890 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 98493 | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, |
| 96891 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._ }, | | |
| 96892 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | | |
| 96893 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96894 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96895 | } }, | 98494 | } }, |
| 96896 | }, .{ | 98495 | }, .{ |
| 96897 | .required_features = .{ .@"64bit", null, null, null }, | 98496 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 96898 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 98497 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 96899 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 98498 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 96900 | .patterns = &.{ | 98499 | .patterns = &.{ |
| 96901 | .{ .src = .{ .to_mem, .none, .none } }, | 98500 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96902 | }, | 98501 | }, |
| 96903 | .extra_temps = .{ | 98502 | .extra_temps = .{ |
| 96904 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98503 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 96905 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98504 | .unused, |
| 96906 | .unused, | 98505 | .unused, |
| 96907 | .unused, | 98506 | .unused, |
| 96908 | .unused, | 98507 | .unused, |
| ... | @@ -96913,26 +98512,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96913,26 +98512,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96913 | .unused, | 98512 | .unused, |
| 96914 | .unused, | 98513 | .unused, |
| 96915 | }, | 98514 | }, |
| 96916 | .dst_temps = .{ .mem, .unused }, | 98515 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96917 | .clobbers = .{ .eflags = true }, | | |
| 96918 | .each = .{ .once = &.{ | 98516 | .each = .{ .once = &.{ |
| 96919 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98517 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 96920 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, | 98518 | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, |
| 96921 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 96922 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 96923 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96924 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96925 | } }, | 98519 | } }, |
| 96926 | }, .{ | 98520 | }, .{ |
| 96927 | .required_features = .{ .@"64bit", null, null, null }, | 98521 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 96928 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 98522 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 96929 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, | 98523 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 96930 | .patterns = &.{ | 98524 | .patterns = &.{ |
| 96931 | .{ .src = .{ .to_mem, .none, .none } }, | 98525 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96932 | }, | 98526 | }, |
| 96933 | .extra_temps = .{ | 98527 | .extra_temps = .{ |
| 96934 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98528 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 96935 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98529 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 96936 | .unused, | 98530 | .unused, |
| 96937 | .unused, | 98531 | .unused, |
| 96938 | .unused, | 98532 | .unused, |
| ... | @@ -96946,22 +98540,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96946,22 +98540,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96946 | .dst_temps = .{ .mem, .unused }, | 98540 | .dst_temps = .{ .mem, .unused }, |
| 96947 | .clobbers = .{ .eflags = true }, | 98541 | .clobbers = .{ .eflags = true }, |
| 96948 | .each = .{ .once = &.{ | 98542 | .each = .{ .once = &.{ |
| 96949 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98543 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 96950 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 98544 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 96951 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 98545 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 96952 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 98546 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 96953 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 98547 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q, ._, ._ }, |
| 96954 | } }, | 98548 | } }, |
| 96955 | }, .{ | 98549 | }, .{ |
| 96956 | .required_features = .{ .@"64bit", null, null, null }, | 98550 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 96957 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 98551 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 96958 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 98552 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 96959 | .patterns = &.{ | 98553 | .patterns = &.{ |
| 96960 | .{ .src = .{ .to_mem, .none, .none } }, | 98554 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96961 | }, | 98555 | }, |
| 96962 | .extra_temps = .{ | 98556 | .extra_temps = .{ |
| 96963 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98557 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 96964 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 98558 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 96965 | .unused, | 98559 | .unused, |
| 96966 | .unused, | 98560 | .unused, |
| 96967 | .unused, | 98561 | .unused, |
| ... | @@ -96973,28 +98567,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -96973,28 +98567,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96973 | .unused, | 98567 | .unused, |
| 96974 | }, | 98568 | }, |
| 96975 | .dst_temps = .{ .mem, .unused }, | 98569 | .dst_temps = .{ .mem, .unused }, |
| 96976 | .clobbers = .{ .eflags = true }, | | |
| 96977 | .each = .{ .once = &.{ | 98570 | .each = .{ .once = &.{ |
| 96978 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98571 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 96979 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 98572 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 96980 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | 98573 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 96981 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | 98574 | .{ ._, ._, .mov, .memd(.dst0q, 8), .si(0), ._, ._ }, |
| 96982 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 96983 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 96984 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 96985 | } }, | 98575 | } }, |
| 96986 | }, .{ | 98576 | }, .{ |
| 96987 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 98577 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 96988 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 98578 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 96989 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 98579 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 96990 | .patterns = &.{ | 98580 | .patterns = &.{ |
| 96991 | .{ .src = .{ .to_mem, .none, .none } }, | 98581 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96992 | }, | 98582 | }, |
| 96993 | .extra_temps = .{ | 98583 | .extra_temps = .{ |
| 96994 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98584 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 96995 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 98585 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 96996 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98586 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 96997 | .unused, | 98587 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96998 | .unused, | 98588 | .unused, |
| 96999 | .unused, | 98589 | .unused, |
| 97000 | .unused, | 98590 | .unused, |
| ... | @@ -97006,25 +98596,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97006,25 +98596,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97006 | .dst_temps = .{ .mem, .unused }, | 98596 | .dst_temps = .{ .mem, .unused }, |
| 97007 | .clobbers = .{ .eflags = true }, | 98597 | .clobbers = .{ .eflags = true }, |
| 97008 | .each = .{ .once = &.{ | 98598 | .each = .{ .once = &.{ |
| 97009 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98599 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 97010 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 98600 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 97011 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._ }, | 98601 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 97012 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | 98602 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 97013 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 98603 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 97014 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 98604 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 98605 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 97015 | } }, | 98606 | } }, |
| 97016 | }, .{ | 98607 | }, .{ |
| 97017 | .required_features = .{ .@"64bit", null, null, null }, | 98608 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 97018 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, | 98609 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97019 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 98610 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 97020 | .patterns = &.{ | 98611 | .patterns = &.{ |
| 97021 | .{ .src = .{ .to_mem, .none, .none } }, | 98612 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97022 | }, | 98613 | }, |
| 97023 | .extra_temps = .{ | 98614 | .extra_temps = .{ |
| 97024 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98615 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 97025 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98616 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 97026 | .unused, | 98617 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97027 | .unused, | 98618 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97028 | .unused, | 98619 | .unused, |
| 97029 | .unused, | 98620 | .unused, |
| 97030 | .unused, | 98621 | .unused, |
| ... | @@ -97036,24 +98627,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97036,24 +98627,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97036 | .dst_temps = .{ .mem, .unused }, | 98627 | .dst_temps = .{ .mem, .unused }, |
| 97037 | .clobbers = .{ .eflags = true }, | 98628 | .clobbers = .{ .eflags = true }, |
| 97038 | .each = .{ .once = &.{ | 98629 | .each = .{ .once = &.{ |
| 97039 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98630 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 97040 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, | 98631 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 97041 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 98632 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 97042 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 98633 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 97043 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 98634 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 97044 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 98635 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 98636 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 97045 | } }, | 98637 | } }, |
| 97046 | }, .{ | 98638 | }, .{ |
| 97047 | .required_features = .{ .@"64bit", null, null, null }, | 98639 | .required_features = .{ .sse, null, null, null }, |
| 97048 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 98640 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97049 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, | 98641 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 97050 | .patterns = &.{ | 98642 | .patterns = &.{ |
| 97051 | .{ .src = .{ .to_mem, .none, .none } }, | 98643 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97052 | }, | 98644 | }, |
| | 98645 | .call_frame = .{ .alignment = .@"16" }, |
| 97053 | .extra_temps = .{ | 98646 | .extra_temps = .{ |
| 97054 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98647 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97055 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98648 | .unused, |
| 97056 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98649 | .unused, |
| 97057 | .unused, | 98650 | .unused, |
| 97058 | .unused, | 98651 | .unused, |
| 97059 | .unused, | 98652 | .unused, |
| ... | @@ -97063,28 +98656,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97063,28 +98656,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97063 | .unused, | 98656 | .unused, |
| 97064 | .unused, | 98657 | .unused, |
| 97065 | }, | 98658 | }, |
| 97066 | .dst_temps = .{ .mem, .unused }, | 98659 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 97067 | .clobbers = .{ .eflags = true }, | 98660 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97068 | .each = .{ .once = &.{ | 98661 | .each = .{ .once = &.{ |
| 97069 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98662 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97070 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 97071 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, | | |
| 97072 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | | |
| 97073 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 97074 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 97075 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 97076 | } }, | 98663 | } }, |
| 97077 | }, .{ | 98664 | }, .{ |
| 97078 | .required_features = .{ .@"64bit", null, null, null }, | 98665 | .required_features = .{ .sse, null, null, null }, |
| 97079 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98666 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97080 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 98667 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 97081 | .patterns = &.{ | 98668 | .patterns = &.{ |
| 97082 | .{ .src = .{ .to_mem, .none, .none } }, | 98669 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97083 | }, | 98670 | }, |
| | 98671 | .call_frame = .{ .alignment = .@"16" }, |
| 97084 | .extra_temps = .{ | 98672 | .extra_temps = .{ |
| 97085 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98673 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| 97086 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98674 | .unused, |
| 97087 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 98675 | .unused, |
| 97088 | .unused, | 98676 | .unused, |
| 97089 | .unused, | 98677 | .unused, |
| 97090 | .unused, | 98678 | .unused, |
| ... | @@ -97094,31 +98682,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97094,31 +98682,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97094 | .unused, | 98682 | .unused, |
| 97095 | .unused, | 98683 | .unused, |
| 97096 | }, | 98684 | }, |
| 97097 | .dst_temps = .{ .mem, .unused }, | 98685 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 97098 | .clobbers = .{ .eflags = true }, | 98686 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97099 | .each = .{ .once = &.{ | 98687 | .each = .{ .once = &.{ |
| 97100 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98688 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97101 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 97102 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, | | |
| 97103 | .{ ._, ._l, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 97104 | .{ ._, ._r, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 97105 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | | |
| 97106 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 97107 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 97108 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 97109 | } }, | 98689 | } }, |
| 97110 | }, .{ | 98690 | }, .{ |
| 97111 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 98691 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 97112 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 98692 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97113 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 98693 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 97114 | .patterns = &.{ | 98694 | .patterns = &.{ |
| 97115 | .{ .src = .{ .to_mem, .none, .none } }, | 98695 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97116 | }, | 98696 | }, |
| | 98697 | .call_frame = .{ .alignment = .@"16" }, |
| 97117 | .extra_temps = .{ | 98698 | .extra_temps = .{ |
| 97118 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98699 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 97119 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98700 | .unused, |
| 97120 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 98701 | .unused, |
| 97121 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98702 | .unused, |
| 97122 | .unused, | 98703 | .unused, |
| 97123 | .unused, | 98704 | .unused, |
| 97124 | .unused, | 98705 | .unused, |
| ... | @@ -97127,29 +98708,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97127,29 +98708,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97127 | .unused, | 98708 | .unused, |
| 97128 | .unused, | 98709 | .unused, |
| 97129 | }, | 98710 | }, |
| 97130 | .dst_temps = .{ .mem, .unused }, | 98711 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 97131 | .clobbers = .{ .eflags = true }, | 98712 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97132 | .each = .{ .once = &.{ | 98713 | .each = .{ .once = &.{ |
| 97133 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98714 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97134 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 97135 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 97136 | .{ .@"0:", ._, .bzhi, .tmp3q, .memi(.src0q, .tmp1), .tmp2q, ._ }, | | |
| 97137 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 97138 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 97139 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 97140 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 97141 | } }, | 98715 | } }, |
| 97142 | }, .{ | 98716 | }, .{ |
| 97143 | .required_features = .{ .@"64bit", null, null, null }, | 98717 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 97144 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 98718 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97145 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 98719 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 97146 | .patterns = &.{ | 98720 | .patterns = &.{ |
| 97147 | .{ .src = .{ .to_mem, .none, .none } }, | 98721 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97148 | }, | 98722 | }, |
| | 98723 | .call_frame = .{ .alignment = .@"16" }, |
| 97149 | .extra_temps = .{ | 98724 | .extra_temps = .{ |
| 97150 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 98725 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| 97151 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98726 | .unused, |
| 97152 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 98727 | .unused, |
| 97153 | .unused, | 98728 | .unused, |
| 97154 | .unused, | 98729 | .unused, |
| 97155 | .unused, | 98730 | .unused, |
| ... | @@ -97159,30 +98734,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97159,30 +98734,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97159 | .unused, | 98734 | .unused, |
| 97160 | .unused, | 98735 | .unused, |
| 97161 | }, | 98736 | }, |
| 97162 | .dst_temps = .{ .mem, .unused }, | 98737 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 97163 | .clobbers = .{ .eflags = true }, | 98738 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97164 | .each = .{ .once = &.{ | 98739 | .each = .{ .once = &.{ |
| 97165 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 98740 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97166 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 97167 | .{ .@"0:", ._, .mov, .tmp2q, .ua(.dst0, .add_umax), ._, ._ }, | | |
| 97168 | .{ ._, ._, .@"and", .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, | | |
| 97169 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | | |
| 97170 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, | | |
| 97171 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 97172 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 97173 | } }, | 98741 | } }, |
| 97174 | }, .{ | 98742 | }, .{ |
| 97175 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 98743 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 97176 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 98744 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97177 | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 98745 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 97178 | .patterns = &.{ | 98746 | .patterns = &.{ |
| 97179 | .{ .src = .{ .to_mem, .none, .none } }, | 98747 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97180 | }, | 98748 | }, |
| | 98749 | .call_frame = .{ .alignment = .@"16" }, |
| 97181 | .extra_temps = .{ | 98750 | .extra_temps = .{ |
| 97182 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98751 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, |
| 97183 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98752 | .unused, |
| 97184 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98753 | .unused, |
| 97185 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98754 | .unused, |
| 97186 | .unused, | 98755 | .unused, |
| 97187 | .unused, | 98756 | .unused, |
| 97188 | .unused, | 98757 | .unused, |
| ... | @@ -97191,30 +98760,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97191,30 +98760,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97191 | .unused, | 98760 | .unused, |
| 97192 | .unused, | 98761 | .unused, |
| 97193 | }, | 98762 | }, |
| 97194 | .dst_temps = .{ .mem, .unused }, | 98763 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 97195 | .clobbers = .{ .eflags = true }, | 98764 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97196 | .each = .{ .once = &.{ | 98765 | .each = .{ .once = &.{ |
| 97197 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98766 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97198 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | | |
| 97199 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | | |
| 97200 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, | | |
| 97201 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | | |
| 97202 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97203 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97204 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97205 | } }, | 98767 | } }, |
| 97206 | }, .{ | 98768 | }, .{ |
| 97207 | .required_features = .{ .@"64bit", null, null, null }, | 98769 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 97208 | .src_constraints = .{ .any_scalar_int, .any, .any }, | 98770 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97209 | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, | 98771 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 97210 | .patterns = &.{ | 98772 | .patterns = &.{ |
| 97211 | .{ .src = .{ .to_mem, .none, .none } }, | 98773 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97212 | }, | 98774 | }, |
| | 98775 | .call_frame = .{ .alignment = .@"16" }, |
| 97213 | .extra_temps = .{ | 98776 | .extra_temps = .{ |
| 97214 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98777 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, |
| 97215 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98778 | .unused, |
| 97216 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98779 | .unused, |
| 97217 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98780 | .unused, |
| 97218 | .unused, | 98781 | .unused, |
| 97219 | .unused, | 98782 | .unused, |
| 97220 | .unused, | 98783 | .unused, |
| ... | @@ -97223,28 +98786,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97223,28 +98786,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97223 | .unused, | 98786 | .unused, |
| 97224 | .unused, | 98787 | .unused, |
| 97225 | }, | 98788 | }, |
| 97226 | .dst_temps = .{ .mem, .unused }, | 98789 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 97227 | .clobbers = .{ .eflags = true }, | 98790 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97228 | .each = .{ .once = &.{ | 98791 | .each = .{ .once = &.{ |
| 97229 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98792 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97230 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | | |
| 97231 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | | |
| 97232 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, | | |
| 97233 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | | |
| 97234 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97235 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97236 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 97237 | } }, | 98793 | } }, |
| 97238 | }, .{ | 98794 | }, .{ |
| 97239 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 98795 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 97240 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98796 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97241 | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 98797 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 97242 | .patterns = &.{ | 98798 | .patterns = &.{ |
| 97243 | .{ .src = .{ .to_mem, .none, .none } }, | 98799 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97244 | }, | 98800 | }, |
| | 98801 | .call_frame = .{ .alignment = .@"16" }, |
| 97245 | .extra_temps = .{ | 98802 | .extra_temps = .{ |
| 97246 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98803 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 97247 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98804 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 97248 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98805 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97249 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98806 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97250 | .unused, | 98807 | .unused, |
| ... | @@ -97256,32 +98813,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97256,32 +98813,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97256 | .unused, | 98813 | .unused, |
| 97257 | }, | 98814 | }, |
| 97258 | .dst_temps = .{ .mem, .unused }, | 98815 | .dst_temps = .{ .mem, .unused }, |
| 97259 | .clobbers = .{ .eflags = true }, | 98816 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97260 | .each = .{ .once = &.{ | 98817 | .each = .{ .once = &.{ |
| 97261 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98818 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97262 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 98819 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 97263 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 98820 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 97264 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 98821 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 97265 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 98822 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 97266 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, | 98823 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 97267 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, | | |
| 97268 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | | |
| 97269 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, | | |
| 97270 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97271 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97272 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97273 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97274 | } }, | 98824 | } }, |
| 97275 | }, .{ | 98825 | }, .{ |
| 97276 | .required_features = .{ .@"64bit", null, null, null }, | 98826 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 97277 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98827 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 97278 | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 98828 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 97279 | .patterns = &.{ | 98829 | .patterns = &.{ |
| 97280 | .{ .src = .{ .to_mem, .none, .none } }, | 98830 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97281 | }, | 98831 | }, |
| | 98832 | .call_frame = .{ .alignment = .@"16" }, |
| 97282 | .extra_temps = .{ | 98833 | .extra_temps = .{ |
| 97283 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98834 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| 97284 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98835 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 97285 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98836 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97286 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98837 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97287 | .unused, | 98838 | .unused, |
| ... | @@ -97293,34 +98844,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97293,34 +98844,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97293 | .unused, | 98844 | .unused, |
| 97294 | }, | 98845 | }, |
| 97295 | .dst_temps = .{ .mem, .unused }, | 98846 | .dst_temps = .{ .mem, .unused }, |
| 97296 | .clobbers = .{ .eflags = true }, | 98847 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97297 | .each = .{ .once = &.{ | 98848 | .each = .{ .once = &.{ |
| 97298 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98849 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97299 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 98850 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 97300 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 98851 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 97301 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 98852 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 97302 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 98853 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 97303 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, | 98854 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 97304 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, | | |
| 97305 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | | |
| 97306 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, | | |
| 97307 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97308 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97309 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97310 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 97311 | } }, | 98855 | } }, |
| 97312 | }, .{ | 98856 | }, .{ |
| 97313 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 98857 | .required_features = .{ .f16c, null, null, null }, |
| 97314 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98858 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 97315 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 98859 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 97316 | .patterns = &.{ | 98860 | .patterns = &.{ |
| 97317 | .{ .src = .{ .to_mem, .none, .none } }, | 98861 | .{ .src = .{ .mem, .none, .none } }, |
| | 98862 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97318 | }, | 98863 | }, |
| 97319 | .extra_temps = .{ | 98864 | .extra_temps = .{ |
| 97320 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98865 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 97321 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98866 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 97322 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98867 | .unused, |
| 97323 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98868 | .unused, |
| 97324 | .unused, | 98869 | .unused, |
| 97325 | .unused, | 98870 | .unused, |
| 97326 | .unused, | 98871 | .unused, |
| ... | @@ -97329,37 +98874,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97329,37 +98874,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97329 | .unused, | 98874 | .unused, |
| 97330 | .unused, | 98875 | .unused, |
| 97331 | }, | 98876 | }, |
| 97332 | .dst_temps = .{ .mem, .unused }, | 98877 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 97333 | .clobbers = .{ .eflags = true }, | | |
| 97334 | .each = .{ .once = &.{ | 98878 | .each = .{ .once = &.{ |
| 97335 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98879 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 97336 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 98880 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 97337 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 98881 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 97338 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 98882 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 97339 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | | |
| 97340 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, | | |
| 97341 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | | |
| 97342 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | | |
| 97343 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, | | |
| 97344 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | | |
| 97345 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, | | |
| 97346 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97347 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97348 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97349 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97350 | } }, | 98883 | } }, |
| 97351 | }, .{ | 98884 | }, .{ |
| 97352 | .required_features = .{ .@"64bit", null, null, null }, | 98885 | .required_features = .{ .f16c, null, null, null }, |
| 97353 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98886 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 97354 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, | 98887 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 97355 | .patterns = &.{ | 98888 | .patterns = &.{ |
| 97356 | .{ .src = .{ .to_mem, .none, .none } }, | 98889 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97357 | }, | 98890 | }, |
| 97358 | .extra_temps = .{ | 98891 | .extra_temps = .{ |
| 97359 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98892 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97360 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98893 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 97361 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98894 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 97362 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98895 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 97363 | .unused, | 98896 | .unused, |
| 97364 | .unused, | 98897 | .unused, |
| 97365 | .unused, | 98898 | .unused, |
| ... | @@ -97369,37 +98902,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97369,37 +98902,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97369 | .unused, | 98902 | .unused, |
| 97370 | }, | 98903 | }, |
| 97371 | .dst_temps = .{ .mem, .unused }, | 98904 | .dst_temps = .{ .mem, .unused }, |
| 97372 | .clobbers = .{ .eflags = true }, | | |
| 97373 | .each = .{ .once = &.{ | 98905 | .each = .{ .once = &.{ |
| 97374 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98906 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 97375 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 98907 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 97376 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 98908 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97377 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 98909 | .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 97378 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 98910 | .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ }, |
| 97379 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, | 98911 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 97380 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 98912 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 97381 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 98913 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 97382 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, | 98914 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97383 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | | |
| 97384 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, | | |
| 97385 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97386 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97387 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97388 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 97389 | } }, | 98915 | } }, |
| 97390 | }, .{ | 98916 | }, .{ |
| 97391 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 98917 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 97392 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98918 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97393 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 98919 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97394 | .patterns = &.{ | 98920 | .patterns = &.{ |
| 97395 | .{ .src = .{ .to_mem, .none, .none } }, | 98921 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97396 | }, | 98922 | }, |
| | 98923 | .call_frame = .{ .alignment = .@"16" }, |
| 97397 | .extra_temps = .{ | 98924 | .extra_temps = .{ |
| 97398 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98925 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97399 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98926 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97400 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98927 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97401 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98928 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97402 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 98929 | .unused, |
| 97403 | .unused, | 98930 | .unused, |
| 97404 | .unused, | 98931 | .unused, |
| 97405 | .unused, | 98932 | .unused, |
| ... | @@ -97408,34 +98935,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97408,34 +98935,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97408 | .unused, | 98935 | .unused, |
| 97409 | }, | 98936 | }, |
| 97410 | .dst_temps = .{ .mem, .unused }, | 98937 | .dst_temps = .{ .mem, .unused }, |
| 97411 | .clobbers = .{ .eflags = true }, | 98938 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97412 | .each = .{ .once = &.{ | 98939 | .each = .{ .once = &.{ |
| 97413 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98940 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97414 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 98941 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 97415 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 98942 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 97416 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 98943 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 97417 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 98944 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 97418 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, | 98945 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 97419 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 98946 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97420 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | | |
| 97421 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 97422 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97423 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97424 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97425 | } }, | 98947 | } }, |
| 97426 | }, .{ | 98948 | }, .{ |
| 97427 | .required_features = .{ .@"64bit", null, null, null }, | 98949 | .required_features = .{ .avx, null, null, null }, |
| 97428 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, | 98950 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97429 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 98951 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97430 | .patterns = &.{ | 98952 | .patterns = &.{ |
| 97431 | .{ .src = .{ .to_mem, .none, .none } }, | 98953 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97432 | }, | 98954 | }, |
| | 98955 | .call_frame = .{ .alignment = .@"16" }, |
| 97433 | .extra_temps = .{ | 98956 | .extra_temps = .{ |
| 97434 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98957 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97435 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98958 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97436 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98959 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97437 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98960 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97438 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 98961 | .unused, |
| 97439 | .unused, | 98962 | .unused, |
| 97440 | .unused, | 98963 | .unused, |
| 97441 | .unused, | 98964 | .unused, |
| ... | @@ -97444,34 +98967,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97444,34 +98967,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97444 | .unused, | 98967 | .unused, |
| 97445 | }, | 98968 | }, |
| 97446 | .dst_temps = .{ .mem, .unused }, | 98969 | .dst_temps = .{ .mem, .unused }, |
| 97447 | .clobbers = .{ .eflags = true }, | 98970 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97448 | .each = .{ .once = &.{ | 98971 | .each = .{ .once = &.{ |
| 97449 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 98972 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97450 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 98973 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 97451 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 98974 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 97452 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 98975 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 97453 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 98976 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 97454 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, | 98977 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 97455 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | | |
| 97456 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | | |
| 97457 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 97458 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97459 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97460 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 98978 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 97461 | } }, | 98979 | } }, |
| 97462 | }, .{ | 98980 | }, .{ |
| 97463 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 98981 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 97464 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 98982 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97465 | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 98983 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97466 | .patterns = &.{ | 98984 | .patterns = &.{ |
| 97467 | .{ .src = .{ .to_mem, .none, .none } }, | 98985 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97468 | }, | 98986 | }, |
| | 98987 | .call_frame = .{ .alignment = .@"16" }, |
| 97469 | .extra_temps = .{ | 98988 | .extra_temps = .{ |
| 97470 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 98989 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97471 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 98990 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97472 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 98991 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97473 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 98992 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97474 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 98993 | .unused, |
| 97475 | .unused, | 98994 | .unused, |
| 97476 | .unused, | 98995 | .unused, |
| 97477 | .unused, | 98996 | .unused, |
| ... | @@ -97480,32 +98999,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97480,32 +98999,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97480 | .unused, | 98999 | .unused, |
| 97481 | }, | 99000 | }, |
| 97482 | .dst_temps = .{ .mem, .unused }, | 99001 | .dst_temps = .{ .mem, .unused }, |
| 97483 | .clobbers = .{ .eflags = true }, | 99002 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97484 | .each = .{ .once = &.{ | 99003 | .each = .{ .once = &.{ |
| 97485 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99004 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97486 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99005 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 97487 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99006 | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 97488 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 99007 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 97489 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 99008 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 97490 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99009 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 97491 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 99010 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97492 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97493 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97494 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97495 | } }, | 99011 | } }, |
| 97496 | }, .{ | 99012 | }, .{ |
| 97497 | .required_features = .{ .@"64bit", null, null, null }, | 99013 | .required_features = .{ .sse2, null, null, null }, |
| 97498 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99014 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97499 | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 99015 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97500 | .patterns = &.{ | 99016 | .patterns = &.{ |
| 97501 | .{ .src = .{ .to_mem, .none, .none } }, | 99017 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97502 | }, | 99018 | }, |
| | 99019 | .call_frame = .{ .alignment = .@"16" }, |
| 97503 | .extra_temps = .{ | 99020 | .extra_temps = .{ |
| 97504 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97505 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99022 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97506 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99023 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97507 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 99024 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97508 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99025 | .unused, |
| 97509 | .unused, | 99026 | .unused, |
| 97510 | .unused, | 99027 | .unused, |
| 97511 | .unused, | 99028 | .unused, |
| ... | @@ -97514,32 +99031,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97514,32 +99031,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97514 | .unused, | 99031 | .unused, |
| 97515 | }, | 99032 | }, |
| 97516 | .dst_temps = .{ .mem, .unused }, | 99033 | .dst_temps = .{ .mem, .unused }, |
| 97517 | .clobbers = .{ .eflags = true }, | 99034 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97518 | .each = .{ .once = &.{ | 99035 | .each = .{ .once = &.{ |
| 97519 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99036 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97520 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99037 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 97521 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99038 | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 97522 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 99039 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 97523 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 99040 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 97524 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99041 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 97525 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 97526 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97527 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97528 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 99042 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 97529 | } }, | 99043 | } }, |
| 97530 | }, .{ | 99044 | }, .{ |
| 97531 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, | 99045 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 97532 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99046 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97533 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 99047 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97534 | .patterns = &.{ | 99048 | .patterns = &.{ |
| 97535 | .{ .src = .{ .to_mem, .none, .none } }, | 99049 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97536 | }, | 99050 | }, |
| | 99051 | .call_frame = .{ .alignment = .@"16" }, |
| 97537 | .extra_temps = .{ | 99052 | .extra_temps = .{ |
| 97538 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99053 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97539 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99054 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97540 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99055 | .{ .type = .f32, .kind = .mem }, |
| 97541 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 99056 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97542 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99057 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97543 | .unused, | 99058 | .unused, |
| 97544 | .unused, | 99059 | .unused, |
| 97545 | .unused, | 99060 | .unused, |
| ... | @@ -97548,35 +99063,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97548,35 +99063,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97548 | .unused, | 99063 | .unused, |
| 97549 | }, | 99064 | }, |
| 97550 | .dst_temps = .{ .mem, .unused }, | 99065 | .dst_temps = .{ .mem, .unused }, |
| 97551 | .clobbers = .{ .eflags = true }, | 99066 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97552 | .each = .{ .once = &.{ | 99067 | .each = .{ .once = &.{ |
| 97553 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99068 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97554 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99069 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 97555 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99070 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 97556 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, | 99071 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 97557 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 99072 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 97558 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99073 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 97559 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, | 99074 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 97560 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, | 99075 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97561 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, | | |
| 97562 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97563 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97564 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97565 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97566 | } }, | 99076 | } }, |
| 97567 | }, .{ | 99077 | }, .{ |
| 97568 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 99078 | .required_features = .{ .sse, null, null, null }, |
| 97569 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99079 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97570 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 99080 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97571 | .patterns = &.{ | 99081 | .patterns = &.{ |
| 97572 | .{ .src = .{ .to_mem, .none, .none } }, | 99082 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97573 | }, | 99083 | }, |
| | 99084 | .call_frame = .{ .alignment = .@"16" }, |
| 97574 | .extra_temps = .{ | 99085 | .extra_temps = .{ |
| 97575 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99086 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97576 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99087 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97577 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99088 | .{ .type = .f32, .kind = .mem }, |
| 97578 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 99089 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97579 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99090 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97580 | .unused, | 99091 | .unused, |
| 97581 | .unused, | 99092 | .unused, |
| 97582 | .unused, | 99093 | .unused, |
| ... | @@ -97585,71 +99096,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97585,71 +99096,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97585 | .unused, | 99096 | .unused, |
| 97586 | }, | 99097 | }, |
| 97587 | .dst_temps = .{ .mem, .unused }, | 99098 | .dst_temps = .{ .mem, .unused }, |
| 97588 | .clobbers = .{ .eflags = true }, | 99099 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97589 | .each = .{ .once = &.{ | 99100 | .each = .{ .once = &.{ |
| 97590 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99101 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97591 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99102 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 97592 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99103 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 97593 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, | 99104 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 97594 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 99105 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 97595 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99106 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 97596 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, | 99107 | .{ ._, ._c, .in, .tmp0p, .si(1), ._, ._ }, |
| 97597 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, | | |
| 97598 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, | | |
| 97599 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97600 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97601 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97602 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 99108 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 97603 | } }, | 99109 | } }, |
| 97604 | }, .{ | 99110 | }, .{ |
| 97605 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, | 99111 | .required_features = .{ .f16c, null, null, null }, |
| 97606 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99112 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 97607 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 99113 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 97608 | .patterns = &.{ | 99114 | .patterns = &.{ |
| 97609 | .{ .src = .{ .to_mem, .none, .none } }, | 99115 | .{ .src = .{ .mem, .none, .none } }, |
| | 99116 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97610 | }, | 99117 | }, |
| 97611 | .extra_temps = .{ | 99118 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 97612 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99119 | .each = .{ .once = &.{ |
| 97613 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99120 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 97614 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99121 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 97615 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 99122 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, |
| 97616 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99123 | } }, |
| 97617 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 99124 | }, .{ |
| 97618 | .unused, | 99125 | .required_features = .{ .f16c, null, null, null }, |
| 97619 | .unused, | 99126 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 97620 | .unused, | 99127 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 97621 | .unused, | 99128 | .patterns = &.{ |
| 97622 | .unused, | 99129 | .{ .src = .{ .mem, .none, .none } }, |
| | 99130 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97623 | }, | 99131 | }, |
| 97624 | .dst_temps = .{ .mem, .unused }, | 99132 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 97625 | .clobbers = .{ .eflags = true }, | | |
| 97626 | .each = .{ .once = &.{ | 99133 | .each = .{ .once = &.{ |
| 97627 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99134 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 97628 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99135 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 97629 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99136 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, |
| 97630 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, | | |
| 97631 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | | |
| 97632 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | | |
| 97633 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, | | |
| 97634 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 97635 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97636 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97637 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97638 | } }, | 99137 | } }, |
| 97639 | }, .{ | 99138 | }, .{ |
| 97640 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 99139 | .required_features = .{ .f16c, null, null, null }, |
| 97641 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99140 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 97642 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 99141 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 97643 | .patterns = &.{ | 99142 | .patterns = &.{ |
| 97644 | .{ .src = .{ .to_mem, .none, .none } }, | 99143 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97645 | }, | 99144 | }, |
| 97646 | .extra_temps = .{ | 99145 | .extra_temps = .{ |
| 97647 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99146 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97648 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99147 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 97649 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99148 | .unused, |
| 97650 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 99149 | .unused, |
| 97651 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99150 | .unused, |
| 97652 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 99151 | .unused, |
| 97653 | .unused, | 99152 | .unused, |
| 97654 | .unused, | 99153 | .unused, |
| 97655 | .unused, | 99154 | .unused, |
| ... | @@ -97657,32 +99156,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97657,32 +99156,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97657 | .unused, | 99156 | .unused, |
| 97658 | }, | 99157 | }, |
| 97659 | .dst_temps = .{ .mem, .unused }, | 99158 | .dst_temps = .{ .mem, .unused }, |
| 97660 | .clobbers = .{ .eflags = true }, | | |
| 97661 | .each = .{ .once = &.{ | 99159 | .each = .{ .once = &.{ |
| 97662 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99160 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 97663 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99161 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 97664 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99162 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 97665 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, | 99163 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 97666 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 99164 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 97667 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99165 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 97668 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, | 99166 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97669 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 97670 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97671 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97672 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 97673 | } }, | 99167 | } }, |
| 97674 | }, .{ | 99168 | }, .{ |
| 97675 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 99169 | .required_features = .{ .f16c, null, null, null }, |
| 97676 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99170 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 97677 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 99171 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 97678 | .patterns = &.{ | 99172 | .patterns = &.{ |
| 97679 | .{ .src = .{ .to_mem, .none, .none } }, | 99173 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97680 | }, | 99174 | }, |
| 97681 | .extra_temps = .{ | 99175 | .extra_temps = .{ |
| 97682 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99176 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97683 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99177 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 97684 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99178 | .unused, |
| 97685 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99179 | .unused, |
| 97686 | .unused, | 99180 | .unused, |
| 97687 | .unused, | 99181 | .unused, |
| 97688 | .unused, | 99182 | .unused, |
| ... | @@ -97692,34 +99186,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97692,34 +99186,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97692 | .unused, | 99186 | .unused, |
| 97693 | }, | 99187 | }, |
| 97694 | .dst_temps = .{ .mem, .unused }, | 99188 | .dst_temps = .{ .mem, .unused }, |
| 97695 | .clobbers = .{ .eflags = true }, | | |
| 97696 | .each = .{ .once = &.{ | 99189 | .each = .{ .once = &.{ |
| 97697 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99190 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 97698 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99191 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 97699 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99192 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 97700 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 99193 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 97701 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99194 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 97702 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, | 99195 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 97703 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, | 99196 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97704 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, | | |
| 97705 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, | | |
| 97706 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97707 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97708 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97709 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97710 | } }, | 99197 | } }, |
| 97711 | }, .{ | 99198 | }, .{ |
| 97712 | .required_features = .{ .@"64bit", null, null, null }, | 99199 | .required_features = .{ .avx, null, null, null }, |
| 97713 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99200 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97714 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, | 99201 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 97715 | .patterns = &.{ | 99202 | .patterns = &.{ |
| 97716 | .{ .src = .{ .to_mem, .none, .none } }, | 99203 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97717 | }, | 99204 | }, |
| | 99205 | .call_frame = .{ .alignment = .@"16" }, |
| 97718 | .extra_temps = .{ | 99206 | .extra_temps = .{ |
| 97719 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99207 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97720 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99208 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97721 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99209 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97722 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99210 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97723 | .unused, | 99211 | .unused, |
| 97724 | .unused, | 99212 | .unused, |
| 97725 | .unused, | 99213 | .unused, |
| ... | @@ -97729,35 +99217,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97729,35 +99217,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97729 | .unused, | 99217 | .unused, |
| 97730 | }, | 99218 | }, |
| 97731 | .dst_temps = .{ .mem, .unused }, | 99219 | .dst_temps = .{ .mem, .unused }, |
| 97732 | .clobbers = .{ .eflags = true }, | 99220 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97733 | .each = .{ .once = &.{ | 99221 | .each = .{ .once = &.{ |
| 97734 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99222 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 97735 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99223 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 97736 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99224 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 97737 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, | 99225 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 97738 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99226 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 97739 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, | 99227 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 97740 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, | 99228 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97741 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, | | |
| 97742 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, | | |
| 97743 | .{ ._, ._, .add, .tmp1p, .sia2(16, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97744 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, | | |
| 97745 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97746 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 97747 | } }, | 99229 | } }, |
| 97748 | }, .{ | 99230 | }, .{ |
| 97749 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 99231 | .required_features = .{ .sse2, null, null, null }, |
| 97750 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99232 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97751 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 99233 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 97752 | .patterns = &.{ | 99234 | .patterns = &.{ |
| 97753 | .{ .src = .{ .to_mem, .none, .none } }, | 99235 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97754 | }, | 99236 | }, |
| | 99237 | .call_frame = .{ .alignment = .@"16" }, |
| 97755 | .extra_temps = .{ | 99238 | .extra_temps = .{ |
| 97756 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99239 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97757 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99240 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97758 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99241 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97759 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 99242 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97760 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99243 | .unused, |
| 97761 | .unused, | 99244 | .unused, |
| 97762 | .unused, | 99245 | .unused, |
| 97763 | .unused, | 99246 | .unused, |
| ... | @@ -97766,858 +99249,1000 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -97766,858 +99249,1000 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97766 | .unused, | 99249 | .unused, |
| 97767 | }, | 99250 | }, |
| 97768 | .dst_temps = .{ .mem, .unused }, | 99251 | .dst_temps = .{ .mem, .unused }, |
| 97769 | .clobbers = .{ .eflags = true }, | 99252 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97770 | .each = .{ .once = &.{ | 99253 | .each = .{ .once = &.{ |
| 97771 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 99254 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 97772 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 99255 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 97773 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 99256 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 97774 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 99257 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 97775 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | 99258 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 97776 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 99259 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 97777 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, | 99260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97778 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, | | |
| 97779 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 97780 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97781 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | | |
| 97782 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | | |
| 97783 | } }, | 99261 | } }, |
| 97784 | }, .{ | 99262 | }, .{ |
| 97785 | .required_features = .{ .@"64bit", null, null, null }, | 99263 | .required_features = .{ .sse, null, null, null }, |
| 97786 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, | 99264 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 97787 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 99265 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 97788 | .patterns = &.{ | 99266 | .patterns = &.{ |
| 97789 | .{ .src = .{ .to_mem, .none, .none } }, | 99267 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97790 | }, | 99268 | }, |
| | 99269 | .call_frame = .{ .alignment = .@"16" }, |
| 97791 | .extra_temps = .{ | 99270 | .extra_temps = .{ |
| 97792 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 99271 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97793 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 99272 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97794 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 99273 | .{ .type = .f32, .kind = .mem }, |
| 97795 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 99274 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 97796 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 99275 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97797 | .unused, | 99276 | .unused, |
| 97798 | .unused, | 99277 | .unused, |
| 97799 | .unused, | 99278 | .unused, |
| 97800 | .unused, | 99279 | .unused, |
| 97801 | .unused, | 99280 | .unused, |
| 97802 | .unused, | 99281 | .unused, |
| 97803 | }, | 99282 | }, |
| 97804 | .dst_temps = .{ .mem, .unused }, | 99283 | .dst_temps = .{ .mem, .unused }, |
| 97805 | .clobbers = .{ .eflags = true }, | 99284 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97806 | .each = .{ .once = &.{ | | |
| 97807 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | | |
| 97808 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | | |
| 97809 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | | |
| 97810 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 97811 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, | | |
| 97812 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | | |
| 97813 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, | | |
| 97814 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, | | |
| 97815 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | | |
| 97816 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, | | |
| 97817 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | | |
| 97818 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 97819 | } }, | | |
| 97820 | } }) catch |err| switch (err) { | | |
| 97821 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | | |
| 97822 | @tagName(air_tag), | | |
| 97823 | ty_op.ty.toType().fmt(pt), | | |
| 97824 | cg.typeOf(ty_op.operand).fmt(pt), | | |
| 97825 | ops[0].tracking(cg), | | |
| 97826 | }), | | |
| 97827 | else => |e| return e, | | |
| 97828 | }; | | |
| 97829 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97830 | }, | | |
| 97831 | .optional_payload => if (use_old) try cg.airOptionalPayload(inst) else { | | |
| 97832 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97833 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97834 | const pl = if (!hack_around_sema_opv_bugs or ty_op.ty.toType().hasRuntimeBitsIgnoreComptime(zcu)) | | |
| 97835 | try ops[0].read(ty_op.ty.toType(), .{}, cg) | | |
| 97836 | else | | |
| 97837 | try cg.tempInit(ty_op.ty.toType(), .none); | | |
| 97838 | try pl.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97839 | }, | | |
| 97840 | .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else { | | |
| 97841 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97842 | const ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97843 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97844 | }, | | |
| 97845 | .optional_payload_ptr_set => if (use_old) try cg.airOptionalPayloadPtrSet(inst) else { | | |
| 97846 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97847 | const opt_ty = cg.typeOf(ty_op.operand).childType(zcu); | | |
| 97848 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97849 | if (!opt_ty.optionalReprIsPayload(zcu)) { | | |
| 97850 | const opt_pl_ty = opt_ty.optionalChild(zcu); | | |
| 97851 | const opt_pl_abi_size: i32 = @intCast(opt_pl_ty.abiSize(zcu)); | | |
| 97852 | try ops[0].toOffset(opt_pl_abi_size, cg); | | |
| 97853 | var has_value = try cg.tempInit(.bool, .{ .immediate = 1 }); | | |
| 97854 | try ops[0].store(&has_value, .{}, cg); | | |
| 97855 | try has_value.die(cg); | | |
| 97856 | try ops[0].toOffset(-opt_pl_abi_size, cg); | | |
| 97857 | } | | |
| 97858 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97859 | }, | | |
| 97860 | .wrap_optional => if (use_old) try cg.airWrapOptional(inst) else { | | |
| 97861 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97862 | const opt_ty = ty_op.ty.toType(); | | |
| 97863 | const opt_pl_ty = cg.typeOf(ty_op.operand); | | |
| 97864 | const opt_pl_abi_size: u31 = @intCast(opt_pl_ty.abiSize(zcu)); | | |
| 97865 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97866 | var opt = try cg.tempAlloc(opt_ty); | | |
| 97867 | try opt.write(&ops[0], .{}, cg); | | |
| 97868 | if (!opt_ty.optionalReprIsPayload(zcu)) { | | |
| 97869 | var has_value = try cg.tempInit(.bool, .{ .immediate = 1 }); | | |
| 97870 | try opt.write(&has_value, .{ .disp = opt_pl_abi_size }, cg); | | |
| 97871 | try has_value.die(cg); | | |
| 97872 | } | | |
| 97873 | try opt.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97874 | }, | | |
| 97875 | .unwrap_errunion_payload => if (use_old) try cg.airUnwrapErrUnionPayload(inst) else { | | |
| 97876 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97877 | const eu_pl_ty = ty_op.ty.toType(); | | |
| 97878 | const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); | | |
| 97879 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97880 | const pl = if (!hack_around_sema_opv_bugs or eu_pl_ty.hasRuntimeBitsIgnoreComptime(zcu)) | | |
| 97881 | try ops[0].read(eu_pl_ty, .{ .disp = eu_pl_off }, cg) | | |
| 97882 | else | | |
| 97883 | try cg.tempInit(eu_pl_ty, .none); | | |
| 97884 | try pl.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97885 | }, | | |
| 97886 | .unwrap_errunion_err => if (use_old) try cg.airUnwrapErrUnionErr(inst) else { | | |
| 97887 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97888 | const eu_ty = cg.typeOf(ty_op.operand); | | |
| 97889 | const eu_err_ty = ty_op.ty.toType(); | | |
| 97890 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | | |
| 97891 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | | |
| 97892 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97893 | const err = try ops[0].read(eu_err_ty, .{ .disp = eu_err_off }, cg); | | |
| 97894 | try err.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97895 | }, | | |
| 97896 | .unwrap_errunion_payload_ptr => if (use_old) try cg.airUnwrapErrUnionPayloadPtr(inst) else { | | |
| 97897 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97898 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); | | |
| 97899 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | | |
| 97900 | const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); | | |
| 97901 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97902 | try ops[0].toOffset(eu_pl_off, cg); | | |
| 97903 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97904 | }, | | |
| 97905 | .unwrap_errunion_err_ptr => if (use_old) try cg.airUnwrapErrUnionErrPtr(inst) else { | | |
| 97906 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97907 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); | | |
| 97908 | const eu_err_ty = ty_op.ty.toType(); | | |
| 97909 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | | |
| 97910 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | | |
| 97911 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97912 | try ops[0].toOffset(eu_err_off, cg); | | |
| 97913 | const err = try ops[0].load(eu_err_ty, .{}, cg); | | |
| 97914 | try err.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97915 | }, | | |
| 97916 | .errunion_payload_ptr_set => if (use_old) try cg.airErrUnionPayloadPtrSet(inst) else { | | |
| 97917 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97918 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); | | |
| 97919 | const eu_err_ty = eu_ty.errorUnionSet(zcu); | | |
| 97920 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | | |
| 97921 | const eu_err_off: i32 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | | |
| 97922 | const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); | | |
| 97923 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97924 | try ops[0].toOffset(eu_err_off, cg); | | |
| 97925 | var err = try cg.tempInit(eu_err_ty, .{ .immediate = 0 }); | | |
| 97926 | try ops[0].store(&err, .{}, cg); | | |
| 97927 | try err.die(cg); | | |
| 97928 | try ops[0].toOffset(eu_pl_off - eu_err_off, cg); | | |
| 97929 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97930 | }, | | |
| 97931 | .wrap_errunion_payload => if (use_old) try cg.airWrapErrUnionPayload(inst) else { | | |
| 97932 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97933 | const eu_ty = ty_op.ty.toType(); | | |
| 97934 | const eu_err_ty = eu_ty.errorUnionSet(zcu); | | |
| 97935 | const eu_pl_ty = cg.typeOf(ty_op.operand); | | |
| 97936 | const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | | |
| 97937 | const eu_pl_off: u31 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); | | |
| 97938 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97939 | var eu = try cg.tempAlloc(eu_ty); | | |
| 97940 | try eu.write(&ops[0], .{ .disp = eu_pl_off }, cg); | | |
| 97941 | var err = try cg.tempInit(eu_err_ty, .{ .immediate = 0 }); | | |
| 97942 | try eu.write(&err, .{ .disp = eu_err_off }, cg); | | |
| 97943 | try err.die(cg); | | |
| 97944 | try eu.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97945 | }, | | |
| 97946 | .wrap_errunion_err => if (use_old) try cg.airWrapErrUnionErr(inst) else { | | |
| 97947 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97948 | const eu_ty = ty_op.ty.toType(); | | |
| 97949 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); | | |
| 97950 | const eu_err_off: u31 = @intCast(codegen.errUnionErrorOffset(eu_pl_ty, zcu)); | | |
| 97951 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97952 | var eu = try cg.tempAlloc(eu_ty); | | |
| 97953 | try eu.write(&ops[0], .{ .disp = eu_err_off }, cg); | | |
| 97954 | try eu.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97955 | }, | | |
| 97956 | .struct_field_ptr => if (use_old) try cg.airStructFieldPtr(inst) else { | | |
| 97957 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | | |
| 97958 | const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data; | | |
| 97959 | var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand}); | | |
| 97960 | try ops[0].toOffset(cg.fieldOffset( | | |
| 97961 | cg.typeOf(extra.struct_operand), | | |
| 97962 | ty_pl.ty.toType(), | | |
| 97963 | extra.field_index, | | |
| 97964 | ), cg); | | |
| 97965 | try ops[0].finish(inst, &.{extra.struct_operand}, &ops, cg); | | |
| 97966 | }, | | |
| 97967 | .struct_field_ptr_index_0, | | |
| 97968 | .struct_field_ptr_index_1, | | |
| 97969 | .struct_field_ptr_index_2, | | |
| 97970 | .struct_field_ptr_index_3, | | |
| 97971 | => |air_tag| if (use_old) try cg.airStructFieldPtrIndex(inst, switch (air_tag) { | | |
| 97972 | else => unreachable, | | |
| 97973 | .struct_field_ptr_index_0 => 0, | | |
| 97974 | .struct_field_ptr_index_1 => 1, | | |
| 97975 | .struct_field_ptr_index_2 => 2, | | |
| 97976 | .struct_field_ptr_index_3 => 3, | | |
| 97977 | }) else { | | |
| 97978 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 97979 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 97980 | try ops[0].toOffset(cg.fieldOffset( | | |
| 97981 | cg.typeOf(ty_op.operand), | | |
| 97982 | ty_op.ty.toType(), | | |
| 97983 | switch (air_tag) { | | |
| 97984 | else => unreachable, | | |
| 97985 | .struct_field_ptr_index_0 => 0, | | |
| 97986 | .struct_field_ptr_index_1 => 1, | | |
| 97987 | .struct_field_ptr_index_2 => 2, | | |
| 97988 | .struct_field_ptr_index_3 => 3, | | |
| 97989 | }, | | |
| 97990 | ), cg); | | |
| 97991 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 97992 | }, | | |
| 97993 | .struct_field_val => if (use_old) try cg.airStructFieldVal(inst) else fallback: { | | |
| 97994 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | | |
| 97995 | const extra = cg.air.extraData(Air.StructField, ty_pl.payload).data; | | |
| 97996 | const agg_ty = cg.typeOf(extra.struct_operand); | | |
| 97997 | const field_ty = ty_pl.ty.toType(); | | |
| 97998 | const field_off: u31 = switch (agg_ty.containerLayout(zcu)) { | | |
| 97999 | .auto, .@"extern" => @intCast(agg_ty.structFieldOffset(extra.field_index, zcu)), | | |
| 98000 | .@"packed" => break :fallback try cg.airStructFieldVal(inst), | | |
| 98001 | }; | | |
| 98002 | var ops = try cg.tempsFromOperands(inst, .{extra.struct_operand}); | | |
| 98003 | var res = if (!hack_around_sema_opv_bugs or field_ty.hasRuntimeBitsIgnoreComptime(zcu)) | | |
| 98004 | try ops[0].read(field_ty, .{ .disp = field_off }, cg) | | |
| 98005 | else | | |
| 98006 | try cg.tempInit(field_ty, .none); | | |
| 98007 | try res.finish(inst, &.{extra.struct_operand}, &ops, cg); | | |
| 98008 | }, | | |
| 98009 | .set_union_tag => if (use_old) try cg.airSetUnionTag(inst) else { | | |
| 98010 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | | |
| 98011 | const union_ty = cg.typeOf(bin_op.lhs).childType(zcu); | | |
| 98012 | const union_layout = union_ty.unionGetLayout(zcu); | | |
| 98013 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | | |
| 98014 | if (!hack_around_sema_opv_bugs or union_layout.tag_size > 0) try ops[0].store(&ops[1], .{ | | |
| 98015 | .disp = @intCast(union_layout.tagOffset()), | | |
| 98016 | }, cg); | | |
| 98017 | const res = try cg.tempInit(.void, .none); | | |
| 98018 | try res.finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | | |
| 98019 | }, | | |
| 98020 | .get_union_tag => if (use_old) try cg.airGetUnionTag(inst) else { | | |
| 98021 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 98022 | const union_ty = cg.typeOf(ty_op.operand); | | |
| 98023 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 98024 | const union_layout = union_ty.unionGetLayout(zcu); | | |
| 98025 | assert(union_layout.tag_size > 0); | | |
| 98026 | const res = try ops[0].read(ty_op.ty.toType(), .{ | | |
| 98027 | .disp = @intCast(union_layout.tagOffset()), | | |
| 98028 | }, cg); | | |
| 98029 | try res.finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 98030 | }, | | |
| 98031 | .slice => if (use_old) try cg.airSlice(inst) else { | | |
| 98032 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | | |
| 98033 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; | | |
| 98034 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | | |
| 98035 | try ops[0].toPair(&ops[1], cg); | | |
| 98036 | try ops[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | | |
| 98037 | }, | | |
| 98038 | .slice_len => if (use_old) try cg.airSliceLen(inst) else { | | |
| 98039 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 98040 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 98041 | try ops[0].toSliceLen(cg); | | |
| 98042 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 98043 | }, | | |
| 98044 | .slice_ptr => if (use_old) try cg.airSlicePtr(inst) else { | | |
| 98045 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 98046 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 98047 | try ops[0].toSlicePtr(cg); | | |
| 98048 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 98049 | }, | | |
| 98050 | .ptr_slice_len_ptr => if (use_old) try cg.airPtrSliceLenPtr(inst) else { | | |
| 98051 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 98052 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 98053 | try ops[0].toOffset(8, cg); | | |
| 98054 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 98055 | }, | | |
| 98056 | .ptr_slice_ptr_ptr => if (use_old) try cg.airPtrSlicePtrPtr(inst) else { | | |
| 98057 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 98058 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 98059 | try ops[0].toOffset(0, cg); | | |
| 98060 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 98061 | }, | | |
| 98062 | .array_elem_val => if (use_old) try cg.airArrayElemVal(inst) else { | | |
| 98063 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | | |
| 98064 | const array_ty = cg.typeOf(bin_op.lhs); | | |
| 98065 | const res_ty = array_ty.elemType2(zcu); | | |
| 98066 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | | |
| 98067 | var res: [1]Temp = undefined; | | |
| 98068 | cg.select(&res, &.{res_ty}, &ops, comptime &.{ .{ | | |
| 98069 | .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any }, | | |
| 98070 | .patterns = &.{ | | |
| 98071 | .{ .src = .{ .to_gpr, .imm32, .none } }, | | |
| 98072 | }, | | |
| 98073 | .dst_temps = .{ .{ .cc = .c }, .unused }, | | |
| 98074 | .clobbers = .{ .eflags = true }, | | |
| 98075 | .each = .{ .once = &.{ | | |
| 98076 | .{ ._, ._, .bt, .src0d, .ua(.none, .add_src1_rem_32), ._, ._ }, | | |
| 98077 | } }, | | |
| 98078 | }, .{ | | |
| 98079 | .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any }, | | |
| 98080 | .patterns = &.{ | | |
| 98081 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | | |
| 98082 | }, | | |
| 98083 | .dst_temps = .{ .{ .cc = .c }, .unused }, | | |
| 98084 | .clobbers = .{ .eflags = true }, | | |
| 98085 | .each = .{ .once = &.{ | 99285 | .each = .{ .once = &.{ |
| 98086 | .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, | 99286 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99287 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99288 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| | 99289 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| | 99290 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 99291 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 99292 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99293 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98087 | } }, | 99294 | } }, |
| 98088 | }, .{ | 99295 | }, .{ |
| 98089 | .required_features = .{ .@"64bit", null, null, null }, | 99296 | .required_features = .{ .f16c, null, null, null }, |
| 98090 | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, | 99297 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 99298 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 98091 | .patterns = &.{ | 99299 | .patterns = &.{ |
| 98092 | .{ .src = .{ .to_gpr, .imm32, .none } }, | 99300 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98093 | }, | 99301 | }, |
| 98094 | .dst_temps = .{ .{ .cc = .c }, .unused }, | 99302 | .extra_temps = .{ |
| 98095 | .clobbers = .{ .eflags = true }, | 99303 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99304 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| | 99305 | .unused, |
| | 99306 | .unused, |
| | 99307 | .unused, |
| | 99308 | .unused, |
| | 99309 | .unused, |
| | 99310 | .unused, |
| | 99311 | .unused, |
| | 99312 | .unused, |
| | 99313 | .unused, |
| | 99314 | }, |
| | 99315 | .dst_temps = .{ .mem, .unused }, |
| 98096 | .each = .{ .once = &.{ | 99316 | .each = .{ .once = &.{ |
| 98097 | .{ ._, ._, .bt, .src0q, .ua(.none, .add_src1_rem_64), ._, ._ }, | 99317 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99318 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99319 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| | 99320 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 99321 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 99322 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98098 | } }, | 99323 | } }, |
| 98099 | }, .{ | 99324 | }, .{ |
| 98100 | .required_features = .{ .@"64bit", null, null, null }, | 99325 | .required_features = .{ .f16c, null, null, null }, |
| 98101 | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, | 99326 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99327 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98102 | .patterns = &.{ | 99328 | .patterns = &.{ |
| 98103 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | 99329 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98104 | }, | 99330 | }, |
| 98105 | .dst_temps = .{ .{ .cc = .c }, .unused }, | 99331 | .extra_temps = .{ |
| 98106 | .clobbers = .{ .eflags = true }, | 99332 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99333 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| | 99334 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 99335 | .unused, |
| | 99336 | .unused, |
| | 99337 | .unused, |
| | 99338 | .unused, |
| | 99339 | .unused, |
| | 99340 | .unused, |
| | 99341 | .unused, |
| | 99342 | .unused, |
| | 99343 | }, |
| | 99344 | .dst_temps = .{ .mem, .unused }, |
| 98107 | .each = .{ .once = &.{ | 99345 | .each = .{ .once = &.{ |
| 98108 | .{ ._, ._, .bt, .src0q, .src1q, ._, ._ }, | 99346 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99347 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99348 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99349 | .{ ._, .v_ps, .cvtph2, .tmp1x, .tmp1q, ._, ._ }, |
| | 99350 | .{ ._, .v_, .cvttss2si, .tmp2q, .tmp1x, ._, ._ }, |
| | 99351 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 99352 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99353 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98109 | } }, | 99354 | } }, |
| 98110 | }, .{ | 99355 | }, .{ |
| 98111 | .src_constraints = .{ .any_bool_vec, .any, .any }, | 99356 | .required_features = .{ .avx, null, null, null }, |
| | 99357 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99358 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98112 | .patterns = &.{ | 99359 | .patterns = &.{ |
| 98113 | .{ .src = .{ .to_mem, .imm32, .none } }, | 99360 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98114 | }, | 99361 | }, |
| 98115 | .dst_temps = .{ .{ .cc = .c }, .unused }, | 99362 | .call_frame = .{ .alignment = .@"16" }, |
| 98116 | .clobbers = .{ .eflags = true }, | 99363 | .extra_temps = .{ |
| | 99364 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99365 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99366 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| | 99367 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 99368 | .unused, |
| | 99369 | .unused, |
| | 99370 | .unused, |
| | 99371 | .unused, |
| | 99372 | .unused, |
| | 99373 | .unused, |
| | 99374 | .unused, |
| | 99375 | }, |
| | 99376 | .dst_temps = .{ .mem, .unused }, |
| | 99377 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98117 | .each = .{ .once = &.{ | 99378 | .each = .{ .once = &.{ |
| 98118 | .{ ._, ._, .bt, .mema(.src0d, .add_src1_div_8_down_4), .ua(.none, .add_src1_rem_32), ._, ._ }, | 99379 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99380 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99381 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99382 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99383 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 99384 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99385 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98119 | } }, | 99386 | } }, |
| 98120 | }, .{ | 99387 | }, .{ |
| 98121 | .src_constraints = .{ .any_bool_vec, .any, .any }, | 99388 | .required_features = .{ .avx, null, null, null }, |
| | 99389 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99390 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98122 | .patterns = &.{ | 99391 | .patterns = &.{ |
| 98123 | .{ .src = .{ .to_mem, .to_gpr, .none } }, | 99392 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98124 | }, | 99393 | }, |
| 98125 | .dst_temps = .{ .{ .cc = .c }, .unused }, | 99394 | .call_frame = .{ .alignment = .@"16" }, |
| 98126 | .clobbers = .{ .eflags = true }, | 99395 | .extra_temps = .{ |
| | 99396 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99397 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99398 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| | 99399 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| | 99400 | .unused, |
| | 99401 | .unused, |
| | 99402 | .unused, |
| | 99403 | .unused, |
| | 99404 | .unused, |
| | 99405 | .unused, |
| | 99406 | .unused, |
| | 99407 | }, |
| | 99408 | .dst_temps = .{ .mem, .unused }, |
| | 99409 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98127 | .each = .{ .once = &.{ | 99410 | .each = .{ .once = &.{ |
| 98128 | .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, | 99411 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99412 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99413 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99414 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99415 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 99416 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99417 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98129 | } }, | 99418 | } }, |
| 98130 | }, .{ | 99419 | }, .{ |
| 98131 | .dst_constraints = .{ .{ .int = .byte }, .any }, | 99420 | .required_features = .{ .sse2, null, null, null }, |
| | 99421 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99422 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98132 | .patterns = &.{ | 99423 | .patterns = &.{ |
| 98133 | .{ .src = .{ .to_mem, .simm32, .none } }, | 99424 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98134 | }, | 99425 | }, |
| 98135 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99426 | .call_frame = .{ .alignment = .@"16" }, |
| | 99427 | .extra_temps = .{ |
| | 99428 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99429 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99430 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| | 99431 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 99432 | .unused, |
| | 99433 | .unused, |
| | 99434 | .unused, |
| | 99435 | .unused, |
| | 99436 | .unused, |
| | 99437 | .unused, |
| | 99438 | .unused, |
| | 99439 | }, |
| | 99440 | .dst_temps = .{ .mem, .unused }, |
| | 99441 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98136 | .each = .{ .once = &.{ | 99442 | .each = .{ .once = &.{ |
| 98137 | .{ ._, ._, .movzx, .dst0d, .mema(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, | 99443 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99444 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 99445 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 99446 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99447 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 99448 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99449 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98138 | } }, | 99450 | } }, |
| 98139 | }, .{ | 99451 | }, .{ |
| 98140 | .dst_constraints = .{ .{ .int = .byte }, .any }, | 99452 | .required_features = .{ .sse2, null, null, null }, |
| | 99453 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99454 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98141 | .patterns = &.{ | 99455 | .patterns = &.{ |
| 98142 | .{ .src = .{ .to_mem, .to_gpr, .none } }, | 99456 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98143 | }, | 99457 | }, |
| 98144 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99458 | .call_frame = .{ .alignment = .@"16" }, |
| | 99459 | .extra_temps = .{ |
| | 99460 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99461 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99462 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| | 99463 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| | 99464 | .unused, |
| | 99465 | .unused, |
| | 99466 | .unused, |
| | 99467 | .unused, |
| | 99468 | .unused, |
| | 99469 | .unused, |
| | 99470 | .unused, |
| | 99471 | }, |
| | 99472 | .dst_temps = .{ .mem, .unused }, |
| | 99473 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98145 | .each = .{ .once = &.{ | 99474 | .each = .{ .once = &.{ |
| 98146 | .{ ._, ._, .movzx, .dst0d, .memi(.src0b, .src1), ._, ._ }, | 99475 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99476 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 99477 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 99478 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99479 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 99480 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99481 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98147 | } }, | 99482 | } }, |
| 98148 | }, .{ | 99483 | }, .{ |
| 98149 | .dst_constraints = .{ .{ .int = .word }, .any }, | 99484 | .required_features = .{ .sse, null, null, null }, |
| | 99485 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99486 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98150 | .patterns = &.{ | 99487 | .patterns = &.{ |
| 98151 | .{ .src = .{ .to_mem, .simm32, .none } }, | 99488 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98152 | }, | 99489 | }, |
| 98153 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99490 | .call_frame = .{ .alignment = .@"16" }, |
| | 99491 | .extra_temps = .{ |
| | 99492 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99493 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 99494 | .{ .type = .f32, .kind = .mem }, |
| | 99495 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99496 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| | 99497 | .unused, |
| | 99498 | .unused, |
| | 99499 | .unused, |
| | 99500 | .unused, |
| | 99501 | .unused, |
| | 99502 | .unused, |
| | 99503 | }, |
| | 99504 | .dst_temps = .{ .mem, .unused }, |
| | 99505 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98154 | .each = .{ .once = &.{ | 99506 | .each = .{ .once = &.{ |
| 98155 | .{ ._, ._, .movzx, .dst0d, .mema(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, | 99507 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99508 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99509 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| | 99510 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| | 99511 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 99512 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 99513 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99514 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98156 | } }, | 99515 | } }, |
| 98157 | }, .{ | 99516 | }, .{ |
| 98158 | .dst_constraints = .{ .{ .int = .word }, .any }, | 99517 | .required_features = .{ .sse, null, null, null }, |
| | 99518 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99519 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98159 | .patterns = &.{ | 99520 | .patterns = &.{ |
| 98160 | .{ .src = .{ .to_mem, .to_gpr, .none } }, | 99521 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98161 | }, | 99522 | }, |
| 98162 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99523 | .call_frame = .{ .alignment = .@"16" }, |
| | 99524 | .extra_temps = .{ |
| | 99525 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99526 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| | 99527 | .{ .type = .f32, .kind = .mem }, |
| | 99528 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99529 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| | 99530 | .unused, |
| | 99531 | .unused, |
| | 99532 | .unused, |
| | 99533 | .unused, |
| | 99534 | .unused, |
| | 99535 | .unused, |
| | 99536 | }, |
| | 99537 | .dst_temps = .{ .mem, .unused }, |
| | 99538 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98163 | .each = .{ .once = &.{ | 99539 | .each = .{ .once = &.{ |
| 98164 | .{ ._, ._, .movzx, .dst0d, .memsi(.src0w, .@"2", .src1), ._, ._ }, | 99540 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99541 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99542 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| | 99543 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| | 99544 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 99545 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 99546 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99547 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98165 | } }, | 99548 | } }, |
| 98166 | }, .{ | 99549 | }, .{ |
| 98167 | .dst_constraints = .{ .{ .int = .dword }, .any }, | 99550 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| | 99551 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99552 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98168 | .patterns = &.{ | 99553 | .patterns = &.{ |
| 98169 | .{ .src = .{ .to_mem, .simm32, .none } }, | 99554 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98170 | }, | 99555 | }, |
| 98171 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99556 | .extra_temps = .{ |
| | 99557 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99558 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| | 99559 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 99560 | .unused, |
| | 99561 | .unused, |
| | 99562 | .unused, |
| | 99563 | .unused, |
| | 99564 | .unused, |
| | 99565 | .unused, |
| | 99566 | .unused, |
| | 99567 | .unused, |
| | 99568 | }, |
| | 99569 | .dst_temps = .{ .mem, .unused }, |
| 98172 | .each = .{ .once = &.{ | 99570 | .each = .{ .once = &.{ |
| 98173 | .{ ._, ._, .mov, .dst0d, .mema(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, | 99571 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99572 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99573 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99574 | .{ ._, .v_ps, .cvtph2, .tmp1x, .tmp1q, ._, ._ }, |
| | 99575 | .{ ._, .v_, .cvttss2si, .tmp2q, .tmp1x, ._, ._ }, |
| | 99576 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 99577 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99578 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98174 | } }, | 99579 | } }, |
| 98175 | }, .{ | 99580 | }, .{ |
| 98176 | .dst_constraints = .{ .{ .int = .dword }, .any }, | 99581 | .required_features = .{ .avx, null, null, null }, |
| | 99582 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99583 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98177 | .patterns = &.{ | 99584 | .patterns = &.{ |
| 98178 | .{ .src = .{ .to_mem, .to_gpr, .none } }, | 99585 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98179 | }, | 99586 | }, |
| 98180 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99587 | .call_frame = .{ .alignment = .@"16" }, |
| | 99588 | .extra_temps = .{ |
| | 99589 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99590 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99591 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| | 99592 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| | 99593 | .unused, |
| | 99594 | .unused, |
| | 99595 | .unused, |
| | 99596 | .unused, |
| | 99597 | .unused, |
| | 99598 | .unused, |
| | 99599 | .unused, |
| | 99600 | }, |
| | 99601 | .dst_temps = .{ .mem, .unused }, |
| | 99602 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98181 | .each = .{ .once = &.{ | 99603 | .each = .{ .once = &.{ |
| 98182 | .{ ._, ._, .mov, .dst0d, .memsi(.src0d, .@"4", .src1), ._, ._ }, | 99604 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99605 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99606 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99607 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99608 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99609 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99610 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98183 | } }, | 99611 | } }, |
| 98184 | }, .{ | 99612 | }, .{ |
| 98185 | .dst_constraints = .{ .{ .int = .qword }, .any }, | 99613 | .required_features = .{ .avx, null, null, null }, |
| | 99614 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99615 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98186 | .patterns = &.{ | 99616 | .patterns = &.{ |
| 98187 | .{ .src = .{ .to_mem, .simm32, .none } }, | 99617 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98188 | }, | 99618 | }, |
| 98189 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99619 | .call_frame = .{ .alignment = .@"16" }, |
| | 99620 | .extra_temps = .{ |
| | 99621 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99622 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99623 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| | 99624 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99625 | .unused, |
| | 99626 | .unused, |
| | 99627 | .unused, |
| | 99628 | .unused, |
| | 99629 | .unused, |
| | 99630 | .unused, |
| | 99631 | .unused, |
| | 99632 | }, |
| | 99633 | .dst_temps = .{ .mem, .unused }, |
| | 99634 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98190 | .each = .{ .once = &.{ | 99635 | .each = .{ .once = &.{ |
| 98191 | .{ ._, ._, .mov, .dst0q, .mema(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, | 99636 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99637 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99638 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99639 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99640 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99641 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99642 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98192 | } }, | 99643 | } }, |
| 98193 | }, .{ | 99644 | }, .{ |
| 98194 | .required_features = .{ .@"64bit", null, null, null }, | 99645 | .required_features = .{ .sse2, null, null, null }, |
| 98195 | .dst_constraints = .{ .{ .int = .qword }, .any }, | 99646 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99647 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98196 | .patterns = &.{ | 99648 | .patterns = &.{ |
| 98197 | .{ .src = .{ .to_mem, .to_gpr, .none } }, | 99649 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98198 | }, | | |
| 98199 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 98200 | .each = .{ .once = &.{ | | |
| 98201 | .{ ._, ._, .mov, .dst0q, .memsi(.src0q, .@"8", .src1), ._, ._ }, | | |
| 98202 | } }, | | |
| 98203 | } }) catch |err| switch (err) { | | |
| 98204 | error.SelectFailed => { | | |
| 98205 | const elem_size = res_ty.abiSize(zcu); | | |
| 98206 | const base = try cg.tempAllocReg(.usize, abi.RegisterClass.gp); | | |
| 98207 | while (try ops[0].toBase(false, cg) or | | |
| 98208 | try ops[1].toRegClass(true, .general_purpose, cg)) | | |
| 98209 | {} | | |
| 98210 | const base_reg = base.tracking(cg).short.register.to64(); | | |
| 98211 | const rhs_reg = ops[1].tracking(cg).short.register.to64(); | | |
| 98212 | if (!std.math.isPowerOfTwo(elem_size)) { | | |
| 98213 | try cg.spillEflagsIfOccupied(); | | |
| 98214 | try cg.asmRegisterRegisterImmediate( | | |
| 98215 | .{ .i_, .mul }, | | |
| 98216 | rhs_reg, | | |
| 98217 | rhs_reg, | | |
| 98218 | .u(elem_size), | | |
| 98219 | ); | | |
| 98220 | try cg.asmRegisterMemory( | | |
| 98221 | .{ ._, .lea }, | | |
| 98222 | base_reg, | | |
| 98223 | try ops[0].tracking(cg).short.mem(cg, .{ .index = rhs_reg }), | | |
| 98224 | ); | | |
| 98225 | } else if (elem_size > 8) { | | |
| 98226 | try cg.spillEflagsIfOccupied(); | | |
| 98227 | try cg.asmRegisterImmediate( | | |
| 98228 | .{ ._l, .sh }, | | |
| 98229 | rhs_reg, | | |
| 98230 | .u(std.math.log2_int(u64, elem_size)), | | |
| 98231 | ); | | |
| 98232 | try cg.asmRegisterMemory( | | |
| 98233 | .{ ._, .lea }, | | |
| 98234 | base_reg, | | |
| 98235 | try ops[0].tracking(cg).short.mem(cg, .{ .index = rhs_reg }), | | |
| 98236 | ); | | |
| 98237 | } else try cg.asmRegisterMemory( | | |
| 98238 | .{ ._, .lea }, | | |
| 98239 | base_reg, | | |
| 98240 | try ops[0].tracking(cg).short.mem(cg, .{ | | |
| 98241 | .index = rhs_reg, | | |
| 98242 | .scale = .fromFactor(@intCast(elem_size)), | | |
| 98243 | }), | | |
| 98244 | ); | | |
| 98245 | // Hack around Sema insanity: lhs could be an arbitrarily large comptime-known array | | |
| 98246 | // which could easily get spilled by the upcoming `load`, which would infinite recurse | | |
| 98247 | // since spilling an array requires the same operation that triggered the spill. | | |
| 98248 | try ops[0].die(cg); | | |
| 98249 | ops[0] = base; | | |
| 98250 | res[0] = try ops[0].load(res_ty, .{}, cg); | | |
| 98251 | }, | 99650 | }, |
| 98252 | else => |e| return e, | 99651 | .call_frame = .{ .alignment = .@"16" }, |
| 98253 | }; | 99652 | .extra_temps = .{ |
| 98254 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | 99653 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98255 | }, | 99654 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 98256 | .slice_elem_val, .ptr_elem_val => |air_tag| if (use_old) switch (air_tag) { | 99655 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 98257 | else => unreachable, | 99656 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98258 | .slice_elem_val => try cg.airSliceElemVal(inst), | 99657 | .unused, |
| 98259 | .ptr_elem_val => try cg.airPtrElemVal(inst), | 99658 | .unused, |
| 98260 | } else { | 99659 | .unused, |
| 98261 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | 99660 | .unused, |
| 98262 | const res_ty = cg.typeOf(bin_op.lhs).elemType2(zcu); | 99661 | .unused, |
| 98263 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | 99662 | .unused, |
| 98264 | try ops[0].toSlicePtr(cg); | 99663 | .unused, |
| 98265 | var res: [1]Temp = undefined; | | |
| 98266 | if (!hack_around_sema_opv_bugs or res_ty.hasRuntimeBitsIgnoreComptime(zcu)) cg.select(&res, &.{res_ty}, &ops, comptime &.{ .{ | | |
| 98267 | .dst_constraints = .{ .{ .int = .byte }, .any }, | | |
| 98268 | .patterns = &.{ | | |
| 98269 | .{ .src = .{ .to_gpr, .simm32, .none } }, | | |
| 98270 | }, | 99664 | }, |
| 98271 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99665 | .dst_temps = .{ .mem, .unused }, |
| | 99666 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98272 | .each = .{ .once = &.{ | 99667 | .each = .{ .once = &.{ |
| 98273 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, | 99668 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99669 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 99670 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 99671 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99672 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99673 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99674 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98274 | } }, | 99675 | } }, |
| 98275 | }, .{ | 99676 | }, .{ |
| 98276 | .dst_constraints = .{ .{ .int = .byte }, .any }, | 99677 | .required_features = .{ .sse2, null, null, null }, |
| | 99678 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99679 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98277 | .patterns = &.{ | 99680 | .patterns = &.{ |
| 98278 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | 99681 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98279 | }, | 99682 | }, |
| 98280 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99683 | .call_frame = .{ .alignment = .@"16" }, |
| | 99684 | .extra_temps = .{ |
| | 99685 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99686 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99687 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| | 99688 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99689 | .unused, |
| | 99690 | .unused, |
| | 99691 | .unused, |
| | 99692 | .unused, |
| | 99693 | .unused, |
| | 99694 | .unused, |
| | 99695 | .unused, |
| | 99696 | }, |
| | 99697 | .dst_temps = .{ .mem, .unused }, |
| | 99698 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98281 | .each = .{ .once = &.{ | 99699 | .each = .{ .once = &.{ |
| 98282 | .{ ._, ._, .movzx, .dst0d, .leai(.src0b, .src1), ._, ._ }, | 99700 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99701 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 99702 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 99703 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99704 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99705 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99706 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98283 | } }, | 99707 | } }, |
| 98284 | }, .{ | 99708 | }, .{ |
| 98285 | .dst_constraints = .{ .{ .int = .word }, .any }, | 99709 | .required_features = .{ .sse, null, null, null }, |
| | 99710 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99711 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98286 | .patterns = &.{ | 99712 | .patterns = &.{ |
| 98287 | .{ .src = .{ .to_gpr, .simm32, .none } }, | 99713 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98288 | }, | 99714 | }, |
| 98289 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99715 | .call_frame = .{ .alignment = .@"16" }, |
| | 99716 | .extra_temps = .{ |
| | 99717 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99718 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| | 99719 | .{ .type = .f32, .kind = .mem }, |
| | 99720 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99721 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| | 99722 | .unused, |
| | 99723 | .unused, |
| | 99724 | .unused, |
| | 99725 | .unused, |
| | 99726 | .unused, |
| | 99727 | .unused, |
| | 99728 | }, |
| | 99729 | .dst_temps = .{ .mem, .unused }, |
| | 99730 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98290 | .each = .{ .once = &.{ | 99731 | .each = .{ .once = &.{ |
| 98291 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, | 99732 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99733 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99734 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| | 99735 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| | 99736 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 99737 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 99738 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99739 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98292 | } }, | 99740 | } }, |
| 98293 | }, .{ | 99741 | }, .{ |
| 98294 | .dst_constraints = .{ .{ .int = .word }, .any }, | 99742 | .required_features = .{ .sse, null, null, null }, |
| | 99743 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99744 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98295 | .patterns = &.{ | 99745 | .patterns = &.{ |
| 98296 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | 99746 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98297 | }, | 99747 | }, |
| 98298 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99748 | .call_frame = .{ .alignment = .@"16" }, |
| | 99749 | .extra_temps = .{ |
| | 99750 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99751 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99752 | .{ .type = .f32, .kind = .mem }, |
| | 99753 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99754 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| | 99755 | .unused, |
| | 99756 | .unused, |
| | 99757 | .unused, |
| | 99758 | .unused, |
| | 99759 | .unused, |
| | 99760 | .unused, |
| | 99761 | }, |
| | 99762 | .dst_temps = .{ .mem, .unused }, |
| | 99763 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98299 | .each = .{ .once = &.{ | 99764 | .each = .{ .once = &.{ |
| 98300 | .{ ._, ._, .movzx, .dst0d, .leasi(.src0w, .@"2", .src1), ._, ._ }, | 99765 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99766 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99767 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| | 99768 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| | 99769 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 99770 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 99771 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99772 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98301 | } }, | 99773 | } }, |
| 98302 | }, .{ | 99774 | }, .{ |
| 98303 | .dst_constraints = .{ .{ .int = .dword }, .any }, | 99775 | .required_features = .{ .avx, null, null, null }, |
| | 99776 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99777 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98304 | .patterns = &.{ | 99778 | .patterns = &.{ |
| 98305 | .{ .src = .{ .to_gpr, .simm32, .none } }, | 99779 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98306 | }, | 99780 | }, |
| 98307 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99781 | .call_frame = .{ .alignment = .@"16" }, |
| | 99782 | .extra_temps = .{ |
| | 99783 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99784 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99785 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, |
| | 99786 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99787 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| | 99788 | .unused, |
| | 99789 | .unused, |
| | 99790 | .unused, |
| | 99791 | .unused, |
| | 99792 | .unused, |
| | 99793 | .unused, |
| | 99794 | }, |
| | 99795 | .dst_temps = .{ .mem, .unused }, |
| | 99796 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98308 | .each = .{ .once = &.{ | 99797 | .each = .{ .once = &.{ |
| 98309 | .{ ._, ._, .mov, .dst0d, .leaa(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, | 99798 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99799 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99800 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99801 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99802 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99803 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 99804 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99805 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98310 | } }, | 99806 | } }, |
| 98311 | }, .{ | 99807 | }, .{ |
| 98312 | .dst_constraints = .{ .{ .int = .dword }, .any }, | 99808 | .required_features = .{ .avx, null, null, null }, |
| | 99809 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99810 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98313 | .patterns = &.{ | 99811 | .patterns = &.{ |
| 98314 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | 99812 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98315 | }, | 99813 | }, |
| 98316 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99814 | .call_frame = .{ .alignment = .@"16" }, |
| | 99815 | .extra_temps = .{ |
| | 99816 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99817 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99818 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, |
| | 99819 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99820 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 99821 | .unused, |
| | 99822 | .unused, |
| | 99823 | .unused, |
| | 99824 | .unused, |
| | 99825 | .unused, |
| | 99826 | .unused, |
| | 99827 | }, |
| | 99828 | .dst_temps = .{ .mem, .unused }, |
| | 99829 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98317 | .each = .{ .once = &.{ | 99830 | .each = .{ .once = &.{ |
| 98318 | .{ ._, ._, .mov, .dst0d, .leasi(.src0d, .@"4", .src1), ._, ._ }, | 99831 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99832 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 99833 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 99834 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99835 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99836 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 99837 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99838 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98319 | } }, | 99839 | } }, |
| 98320 | }, .{ | 99840 | }, .{ |
| 98321 | .dst_constraints = .{ .{ .int = .qword }, .any }, | 99841 | .required_features = .{ .sse2, null, null, null }, |
| | 99842 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99843 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98322 | .patterns = &.{ | 99844 | .patterns = &.{ |
| 98323 | .{ .src = .{ .to_gpr, .simm32, .none } }, | 99845 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98324 | }, | 99846 | }, |
| 98325 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99847 | .call_frame = .{ .alignment = .@"16" }, |
| | 99848 | .extra_temps = .{ |
| | 99849 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99850 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99851 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, |
| | 99852 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99853 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| | 99854 | .unused, |
| | 99855 | .unused, |
| | 99856 | .unused, |
| | 99857 | .unused, |
| | 99858 | .unused, |
| | 99859 | .unused, |
| | 99860 | }, |
| | 99861 | .dst_temps = .{ .mem, .unused }, |
| | 99862 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98326 | .each = .{ .once = &.{ | 99863 | .each = .{ .once = &.{ |
| 98327 | .{ ._, ._, .mov, .dst0q, .leaa(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, | 99864 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99865 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 99866 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 99867 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99868 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99869 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 99870 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99871 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98328 | } }, | 99872 | } }, |
| 98329 | }, .{ | 99873 | }, .{ |
| 98330 | .required_features = .{ .@"64bit", null, null, null }, | 99874 | .required_features = .{ .sse2, null, null, null }, |
| 98331 | .dst_constraints = .{ .{ .int = .qword }, .any }, | 99875 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99876 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98332 | .patterns = &.{ | 99877 | .patterns = &.{ |
| 98333 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | 99878 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98334 | }, | 99879 | }, |
| 98335 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99880 | .call_frame = .{ .alignment = .@"16" }, |
| | 99881 | .extra_temps = .{ |
| | 99882 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99883 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99884 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, |
| | 99885 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99886 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 99887 | .unused, |
| | 99888 | .unused, |
| | 99889 | .unused, |
| | 99890 | .unused, |
| | 99891 | .unused, |
| | 99892 | .unused, |
| | 99893 | }, |
| | 99894 | .dst_temps = .{ .mem, .unused }, |
| | 99895 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98336 | .each = .{ .once = &.{ | 99896 | .each = .{ .once = &.{ |
| 98337 | .{ ._, ._, .mov, .dst0q, .leasi(.src0q, .@"8", .src1), ._, ._ }, | 99897 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99898 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 99899 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 99900 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 99901 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 99902 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 99903 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99904 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98338 | } }, | 99905 | } }, |
| 98339 | } }) catch |err| switch (err) { | 99906 | }, .{ |
| 98340 | error.SelectFailed => { | 99907 | .required_features = .{ .sse, null, null, null }, |
| 98341 | const elem_size = res_ty.abiSize(zcu); | 99908 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 98342 | while (true) for (&ops) |*op| { | 99909 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98343 | if (try op.toRegClass(true, .general_purpose, cg)) break; | | |
| 98344 | } else break; | | |
| 98345 | const lhs_reg = ops[0].tracking(cg).short.register.to64(); | | |
| 98346 | const rhs_reg = ops[1].tracking(cg).short.register.to64(); | | |
| 98347 | if (!std.math.isPowerOfTwo(elem_size)) { | | |
| 98348 | try cg.spillEflagsIfOccupied(); | | |
| 98349 | try cg.asmRegisterRegisterImmediate( | | |
| 98350 | .{ .i_, .mul }, | | |
| 98351 | rhs_reg, | | |
| 98352 | rhs_reg, | | |
| 98353 | .u(elem_size), | | |
| 98354 | ); | | |
| 98355 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ | | |
| 98356 | .base = .{ .reg = lhs_reg }, | | |
| 98357 | .mod = .{ .rm = .{ .index = rhs_reg } }, | | |
| 98358 | }); | | |
| 98359 | } else if (elem_size > 8) { | | |
| 98360 | try cg.spillEflagsIfOccupied(); | | |
| 98361 | try cg.asmRegisterImmediate( | | |
| 98362 | .{ ._l, .sh }, | | |
| 98363 | rhs_reg, | | |
| 98364 | .u(std.math.log2_int(u64, elem_size)), | | |
| 98365 | ); | | |
| 98366 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ | | |
| 98367 | .base = .{ .reg = lhs_reg }, | | |
| 98368 | .mod = .{ .rm = .{ .index = rhs_reg } }, | | |
| 98369 | }); | | |
| 98370 | } else try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ | | |
| 98371 | .base = .{ .reg = lhs_reg }, | | |
| 98372 | .mod = .{ .rm = .{ | | |
| 98373 | .index = rhs_reg, | | |
| 98374 | .scale = .fromFactor(@intCast(elem_size)), | | |
| 98375 | } }, | | |
| 98376 | }); | | |
| 98377 | res[0] = try ops[0].load(res_ty, .{}, cg); | | |
| 98378 | }, | | |
| 98379 | else => |e| return e, | | |
| 98380 | } else res[0] = try cg.tempInit(res_ty, .none); | | |
| 98381 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | | |
| 98382 | }, | | |
| 98383 | .slice_elem_ptr, .ptr_elem_ptr => |air_tag| if (use_old) switch (air_tag) { | | |
| 98384 | else => unreachable, | | |
| 98385 | .slice_elem_ptr => try cg.airSliceElemPtr(inst), | | |
| 98386 | .ptr_elem_ptr => try cg.airPtrElemPtr(inst), | | |
| 98387 | } else { | | |
| 98388 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; | | |
| 98389 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; | | |
| 98390 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | | |
| 98391 | try ops[0].toSlicePtr(cg); | | |
| 98392 | const dst_ty = ty_pl.ty.toType(); | | |
| 98393 | if (dst_ty.ptrInfo(zcu).flags.vector_index == .none) zero_offset: { | | |
| 98394 | const elem_size = dst_ty.childType(zcu).abiSize(zcu); | | |
| 98395 | if (hack_around_sema_opv_bugs and elem_size == 0) break :zero_offset; | | |
| 98396 | while (true) for (&ops) |*op| { | | |
| 98397 | if (try op.toRegClass(true, .general_purpose, cg)) break; | | |
| 98398 | } else break; | | |
| 98399 | const lhs_reg = ops[0].tracking(cg).short.register.to64(); | | |
| 98400 | const rhs_reg = ops[1].tracking(cg).short.register.to64(); | | |
| 98401 | if (!std.math.isPowerOfTwo(elem_size)) { | | |
| 98402 | try cg.spillEflagsIfOccupied(); | | |
| 98403 | try cg.asmRegisterRegisterImmediate( | | |
| 98404 | .{ .i_, .mul }, | | |
| 98405 | rhs_reg, | | |
| 98406 | rhs_reg, | | |
| 98407 | .u(elem_size), | | |
| 98408 | ); | | |
| 98409 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ | | |
| 98410 | .base = .{ .reg = lhs_reg }, | | |
| 98411 | .mod = .{ .rm = .{ .index = rhs_reg } }, | | |
| 98412 | }); | | |
| 98413 | } else if (elem_size > 8) { | | |
| 98414 | try cg.spillEflagsIfOccupied(); | | |
| 98415 | try cg.asmRegisterImmediate( | | |
| 98416 | .{ ._l, .sh }, | | |
| 98417 | rhs_reg, | | |
| 98418 | .u(std.math.log2_int(u64, elem_size)), | | |
| 98419 | ); | | |
| 98420 | try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ | | |
| 98421 | .base = .{ .reg = lhs_reg }, | | |
| 98422 | .mod = .{ .rm = .{ .index = rhs_reg } }, | | |
| 98423 | }); | | |
| 98424 | } else try cg.asmRegisterMemory(.{ ._, .lea }, lhs_reg, .{ | | |
| 98425 | .base = .{ .reg = lhs_reg }, | | |
| 98426 | .mod = .{ .rm = .{ | | |
| 98427 | .index = rhs_reg, | | |
| 98428 | .scale = .fromFactor(@intCast(elem_size)), | | |
| 98429 | } }, | | |
| 98430 | }); | | |
| 98431 | } | | |
| 98432 | try ops[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | | |
| 98433 | }, | | |
| 98434 | .array_to_slice => if (use_old) try cg.airArrayToSlice(inst) else { | | |
| 98435 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 98436 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 98437 | var len = try cg.tempInit(.usize, .{ | | |
| 98438 | .immediate = cg.typeOf(ty_op.operand).childType(zcu).arrayLen(zcu), | | |
| 98439 | }); | | |
| 98440 | try ops[0].toPair(&len, cg); | | |
| 98441 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 98442 | }, | | |
| 98443 | .int_from_float, .int_from_float_optimized => |air_tag| if (use_old) try cg.airIntFromFloat(inst) else { | | |
| 98444 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 98445 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 98446 | var res: [1]Temp = undefined; | | |
| 98447 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ | | |
| 98448 | .required_features = .{ .f16c, null, null, null }, | | |
| 98449 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | | |
| 98450 | .dst_constraints = .{ .{ .int = .dword }, .any }, | | |
| 98451 | .patterns = &.{ | 99910 | .patterns = &.{ |
| 98452 | .{ .src = .{ .to_sse, .none, .none } }, | 99911 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98453 | }, | 99912 | }, |
| | 99913 | .call_frame = .{ .alignment = .@"16" }, |
| 98454 | .extra_temps = .{ | 99914 | .extra_temps = .{ |
| 98455 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 99915 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99916 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99917 | .{ .type = .f32, .kind = .mem }, |
| | 99918 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99919 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, |
| | 99920 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 98456 | .unused, | 99921 | .unused, |
| 98457 | .unused, | 99922 | .unused, |
| 98458 | .unused, | 99923 | .unused, |
| 98459 | .unused, | 99924 | .unused, |
| 98460 | .unused, | 99925 | .unused, |
| | 99926 | }, |
| | 99927 | .dst_temps = .{ .mem, .unused }, |
| | 99928 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 99929 | .each = .{ .once = &.{ |
| | 99930 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99931 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99932 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| | 99933 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| | 99934 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 99935 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 99936 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 99937 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 99939 | } }, |
| | 99940 | }, .{ |
| | 99941 | .required_features = .{ .sse, null, null, null }, |
| | 99942 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 99943 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 99944 | .patterns = &.{ |
| | 99945 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 99946 | }, |
| | 99947 | .call_frame = .{ .alignment = .@"16" }, |
| | 99948 | .extra_temps = .{ |
| | 99949 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99950 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 99951 | .{ .type = .f32, .kind = .mem }, |
| | 99952 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99953 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, |
| | 99954 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 98461 | .unused, | 99955 | .unused, |
| 98462 | .unused, | 99956 | .unused, |
| 98463 | .unused, | 99957 | .unused, |
| 98464 | .unused, | 99958 | .unused, |
| 98465 | .unused, | 99959 | .unused, |
| 98466 | }, | 99960 | }, |
| 98467 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 99961 | .dst_temps = .{ .mem, .unused }, |
| | 99962 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98468 | .each = .{ .once = &.{ | 99963 | .each = .{ .once = &.{ |
| 98469 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 99964 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 98470 | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, | 99965 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 99966 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| | 99967 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| | 99968 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 99969 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 99970 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 99971 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 99972 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98471 | } }, | 99973 | } }, |
| 98472 | }, .{ | 99974 | }, .{ |
| 98473 | .required_features = .{ .@"64bit", .f16c, null, null }, | 99975 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 98474 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 99976 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 98475 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, | 99977 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98476 | .patterns = &.{ | 99978 | .patterns = &.{ |
| 98477 | .{ .src = .{ .to_sse, .none, .none } }, | 99979 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98478 | }, | 99980 | }, |
| | 99981 | .call_frame = .{ .alignment = .@"16" }, |
| 98479 | .extra_temps = .{ | 99982 | .extra_temps = .{ |
| 98480 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 99983 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 99984 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 99985 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 99986 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 99987 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 99988 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, |
| 98481 | .unused, | 99989 | .unused, |
| 98482 | .unused, | 99990 | .unused, |
| 98483 | .unused, | 99991 | .unused, |
| 98484 | .unused, | 99992 | .unused, |
| 98485 | .unused, | 99993 | .unused, |
| | 99994 | }, |
| | 99995 | .dst_temps = .{ .mem, .unused }, |
| | 99996 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 99997 | .each = .{ .once = &.{ |
| | 99998 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 99999 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 100000 | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, |
| | 100001 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 100002 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 100003 | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 100004 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 100005 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 100006 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 100007 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 100008 | } }, |
| | 100009 | }, .{ |
| | 100010 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 100011 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 100012 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 100013 | .patterns = &.{ |
| | 100014 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 100015 | }, |
| | 100016 | .call_frame = .{ .alignment = .@"16" }, |
| | 100017 | .extra_temps = .{ |
| | 100018 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100019 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 100020 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 100021 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 100022 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 100023 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, |
| 98486 | .unused, | 100024 | .unused, |
| 98487 | .unused, | 100025 | .unused, |
| 98488 | .unused, | 100026 | .unused, |
| 98489 | .unused, | 100027 | .unused, |
| 98490 | .unused, | 100028 | .unused, |
| 98491 | }, | 100029 | }, |
| 98492 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 100030 | .dst_temps = .{ .mem, .unused }, |
| | 100031 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98493 | .each = .{ .once = &.{ | 100032 | .each = .{ .once = &.{ |
| 98494 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 100033 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 98495 | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, | 100034 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 100035 | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, |
| | 100036 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 100037 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 100038 | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| | 100039 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 100040 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 100041 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 100042 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98496 | } }, | 100043 | } }, |
| 98497 | }, .{ | 100044 | }, .{ |
| 98498 | .required_features = .{ .@"64bit", .f16c, null, null }, | 100045 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 98499 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100046 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 98500 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, | 100047 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98501 | .patterns = &.{ | 100048 | .patterns = &.{ |
| 98502 | .{ .src = .{ .to_sse, .none, .none } }, | 100049 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98503 | }, | 100050 | }, |
| | 100051 | .call_frame = .{ .alignment = .@"16" }, |
| 98504 | .extra_temps = .{ | 100052 | .extra_temps = .{ |
| 98505 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 100053 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100054 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 100055 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 100056 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 100057 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 100058 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, |
| 98506 | .unused, | 100059 | .unused, |
| 98507 | .unused, | 100060 | .unused, |
| 98508 | .unused, | 100061 | .unused, |
| 98509 | .unused, | 100062 | .unused, |
| 98510 | .unused, | 100063 | .unused, |
| | 100064 | }, |
| | 100065 | .dst_temps = .{ .mem, .unused }, |
| | 100066 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 100067 | .each = .{ .once = &.{ |
| | 100068 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 100069 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 100070 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| | 100071 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 100072 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 100073 | .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 100074 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 100075 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 100076 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 100077 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 100078 | } }, |
| | 100079 | }, .{ |
| | 100080 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| | 100081 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 100082 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 100083 | .patterns = &.{ |
| | 100084 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 100085 | }, |
| | 100086 | .call_frame = .{ .alignment = .@"16" }, |
| | 100087 | .extra_temps = .{ |
| | 100088 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100089 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 100090 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 100091 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 100092 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 100093 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, |
| 98511 | .unused, | 100094 | .unused, |
| 98512 | .unused, | 100095 | .unused, |
| 98513 | .unused, | 100096 | .unused, |
| 98514 | .unused, | 100097 | .unused, |
| 98515 | .unused, | 100098 | .unused, |
| 98516 | }, | 100099 | }, |
| 98517 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 100100 | .dst_temps = .{ .mem, .unused }, |
| | 100101 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98518 | .each = .{ .once = &.{ | 100102 | .each = .{ .once = &.{ |
| 98519 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 100103 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 98520 | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, | 100104 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 100105 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| | 100106 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 100107 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 100108 | .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| | 100109 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 100110 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 100111 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 100112 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98521 | } }, | 100113 | } }, |
| 98522 | }, .{ | 100114 | }, .{ |
| 98523 | .required_features = .{ .@"64bit", .f16c, null, null }, | 100115 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98524 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100116 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 98525 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | 100117 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98526 | .patterns = &.{ | 100118 | .patterns = &.{ |
| 98527 | .{ .src = .{ .to_sse, .none, .none } }, | 100119 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98528 | }, | 100120 | }, |
| | 100121 | .call_frame = .{ .alignment = .@"16" }, |
| 98529 | .extra_temps = .{ | 100122 | .extra_temps = .{ |
| 98530 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 100123 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98531 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 100124 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 98532 | .unused, | 100125 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 100126 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 100127 | .{ .type = .f32, .kind = .mem }, |
| | 100128 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 100129 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, |
| 98533 | .unused, | 100130 | .unused, |
| 98534 | .unused, | 100131 | .unused, |
| 98535 | .unused, | 100132 | .unused, |
| 98536 | .unused, | 100133 | .unused, |
| | 100134 | }, |
| | 100135 | .dst_temps = .{ .mem, .unused }, |
| | 100136 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 100137 | .each = .{ .once = &.{ |
| | 100138 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 100139 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 100140 | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 100141 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 100142 | .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| | 100143 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 100144 | .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ }, |
| | 100145 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 100146 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 100147 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 100148 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 100149 | } }, |
| | 100150 | }, .{ |
| | 100151 | .required_features = .{ .@"64bit", .sse, null, null }, |
| | 100152 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| | 100153 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 100154 | .patterns = &.{ |
| | 100155 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 100156 | }, |
| | 100157 | .call_frame = .{ .alignment = .@"16" }, |
| | 100158 | .extra_temps = .{ |
| | 100159 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100160 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 100161 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 100162 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 100163 | .{ .type = .f32, .kind = .mem }, |
| | 100164 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 100165 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, |
| 98537 | .unused, | 100166 | .unused, |
| 98538 | .unused, | 100167 | .unused, |
| 98539 | .unused, | 100168 | .unused, |
| 98540 | .unused, | 100169 | .unused, |
| 98541 | }, | 100170 | }, |
| 98542 | .dst_temps = .{ .mem, .unused }, | 100171 | .dst_temps = .{ .mem, .unused }, |
| 98543 | .clobbers = .{ .eflags = true }, | 100172 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98544 | .each = .{ .once = &.{ | 100173 | .each = .{ .once = &.{ |
| 98545 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 100174 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 98546 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, | 100175 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 98547 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | 100176 | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 98548 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, | 100177 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 98549 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q, ._, ._ }, | 100178 | .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| | 100179 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 100180 | .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ }, |
| | 100181 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 100182 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 100183 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 100184 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98550 | } }, | 100185 | } }, |
| 98551 | }, .{ | 100186 | }, .{ |
| 98552 | .required_features = .{ .@"64bit", .f16c, null, null }, | 100187 | .required_features = .{ .avx, null, null, null }, |
| 98553 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100188 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98554 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 100189 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 98555 | .patterns = &.{ | 100190 | .patterns = &.{ |
| | 100191 | .{ .src = .{ .mem, .none, .none } }, |
| 98556 | .{ .src = .{ .to_sse, .none, .none } }, | 100192 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98557 | }, | 100193 | }, |
| 98558 | .extra_temps = .{ | 100194 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98559 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 100195 | .each = .{ .once = &.{ |
| 98560 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 100196 | .{ ._, .v_, .cvttss2si, .dst0d, .src0d, ._, ._ }, |
| 98561 | .unused, | 100197 | } }, |
| 98562 | .unused, | 100198 | }, .{ |
| 98563 | .unused, | 100199 | .required_features = .{ .sse, null, null, null }, |
| 98564 | .unused, | 100200 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98565 | .unused, | 100201 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 98566 | .unused, | 100202 | .patterns = &.{ |
| 98567 | .unused, | 100203 | .{ .src = .{ .mem, .none, .none } }, |
| 98568 | .unused, | 100204 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98569 | .unused, | | |
| 98570 | }, | 100205 | }, |
| 98571 | .dst_temps = .{ .mem, .unused }, | 100206 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98572 | .each = .{ .once = &.{ | 100207 | .each = .{ .once = &.{ |
| 98573 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 100208 | .{ ._, ._, .cvttss2si, .dst0d, .src0d, ._, ._ }, |
| 98574 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, | | |
| 98575 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | | |
| 98576 | .{ ._, ._, .mov, .memd(.dst0q, 8), .si(0), ._, ._ }, | | |
| 98577 | } }, | 100209 | } }, |
| 98578 | }, .{ | 100210 | }, .{ |
| 98579 | .required_features = .{ .@"64bit", .f16c, null, null }, | 100211 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 98580 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100212 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98581 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 100213 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 98582 | .patterns = &.{ | 100214 | .patterns = &.{ |
| | 100215 | .{ .src = .{ .mem, .none, .none } }, |
| 98583 | .{ .src = .{ .to_sse, .none, .none } }, | 100216 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98584 | }, | 100217 | }, |
| 98585 | .extra_temps = .{ | 100218 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98586 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 100219 | .each = .{ .once = &.{ |
| 98587 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 100220 | .{ ._, .v_, .cvttss2si, .dst0q, .src0d, ._, ._ }, |
| 98588 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 100221 | } }, |
| 98589 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 100222 | }, .{ |
| 98590 | .unused, | 100223 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98591 | .unused, | 100224 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98592 | .unused, | 100225 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 98593 | .unused, | 100226 | .patterns = &.{ |
| 98594 | .unused, | 100227 | .{ .src = .{ .mem, .none, .none } }, |
| 98595 | .unused, | 100228 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98596 | .unused, | | |
| 98597 | }, | 100229 | }, |
| 98598 | .dst_temps = .{ .mem, .unused }, | 100230 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98599 | .clobbers = .{ .eflags = true }, | | |
| 98600 | .each = .{ .once = &.{ | 100231 | .each = .{ .once = &.{ |
| 98601 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 100232 | .{ ._, ._, .cvttss2si, .dst0q, .src0d, ._, ._ }, |
| 98602 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, | | |
| 98603 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | | |
| 98604 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, | | |
| 98605 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, | | |
| 98606 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | | |
| 98607 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 98608 | } }, | 100233 | } }, |
| 98609 | }, .{ | 100234 | }, .{ |
| 98610 | .required_features = .{ .@"64bit", .f16c, null, null }, | 100235 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 98611 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100236 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98612 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 100237 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 98613 | .patterns = &.{ | 100238 | .patterns = &.{ |
| 98614 | .{ .src = .{ .to_sse, .none, .none } }, | 100239 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98615 | }, | 100240 | }, |
| 98616 | .extra_temps = .{ | 100241 | .extra_temps = .{ |
| 98617 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 100242 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98618 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 100243 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98619 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 100244 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98620 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 100245 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 98621 | .unused, | 100246 | .unused, |
| 98622 | .unused, | 100247 | .unused, |
| 98623 | .unused, | 100248 | .unused, |
| ... | @@ -98626,29 +100251,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98626,29 +100251,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98626 | .unused, | 100251 | .unused, |
| 98627 | .unused, | 100252 | .unused, |
| 98628 | }, | 100253 | }, |
| 98629 | .dst_temps = .{ .mem, .unused }, | 100254 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98630 | .clobbers = .{ .eflags = true }, | 100255 | .clobbers = .{ .eflags = true }, |
| 98631 | .each = .{ .once = &.{ | 100256 | .each = .{ .once = &.{ |
| 98632 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, | 100257 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 98633 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, | 100258 | .{ ._, .v_, .cvttss2si, .tmp2q, .src0d, ._, ._ }, |
| 98634 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | 100259 | .{ ._, .v_ss, .sub, .tmp0x, .src0x, .lea(.tmp1d), ._ }, |
| 98635 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 100260 | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, |
| 98636 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, | 100261 | .{ ._, ._, .mov, .tmp1q, .tmp2q, ._, ._ }, |
| 98637 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 100262 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 98638 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | 100263 | .{ ._, ._, .@"and", .dst0q, .tmp2q, ._, ._ }, |
| | 100264 | .{ ._, ._, .@"or", .dst0q, .tmp1q, ._, ._ }, |
| 98639 | } }, | 100265 | } }, |
| 98640 | }, .{ | 100266 | }, .{ |
| 98641 | .required_features = .{ .sse, null, null, null }, | 100267 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98642 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100268 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98643 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, | 100269 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 98644 | .patterns = &.{ | 100270 | .patterns = &.{ |
| 98645 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100271 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 98646 | }, | 100272 | }, |
| 98647 | .call_frame = .{ .alignment = .@"16" }, | | |
| 98648 | .extra_temps = .{ | 100273 | .extra_temps = .{ |
| 98649 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 100274 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98650 | .unused, | 100275 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98651 | .unused, | 100276 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 98652 | .unused, | 100277 | .unused, |
| 98653 | .unused, | 100278 | .unused, |
| 98654 | .unused, | 100279 | .unused, |
| ... | @@ -98658,21 +100283,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98658,21 +100283,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98658 | .unused, | 100283 | .unused, |
| 98659 | .unused, | 100284 | .unused, |
| 98660 | }, | 100285 | }, |
| 98661 | .dst_temps = .{ .{ .reg = .eax }, .unused }, | 100286 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98662 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100287 | .clobbers = .{ .eflags = true }, |
| 98663 | .each = .{ .once = &.{ | 100288 | .each = .{ .once = &.{ |
| 98664 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100289 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 100290 | .{ ._, ._, .cvttss2si, .tmp1q, .src0d, ._, ._ }, |
| | 100291 | .{ ._, ._ss, .sub, .src0x, .lea(.tmp0d), ._, ._ }, |
| | 100292 | .{ ._, ._, .cvttss2si, .dst0q, .src0d, ._, ._ }, |
| | 100293 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| | 100294 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| | 100295 | .{ ._, ._, .@"and", .dst0q, .tmp1q, ._, ._ }, |
| | 100296 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, |
| 98665 | } }, | 100297 | } }, |
| 98666 | }, .{ | 100298 | }, .{ |
| 98667 | .required_features = .{ .sse, null, null, null }, | 100299 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98668 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100300 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98669 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, | 100301 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 98670 | .patterns = &.{ | 100302 | .patterns = &.{ |
| 98671 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100303 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98672 | }, | 100304 | }, |
| 98673 | .call_frame = .{ .alignment = .@"16" }, | 100305 | .call_frame = .{ .alignment = .@"16" }, |
| 98674 | .extra_temps = .{ | 100306 | .extra_temps = .{ |
| 98675 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, | 100307 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 98676 | .unused, | 100308 | .unused, |
| 98677 | .unused, | 100309 | .unused, |
| 98678 | .unused, | 100310 | .unused, |
| ... | @@ -98684,21 +100316,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98684,21 +100316,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98684 | .unused, | 100316 | .unused, |
| 98685 | .unused, | 100317 | .unused, |
| 98686 | }, | 100318 | }, |
| 98687 | .dst_temps = .{ .{ .reg = .eax }, .unused }, | 100319 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 98688 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100320 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98689 | .each = .{ .once = &.{ | 100321 | .each = .{ .once = &.{ |
| 98690 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100322 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98691 | } }, | 100323 | } }, |
| 98692 | }, .{ | 100324 | }, .{ |
| 98693 | .required_features = .{ .@"64bit", .sse, null, null }, | 100325 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98694 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100326 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98695 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, | 100327 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 98696 | .patterns = &.{ | 100328 | .patterns = &.{ |
| 98697 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100329 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98698 | }, | 100330 | }, |
| 98699 | .call_frame = .{ .alignment = .@"16" }, | 100331 | .call_frame = .{ .alignment = .@"16" }, |
| 98700 | .extra_temps = .{ | 100332 | .extra_temps = .{ |
| 98701 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, | 100333 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 98702 | .unused, | 100334 | .unused, |
| 98703 | .unused, | 100335 | .unused, |
| 98704 | .unused, | 100336 | .unused, |
| ... | @@ -98710,100 +100342,146 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98710,100 +100342,146 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98710 | .unused, | 100342 | .unused, |
| 98711 | .unused, | 100343 | .unused, |
| 98712 | }, | 100344 | }, |
| 98713 | .dst_temps = .{ .{ .reg = .rax }, .unused }, | 100345 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 98714 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100346 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98715 | .each = .{ .once = &.{ | 100347 | .each = .{ .once = &.{ |
| 98716 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100348 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98717 | } }, | 100349 | } }, |
| 98718 | }, .{ | 100350 | }, .{ |
| 98719 | .required_features = .{ .@"64bit", .sse, null, null }, | 100351 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 98720 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100352 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98721 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, | 100353 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98722 | .patterns = &.{ | 100354 | .patterns = &.{ |
| 98723 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100355 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98724 | }, | 100356 | }, |
| 98725 | .call_frame = .{ .alignment = .@"16" }, | 100357 | .call_frame = .{ .alignment = .@"16" }, |
| 98726 | .extra_temps = .{ | 100358 | .extra_temps = .{ |
| 98727 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, | 100359 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98728 | .unused, | 100360 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98729 | .unused, | 100361 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 98730 | .unused, | 100362 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 98731 | .unused, | 100363 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 98732 | .unused, | 100364 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98733 | .unused, | 100365 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98734 | .unused, | 100366 | .unused, |
| 98735 | .unused, | 100367 | .unused, |
| 98736 | .unused, | 100368 | .unused, |
| 98737 | .unused, | 100369 | .unused, |
| 98738 | }, | 100370 | }, |
| 98739 | .dst_temps = .{ .{ .reg = .rax }, .unused }, | 100371 | .dst_temps = .{ .mem, .unused }, |
| 98740 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100372 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98741 | .each = .{ .once = &.{ | 100373 | .each = .{ .once = &.{ |
| 98742 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100374 | .{ ._, .v_d, .mov, .tmp0d, .src0x, ._, ._ }, |
| | 100375 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| | 100376 | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, |
| | 100377 | .{ ._, .v_ps, .@"and", .src0x, .src0x, .lea(.tmp1x), ._ }, |
| | 100378 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 100379 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 100380 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 100381 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, |
| | 100382 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, |
| | 100383 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| | 100384 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, |
| | 100385 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, |
| | 100386 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| | 100387 | .{ ._, ._, .lea, .tmp5p, .memd(.dst0, 16), ._, ._ }, |
| | 100388 | .{ ._, ._, .mov, .tmp6d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 100389 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 98743 | } }, | 100390 | } }, |
| 98744 | }, .{ | 100391 | }, .{ |
| 98745 | .required_features = .{ .@"64bit", .sse, null, null }, | 100392 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 98746 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100393 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98747 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | 100394 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98748 | .patterns = &.{ | 100395 | .patterns = &.{ |
| 98749 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100396 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98750 | }, | 100397 | }, |
| 98751 | .call_frame = .{ .alignment = .@"16" }, | 100398 | .call_frame = .{ .alignment = .@"16" }, |
| 98752 | .extra_temps = .{ | 100399 | .extra_temps = .{ |
| 98753 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, | 100400 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98754 | .unused, | 100401 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98755 | .unused, | 100402 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 98756 | .unused, | 100403 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 98757 | .unused, | 100404 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 98758 | .unused, | 100405 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98759 | .unused, | 100406 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98760 | .unused, | 100407 | .unused, |
| 98761 | .unused, | 100408 | .unused, |
| 98762 | .unused, | 100409 | .unused, |
| 98763 | .unused, | 100410 | .unused, |
| 98764 | }, | 100411 | }, |
| 98765 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 100412 | .dst_temps = .{ .mem, .unused }, |
| 98766 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100413 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98767 | .each = .{ .once = &.{ | 100414 | .each = .{ .once = &.{ |
| 98768 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100415 | .{ ._, ._d, .mov, .tmp0d, .src0x, ._, ._ }, |
| | 100416 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| | 100417 | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, |
| | 100418 | .{ ._, ._ps, .@"and", .src0x, .lea(.tmp1x), ._, ._ }, |
| | 100419 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 100420 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 100421 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 100422 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, |
| | 100423 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, |
| | 100424 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| | 100425 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, |
| | 100426 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, |
| | 100427 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| | 100428 | .{ ._, ._, .lea, .tmp5p, .memd(.dst0, 16), ._, ._ }, |
| | 100429 | .{ ._, ._, .mov, .tmp6d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 100430 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 98769 | } }, | 100431 | } }, |
| 98770 | }, .{ | 100432 | }, .{ |
| 98771 | .required_features = .{ .@"64bit", .sse, null, null }, | 100433 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98772 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100434 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98773 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 100435 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98774 | .patterns = &.{ | 100436 | .patterns = &.{ |
| 98775 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100437 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98776 | }, | 100438 | }, |
| 98777 | .call_frame = .{ .alignment = .@"16" }, | 100439 | .call_frame = .{ .alignment = .@"16" }, |
| 98778 | .extra_temps = .{ | 100440 | .extra_temps = .{ |
| 98779 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, | 100441 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 98780 | .unused, | 100442 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98781 | .unused, | 100443 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 98782 | .unused, | 100444 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 98783 | .unused, | 100445 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98784 | .unused, | 100446 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 98785 | .unused, | 100447 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98786 | .unused, | 100448 | .unused, |
| 98787 | .unused, | 100449 | .unused, |
| 98788 | .unused, | 100450 | .unused, |
| 98789 | .unused, | 100451 | .unused, |
| 98790 | }, | 100452 | }, |
| 98791 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 100453 | .dst_temps = .{ .mem, .unused }, |
| 98792 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100454 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98793 | .each = .{ .once = &.{ | 100455 | .each = .{ .once = &.{ |
| 98794 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100456 | .{ ._, ._ss, .mov, .tmp0x, .src0d, ._, ._ }, |
| | 100457 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| | 100458 | .{ ._, ._ps, .@"and", .tmp0x, .lea(.tmp1x), ._, ._ }, |
| | 100459 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 100460 | .{ ._, ._d, .movsx, .tmp4q, .src0d, ._, ._ }, |
| | 100461 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| | 100462 | .{ ._, ._, .xor, .tmp1q, .tmp4q, ._, ._ }, |
| | 100463 | .{ ._, ._, .xor, .tmp5q, .tmp4q, ._, ._ }, |
| | 100464 | .{ ._, ._, .sub, .tmp1q, .tmp4q, ._, ._ }, |
| | 100465 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| | 100466 | .{ ._, ._, .sbb, .tmp5q, .tmp4q, ._, ._ }, |
| | 100467 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp5q, ._, ._ }, |
| | 100468 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| | 100469 | .{ ._, ._, .lea, .tmp6p, .memd(.dst0, 16), ._, ._ }, |
| | 100470 | .{ ._, ._, .mov, .tmp4d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 100471 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 98795 | } }, | 100472 | } }, |
| 98796 | }, .{ | 100473 | }, .{ |
| 98797 | .required_features = .{ .@"64bit", .sse, null, null }, | 100474 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98798 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100475 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 98799 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 100476 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98800 | .patterns = &.{ | 100477 | .patterns = &.{ |
| 98801 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100478 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98802 | }, | 100479 | }, |
| 98803 | .call_frame = .{ .alignment = .@"16" }, | 100480 | .call_frame = .{ .alignment = .@"16" }, |
| 98804 | .extra_temps = .{ | 100481 | .extra_temps = .{ |
| 98805 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, | 100482 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 98806 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 100483 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| | 100484 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 98807 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 100485 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98808 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 100486 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98809 | .unused, | 100487 | .unused, |
| ... | @@ -98812,31 +100490,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98812,31 +100490,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98812 | .unused, | 100490 | .unused, |
| 98813 | .unused, | 100491 | .unused, |
| 98814 | .unused, | 100492 | .unused, |
| 98815 | .unused, | | |
| 98816 | }, | 100493 | }, |
| 98817 | .dst_temps = .{ .mem, .unused }, | 100494 | .dst_temps = .{ .mem, .unused }, |
| 98818 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100495 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98819 | .each = .{ .once = &.{ | 100496 | .each = .{ .once = &.{ |
| 98820 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100497 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98821 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | 100498 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98822 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, | 100499 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp2q, ._, ._ }, |
| 98823 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, | 100500 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 98824 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 100501 | .{ ._, ._, .lea, .tmp3p, .memd(.dst0, 16), ._, ._ }, |
| | 100502 | .{ ._, ._, .mov, .tmp4d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 98825 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | 100503 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 98826 | } }, | 100504 | } }, |
| 98827 | }, .{ | 100505 | }, .{ |
| 98828 | .required_features = .{ .@"64bit", .sse, null, null }, | 100506 | .required_features = .{ .avx, null, null, null }, |
| 98829 | .src_constraints = .{ .{ .float = .word }, .any, .any }, | 100507 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 98830 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 100508 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 98831 | .patterns = &.{ | 100509 | .patterns = &.{ |
| 98832 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 100510 | .{ .src = .{ .mem, .none, .none } }, |
| | 100511 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98833 | }, | 100512 | }, |
| 98834 | .call_frame = .{ .alignment = .@"16" }, | | |
| 98835 | .extra_temps = .{ | 100513 | .extra_temps = .{ |
| 98836 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, | 100514 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 98837 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 100515 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 98838 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 100516 | .unused, |
| 98839 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 100517 | .unused, |
| 98840 | .unused, | 100518 | .unused, |
| 98841 | .unused, | 100519 | .unused, |
| 98842 | .unused, | 100520 | .unused, |
| ... | @@ -98845,19 +100523,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98845,19 +100523,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98845 | .unused, | 100523 | .unused, |
| 98846 | .unused, | 100524 | .unused, |
| 98847 | }, | 100525 | }, |
| 98848 | .dst_temps = .{ .mem, .unused }, | 100526 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98849 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 98850 | .each = .{ .once = &.{ | 100527 | .each = .{ .once = &.{ |
| 98851 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 100528 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98852 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | 100529 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 98853 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 100530 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 98854 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, | | |
| 98855 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | | |
| 98856 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 98857 | } }, | 100531 | } }, |
| 98858 | }, .{ | 100532 | }, .{ |
| 98859 | .required_features = .{ .f16c, null, null, null }, | 100533 | .required_features = .{ .ssse3, null, null, null }, |
| 98860 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, | 100534 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 98861 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 100535 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 98862 | .patterns = &.{ | 100536 | .patterns = &.{ |
| 98863 | .{ .src = .{ .mem, .none, .none } }, | 100537 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -98879,13 +100553,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98879,13 +100553,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98879 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 100553 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98880 | .each = .{ .once = &.{ | 100554 | .each = .{ .once = &.{ |
| 98881 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 100555 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98882 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | 100556 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 98883 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, | 100557 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 98884 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | | |
| 98885 | } }, | 100558 | } }, |
| 98886 | }, .{ | 100559 | }, .{ |
| 98887 | .required_features = .{ .f16c, null, null, null }, | 100560 | .required_features = .{ .avx, null, null, null }, |
| 98888 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, | 100561 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 98889 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 100562 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 98890 | .patterns = &.{ | 100563 | .patterns = &.{ |
| 98891 | .{ .src = .{ .to_mem, .none, .none } }, | 100564 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -98908,26 +100581,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98908,26 +100581,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98908 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 100581 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98909 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 100582 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 98910 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 100583 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98911 | .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 100584 | .{ .@"0:", .v_, .cvttps2dq, .tmp3x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 98912 | .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ }, | | |
| 98913 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, | 100585 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 98914 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 100586 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 98915 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 100587 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 98916 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100588 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98917 | } }, | 100589 | } }, |
| 98918 | }, .{ | 100590 | }, .{ |
| 98919 | .required_features = .{ .avx, .slow_incdec, null, null }, | 100591 | .required_features = .{ .ssse3, null, null, null }, |
| 98920 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100592 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 100593 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| | 100594 | .patterns = &.{ |
| | 100595 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 100596 | }, |
| | 100597 | .extra_temps = .{ |
| | 100598 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100599 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| | 100600 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 100601 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 100602 | .unused, |
| | 100603 | .unused, |
| | 100604 | .unused, |
| | 100605 | .unused, |
| | 100606 | .unused, |
| | 100607 | .unused, |
| | 100608 | .unused, |
| | 100609 | }, |
| | 100610 | .dst_temps = .{ .mem, .unused }, |
| | 100611 | .each = .{ .once = &.{ |
| | 100612 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 100613 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 100614 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 100615 | .{ .@"0:", ._, .cvttps2dq, .tmp3x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 100616 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, |
| | 100617 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 100618 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 100619 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 100620 | } }, |
| | 100621 | }, .{ |
| | 100622 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| | 100623 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 98921 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 100624 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 98922 | .patterns = &.{ | 100625 | .patterns = &.{ |
| 98923 | .{ .src = .{ .to_mem, .none, .none } }, | 100626 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98924 | }, | 100627 | }, |
| 98925 | .call_frame = .{ .alignment = .@"16" }, | | |
| 98926 | .extra_temps = .{ | 100628 | .extra_temps = .{ |
| 98927 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100629 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98928 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 100630 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 98929 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 100631 | .unused, |
| 98930 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100632 | .unused, |
| 98931 | .unused, | 100633 | .unused, |
| 98932 | .unused, | 100634 | .unused, |
| 98933 | .unused, | 100635 | .unused, |
| ... | @@ -98937,29 +100639,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98937,29 +100639,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98937 | .unused, | 100639 | .unused, |
| 98938 | }, | 100640 | }, |
| 98939 | .dst_temps = .{ .mem, .unused }, | 100641 | .dst_temps = .{ .mem, .unused }, |
| 98940 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 98941 | .each = .{ .once = &.{ | 100642 | .each = .{ .once = &.{ |
| 98942 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 100643 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98943 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 100644 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 98944 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, | 100645 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 98945 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 98946 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | | |
| 98947 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 100646 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 98948 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100647 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98949 | } }, | 100648 | } }, |
| 98950 | }, .{ | 100649 | }, .{ |
| 98951 | .required_features = .{ .avx, null, null, null }, | 100650 | .required_features = .{ .sse, null, null, null }, |
| 98952 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100651 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 98953 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 100652 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 98954 | .patterns = &.{ | 100653 | .patterns = &.{ |
| 98955 | .{ .src = .{ .to_mem, .none, .none } }, | 100654 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98956 | }, | 100655 | }, |
| 98957 | .call_frame = .{ .alignment = .@"16" }, | | |
| 98958 | .extra_temps = .{ | 100656 | .extra_temps = .{ |
| 98959 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100657 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98960 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 100658 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 98961 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 100659 | .unused, |
| 98962 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100660 | .unused, |
| 98963 | .unused, | 100661 | .unused, |
| 98964 | .unused, | 100662 | .unused, |
| 98965 | .unused, | 100663 | .unused, |
| ... | @@ -98969,19 +100667,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98969,19 +100667,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98969 | .unused, | 100667 | .unused, |
| 98970 | }, | 100668 | }, |
| 98971 | .dst_temps = .{ .mem, .unused }, | 100669 | .dst_temps = .{ .mem, .unused }, |
| 98972 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 98973 | .each = .{ .once = &.{ | 100670 | .each = .{ .once = &.{ |
| 98974 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 100671 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98975 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 100672 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 98976 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, | 100673 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 98977 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 98978 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | | |
| 98979 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 100674 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 98980 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 100675 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 98981 | } }, | 100676 | } }, |
| 98982 | }, .{ | 100677 | }, .{ |
| 98983 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 100678 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 98984 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100679 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 98985 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 100680 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 98986 | .patterns = &.{ | 100681 | .patterns = &.{ |
| 98987 | .{ .src = .{ .to_mem, .none, .none } }, | 100682 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -98989,8 +100684,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -98989,8 +100684,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98989 | .call_frame = .{ .alignment = .@"16" }, | 100684 | .call_frame = .{ .alignment = .@"16" }, |
| 98990 | .extra_temps = .{ | 100685 | .extra_temps = .{ |
| 98991 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100686 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98992 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 100687 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 98993 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 100688 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 98994 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100689 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 98995 | .unused, | 100690 | .unused, |
| 98996 | .unused, | 100691 | .unused, |
| ... | @@ -99004,16 +100699,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99004,16 +100699,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99004 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100699 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99005 | .each = .{ .once = &.{ | 100700 | .each = .{ .once = &.{ |
| 99006 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 100701 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99007 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 100702 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99008 | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99009 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 100703 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99010 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 100704 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99011 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 100705 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99012 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100706 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99013 | } }, | 100707 | } }, |
| 99014 | }, .{ | 100708 | }, .{ |
| 99015 | .required_features = .{ .sse2, null, null, null }, | 100709 | .required_features = .{ .avx, null, null, null }, |
| 99016 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100710 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99017 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 100711 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 99018 | .patterns = &.{ | 100712 | .patterns = &.{ |
| 99019 | .{ .src = .{ .to_mem, .none, .none } }, | 100713 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99021,8 +100715,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99021,8 +100715,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99021 | .call_frame = .{ .alignment = .@"16" }, | 100715 | .call_frame = .{ .alignment = .@"16" }, |
| 99022 | .extra_temps = .{ | 100716 | .extra_temps = .{ |
| 99023 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100717 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99024 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 100718 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99025 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 100719 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99026 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100720 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99027 | .unused, | 100721 | .unused, |
| 99028 | .unused, | 100722 | .unused, |
| ... | @@ -99036,8 +100730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99036,8 +100730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99036 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100730 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99037 | .each = .{ .once = &.{ | 100731 | .each = .{ .once = &.{ |
| 99038 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 100732 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99039 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 100733 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99040 | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99041 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 100734 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99042 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 100735 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99043 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 100736 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| ... | @@ -99045,7 +100738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99045,7 +100738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99045 | } }, | 100738 | } }, |
| 99046 | }, .{ | 100739 | }, .{ |
| 99047 | .required_features = .{ .sse, .slow_incdec, null, null }, | 100740 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 99048 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100741 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99049 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 100742 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 99050 | .patterns = &.{ | 100743 | .patterns = &.{ |
| 99051 | .{ .src = .{ .to_mem, .none, .none } }, | 100744 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99053,10 +100746,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99053,10 +100746,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99053 | .call_frame = .{ .alignment = .@"16" }, | 100746 | .call_frame = .{ .alignment = .@"16" }, |
| 99054 | .extra_temps = .{ | 100747 | .extra_temps = .{ |
| 99055 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100748 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100749 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 100750 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99056 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100751 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99057 | .{ .type = .f32, .kind = .mem }, | 100752 | .unused, |
| 99058 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99059 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | | |
| 99060 | .unused, | 100753 | .unused, |
| 99061 | .unused, | 100754 | .unused, |
| 99062 | .unused, | 100755 | .unused, |
| ... | @@ -99068,17 +100761,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99068,17 +100761,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99068 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100761 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99069 | .each = .{ .once = &.{ | 100762 | .each = .{ .once = &.{ |
| 99070 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 100763 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99071 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 100764 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99072 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 100765 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99073 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 100766 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99074 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 99075 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | | |
| 99076 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 100767 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99077 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100768 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99078 | } }, | 100769 | } }, |
| 99079 | }, .{ | 100770 | }, .{ |
| 99080 | .required_features = .{ .sse, null, null, null }, | 100771 | .required_features = .{ .sse, null, null, null }, |
| 99081 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100772 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99082 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 100773 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 99083 | .patterns = &.{ | 100774 | .patterns = &.{ |
| 99084 | .{ .src = .{ .to_mem, .none, .none } }, | 100775 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99086,10 +100777,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99086,10 +100777,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99086 | .call_frame = .{ .alignment = .@"16" }, | 100777 | .call_frame = .{ .alignment = .@"16" }, |
| 99087 | .extra_temps = .{ | 100778 | .extra_temps = .{ |
| 99088 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100779 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100780 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 100781 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99089 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100782 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99090 | .{ .type = .f32, .kind = .mem }, | 100783 | .unused, |
| 99091 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99092 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | | |
| 99093 | .unused, | 100784 | .unused, |
| 99094 | .unused, | 100785 | .unused, |
| 99095 | .unused, | 100786 | .unused, |
| ... | @@ -99101,31 +100792,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99101,31 +100792,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99101 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100792 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99102 | .each = .{ .once = &.{ | 100793 | .each = .{ .once = &.{ |
| 99103 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 100794 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99104 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 100795 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99105 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 100796 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99106 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 100797 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99107 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 100798 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 99108 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | | |
| 99109 | .{ ._, ._c, .in, .tmp0p, .si(1), ._, ._ }, | | |
| 99110 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 100799 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 99111 | } }, | 100800 | } }, |
| 99112 | }, .{ | 100801 | }, .{ |
| 99113 | .required_features = .{ .f16c, null, null, null }, | 100802 | .required_features = .{ .avx, null, null, null }, |
| 99114 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, | 100803 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99115 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | 100804 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99116 | .patterns = &.{ | 100805 | .patterns = &.{ |
| 99117 | .{ .src = .{ .mem, .none, .none } }, | 100806 | .{ .src = .{ .mem, .none, .none } }, |
| 99118 | .{ .src = .{ .to_sse, .none, .none } }, | 100807 | .{ .src = .{ .to_sse, .none, .none } }, |
| 99119 | }, | 100808 | }, |
| 99120 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 100809 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99121 | .each = .{ .once = &.{ | 100810 | .each = .{ .once = &.{ |
| 99122 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | 100811 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 99123 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, | | |
| 99124 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, | 100812 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, |
| 99125 | } }, | 100813 | } }, |
| 99126 | }, .{ | 100814 | }, .{ |
| 99127 | .required_features = .{ .f16c, null, null, null }, | 100815 | .required_features = .{ .sse2, null, null, null }, |
| 99128 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, | 100816 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 100817 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| | 100818 | .patterns = &.{ |
| | 100819 | .{ .src = .{ .mem, .none, .none } }, |
| | 100820 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 100821 | }, |
| | 100822 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 100823 | .each = .{ .once = &.{ |
| | 100824 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| | 100825 | .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, |
| | 100826 | } }, |
| | 100827 | }, .{ |
| | 100828 | .required_features = .{ .avx, null, null, null }, |
| | 100829 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99129 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | 100830 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99130 | .patterns = &.{ | 100831 | .patterns = &.{ |
| 99131 | .{ .src = .{ .mem, .none, .none } }, | 100832 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -99133,13 +100834,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99133,13 +100834,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99133 | }, | 100834 | }, |
| 99134 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 100835 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99135 | .each = .{ .once = &.{ | 100836 | .each = .{ .once = &.{ |
| 99136 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, | 100837 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 99137 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, | | |
| 99138 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, | 100838 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, |
| 99139 | } }, | 100839 | } }, |
| 99140 | }, .{ | 100840 | }, .{ |
| 99141 | .required_features = .{ .f16c, null, null, null }, | 100841 | .required_features = .{ .sse4_1, null, null, null }, |
| 99142 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, | 100842 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| | 100843 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| | 100844 | .patterns = &.{ |
| | 100845 | .{ .src = .{ .mem, .none, .none } }, |
| | 100846 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 100847 | }, |
| | 100848 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 100849 | .each = .{ .once = &.{ |
| | 100850 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| | 100851 | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, |
| | 100852 | } }, |
| | 100853 | }, .{ |
| | 100854 | .required_features = .{ .avx, null, null, null }, |
| | 100855 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99143 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 100856 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99144 | .patterns = &.{ | 100857 | .patterns = &.{ |
| 99145 | .{ .src = .{ .to_mem, .none, .none } }, | 100858 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99159,24 +100872,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99159,24 +100872,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99159 | }, | 100872 | }, |
| 99160 | .dst_temps = .{ .mem, .unused }, | 100873 | .dst_temps = .{ .mem, .unused }, |
| 99161 | .each = .{ .once = &.{ | 100874 | .each = .{ .once = &.{ |
| 99162 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 100875 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99163 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 100876 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99164 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, | | |
| 99165 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, | 100877 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99166 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 100878 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99167 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 100879 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99168 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100880 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99169 | } }, | 100881 | } }, |
| 99170 | }, .{ | 100882 | }, .{ |
| 99171 | .required_features = .{ .f16c, null, null, null }, | 100883 | .required_features = .{ .sse2, null, null, null }, |
| 99172 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, | 100884 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99173 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | 100885 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99174 | .patterns = &.{ | 100886 | .patterns = &.{ |
| 99175 | .{ .src = .{ .to_mem, .none, .none } }, | 100887 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99176 | }, | 100888 | }, |
| 99177 | .extra_temps = .{ | 100889 | .extra_temps = .{ |
| 99178 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100890 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99179 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 100891 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 99180 | .unused, | 100892 | .unused, |
| 99181 | .unused, | 100893 | .unused, |
| 99182 | .unused, | 100894 | .unused, |
| ... | @@ -99189,27 +100901,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99189,27 +100901,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99189 | }, | 100901 | }, |
| 99190 | .dst_temps = .{ .mem, .unused }, | 100902 | .dst_temps = .{ .mem, .unused }, |
| 99191 | .each = .{ .once = &.{ | 100903 | .each = .{ .once = &.{ |
| 99192 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 100904 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99193 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 100905 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99194 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, | 100906 | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, |
| 99195 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, | 100907 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99196 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 99197 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 100908 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99198 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100909 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99199 | } }, | 100910 | } }, |
| 99200 | }, .{ | 100911 | }, .{ |
| 99201 | .required_features = .{ .avx, null, null, null }, | 100912 | .required_features = .{ .avx, null, null, null }, |
| 99202 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100913 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99203 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 100914 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99204 | .patterns = &.{ | 100915 | .patterns = &.{ |
| 99205 | .{ .src = .{ .to_mem, .none, .none } }, | 100916 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99206 | }, | 100917 | }, |
| 99207 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99208 | .extra_temps = .{ | 100918 | .extra_temps = .{ |
| 99209 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100919 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99210 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 100920 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 99211 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 100921 | .unused, |
| 99212 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100922 | .unused, |
| 99213 | .unused, | 100923 | .unused, |
| 99214 | .unused, | 100924 | .unused, |
| 99215 | .unused, | 100925 | .unused, |
| ... | @@ -99219,29 +100929,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99219,29 +100929,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99219 | .unused, | 100929 | .unused, |
| 99220 | }, | 100930 | }, |
| 99221 | .dst_temps = .{ .mem, .unused }, | 100931 | .dst_temps = .{ .mem, .unused }, |
| 99222 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99223 | .each = .{ .once = &.{ | 100932 | .each = .{ .once = &.{ |
| 99224 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 100933 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99225 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 100934 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99226 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 100935 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99227 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 100936 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99228 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 100937 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99229 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99230 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99231 | } }, | 100939 | } }, |
| 99232 | }, .{ | 100940 | }, .{ |
| 99233 | .required_features = .{ .sse2, null, null, null }, | 100941 | .required_features = .{ .sse4_1, null, null, null }, |
| 99234 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100942 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99235 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 100943 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99236 | .patterns = &.{ | 100944 | .patterns = &.{ |
| 99237 | .{ .src = .{ .to_mem, .none, .none } }, | 100945 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99238 | }, | 100946 | }, |
| 99239 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99240 | .extra_temps = .{ | 100947 | .extra_temps = .{ |
| 99241 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100948 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99242 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 100949 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 99243 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 100950 | .unused, |
| 99244 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100951 | .unused, |
| 99245 | .unused, | 100952 | .unused, |
| 99246 | .unused, | 100953 | .unused, |
| 99247 | .unused, | 100954 | .unused, |
| ... | @@ -99251,19 +100958,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99251,19 +100958,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99251 | .unused, | 100958 | .unused, |
| 99252 | }, | 100959 | }, |
| 99253 | .dst_temps = .{ .mem, .unused }, | 100960 | .dst_temps = .{ .mem, .unused }, |
| 99254 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99255 | .each = .{ .once = &.{ | 100961 | .each = .{ .once = &.{ |
| 99256 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 100962 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99257 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 100963 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99258 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | 100964 | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, |
| 99259 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 100965 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99260 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 100966 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99261 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99262 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100967 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99263 | } }, | 100968 | } }, |
| 99264 | }, .{ | 100969 | }, .{ |
| 99265 | .required_features = .{ .sse, null, null, null }, | 100970 | .required_features = .{ .avx, null, null, null }, |
| 99266 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 100971 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99267 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 100972 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 99268 | .patterns = &.{ | 100973 | .patterns = &.{ |
| 99269 | .{ .src = .{ .to_mem, .none, .none } }, | 100974 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99271,10 +100976,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99271,10 +100976,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99271 | .call_frame = .{ .alignment = .@"16" }, | 100976 | .call_frame = .{ .alignment = .@"16" }, |
| 99272 | .extra_temps = .{ | 100977 | .extra_temps = .{ |
| 99273 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 100978 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 100979 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 100980 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99274 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 100981 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99275 | .{ .type = .f32, .kind = .mem }, | 100982 | .unused, |
| 99276 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99277 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | | |
| 99278 | .unused, | 100983 | .unused, |
| 99279 | .unused, | 100984 | .unused, |
| 99280 | .unused, | 100985 | .unused, |
| ... | @@ -99285,27 +100990,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99285,27 +100990,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99285 | .dst_temps = .{ .mem, .unused }, | 100990 | .dst_temps = .{ .mem, .unused }, |
| 99286 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 100991 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99287 | .each = .{ .once = &.{ | 100992 | .each = .{ .once = &.{ |
| 99288 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 100993 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99289 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 100994 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99290 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 100995 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99291 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 100996 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99292 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 99293 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 99294 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 100997 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99295 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 100998 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99296 | } }, | 100999 | } }, |
| 99297 | }, .{ | 101000 | }, .{ |
| 99298 | .required_features = .{ .f16c, null, null, null }, | 101001 | .required_features = .{ .sse, null, null, null }, |
| 99299 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, | 101002 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99300 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 101003 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 99301 | .patterns = &.{ | 101004 | .patterns = &.{ |
| 99302 | .{ .src = .{ .to_mem, .none, .none } }, | 101005 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99303 | }, | 101006 | }, |
| | 101007 | .call_frame = .{ .alignment = .@"16" }, |
| 99304 | .extra_temps = .{ | 101008 | .extra_temps = .{ |
| 99305 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101009 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99306 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 101010 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99307 | .unused, | 101011 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99308 | .unused, | 101012 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99309 | .unused, | 101013 | .unused, |
| 99310 | .unused, | 101014 | .unused, |
| 99311 | .unused, | 101015 | .unused, |
| ... | @@ -99315,58 +101019,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99315,58 +101019,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99315 | .unused, | 101019 | .unused, |
| 99316 | }, | 101020 | }, |
| 99317 | .dst_temps = .{ .mem, .unused }, | 101021 | .dst_temps = .{ .mem, .unused }, |
| | 101022 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99318 | .each = .{ .once = &.{ | 101023 | .each = .{ .once = &.{ |
| 99319 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101024 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99320 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 101025 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99321 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, | 101026 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99322 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 101027 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99323 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 101028 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99324 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101029 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99325 | } }, | 101030 | } }, |
| 99326 | }, .{ | 101031 | }, .{ |
| 99327 | .required_features = .{ .f16c, null, null, null }, | 101032 | .required_features = .{ .avx, null, null, null }, |
| 99328 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101033 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99329 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 101034 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 99330 | .patterns = &.{ | 101035 | .patterns = &.{ |
| 99331 | .{ .src = .{ .to_mem, .none, .none } }, | 101036 | .{ .src = .{ .mem, .none, .none } }, |
| | 101037 | .{ .src = .{ .to_sse, .none, .none } }, |
| 99332 | }, | 101038 | }, |
| 99333 | .extra_temps = .{ | 101039 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99334 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101040 | .each = .{ .once = &.{ |
| 99335 | .{ .type = .f32, .kind = .{ .rc = .sse } }, | 101041 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 99336 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 101042 | } }, |
| 99337 | .unused, | 101043 | }, .{ |
| 99338 | .unused, | 101044 | .required_features = .{ .sse2, null, null, null }, |
| 99339 | .unused, | 101045 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99340 | .unused, | 101046 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 99341 | .unused, | 101047 | .patterns = &.{ |
| 99342 | .unused, | 101048 | .{ .src = .{ .mem, .none, .none } }, |
| 99343 | .unused, | 101049 | .{ .src = .{ .to_sse, .none, .none } }, |
| 99344 | .unused, | | |
| 99345 | }, | 101050 | }, |
| 99346 | .dst_temps = .{ .mem, .unused }, | 101051 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99347 | .each = .{ .once = &.{ | 101052 | .each = .{ .once = &.{ |
| 99348 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101053 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 99349 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | | |
| 99350 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | | |
| 99351 | .{ ._, .v_ps, .cvtph2, .tmp1x, .tmp1q, ._, ._ }, | | |
| 99352 | .{ ._, .v_, .cvttss2si, .tmp2q, .tmp1x, ._, ._ }, | | |
| 99353 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, | | |
| 99354 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99355 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 99356 | } }, | 101054 | } }, |
| 99357 | }, .{ | 101055 | }, .{ |
| 99358 | .required_features = .{ .avx, null, null, null }, | 101056 | .required_features = .{ .avx, null, null, null }, |
| 99359 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101057 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99360 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 101058 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 99361 | .patterns = &.{ | 101059 | .patterns = &.{ |
| 99362 | .{ .src = .{ .to_mem, .none, .none } }, | 101060 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99363 | }, | 101061 | }, |
| 99364 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99365 | .extra_temps = .{ | 101062 | .extra_temps = .{ |
| 99366 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101063 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99367 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101064 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 99368 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 101065 | .unused, |
| 99369 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 101066 | .unused, |
| 99370 | .unused, | 101067 | .unused, |
| 99371 | .unused, | 101068 | .unused, |
| 99372 | .unused, | 101069 | .unused, |
| ... | @@ -99376,29 +101073,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99376,29 +101073,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99376 | .unused, | 101073 | .unused, |
| 99377 | }, | 101074 | }, |
| 99378 | .dst_temps = .{ .mem, .unused }, | 101075 | .dst_temps = .{ .mem, .unused }, |
| 99379 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99380 | .each = .{ .once = &.{ | 101076 | .each = .{ .once = &.{ |
| 99381 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101077 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99382 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 101078 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99383 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 101079 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99384 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101080 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 99385 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | | |
| 99386 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99387 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101081 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99388 | } }, | 101082 | } }, |
| 99389 | }, .{ | 101083 | }, .{ |
| 99390 | .required_features = .{ .avx, null, null, null }, | 101084 | .required_features = .{ .sse2, null, null, null }, |
| 99391 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101085 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 99392 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 101086 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 99393 | .patterns = &.{ | 101087 | .patterns = &.{ |
| 99394 | .{ .src = .{ .to_mem, .none, .none } }, | 101088 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99395 | }, | 101089 | }, |
| 99396 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99397 | .extra_temps = .{ | 101090 | .extra_temps = .{ |
| 99398 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101091 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99399 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101092 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 99400 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, | 101093 | .unused, |
| 99401 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 101094 | .unused, |
| 99402 | .unused, | 101095 | .unused, |
| 99403 | .unused, | 101096 | .unused, |
| 99404 | .unused, | 101097 | .unused, |
| ... | @@ -99408,19 +101101,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99408,19 +101101,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99408 | .unused, | 101101 | .unused, |
| 99409 | }, | 101102 | }, |
| 99410 | .dst_temps = .{ .mem, .unused }, | 101103 | .dst_temps = .{ .mem, .unused }, |
| 99411 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99412 | .each = .{ .once = &.{ | 101104 | .each = .{ .once = &.{ |
| 99413 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101105 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99414 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 101106 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99415 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 101107 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99416 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101108 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 99417 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | | |
| 99418 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99419 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101109 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99420 | } }, | 101110 | } }, |
| 99421 | }, .{ | 101111 | }, .{ |
| 99422 | .required_features = .{ .sse2, null, null, null }, | 101112 | .required_features = .{ .avx, null, null, null }, |
| 99423 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101113 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99424 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 101114 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99425 | .patterns = &.{ | 101115 | .patterns = &.{ |
| 99426 | .{ .src = .{ .to_mem, .none, .none } }, | 101116 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99428,8 +101118,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99428,8 +101118,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99428 | .call_frame = .{ .alignment = .@"16" }, | 101118 | .call_frame = .{ .alignment = .@"16" }, |
| 99429 | .extra_temps = .{ | 101119 | .extra_temps = .{ |
| 99430 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101120 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99431 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101121 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99432 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | 101122 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99433 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 101123 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99434 | .unused, | 101124 | .unused, |
| 99435 | .unused, | 101125 | .unused, |
| ... | @@ -99443,16 +101133,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99443,16 +101133,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99443 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101133 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99444 | .each = .{ .once = &.{ | 101134 | .each = .{ .once = &.{ |
| 99445 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101135 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99446 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 101136 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99447 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99448 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101137 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99449 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 101138 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99450 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101139 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99451 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101140 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99452 | } }, | 101141 | } }, |
| 99453 | }, .{ | 101142 | }, .{ |
| 99454 | .required_features = .{ .sse2, null, null, null }, | 101143 | .required_features = .{ .avx, null, null, null }, |
| 99455 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101144 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99456 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 101145 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99457 | .patterns = &.{ | 101146 | .patterns = &.{ |
| 99458 | .{ .src = .{ .to_mem, .none, .none } }, | 101147 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99460,8 +101149,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99460,8 +101149,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99460 | .call_frame = .{ .alignment = .@"16" }, | 101149 | .call_frame = .{ .alignment = .@"16" }, |
| 99461 | .extra_temps = .{ | 101150 | .extra_temps = .{ |
| 99462 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101151 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99463 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101152 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99464 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, | 101153 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, |
| 99465 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 101154 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 99466 | .unused, | 101155 | .unused, |
| 99467 | .unused, | 101156 | .unused, |
| ... | @@ -99475,16 +101164,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99475,16 +101164,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99475 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101164 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99476 | .each = .{ .once = &.{ | 101165 | .each = .{ .once = &.{ |
| 99477 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101166 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99478 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 101167 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99479 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99480 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101168 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99481 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 101169 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99482 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101170 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99483 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99484 | } }, | 101172 | } }, |
| 99485 | }, .{ | 101173 | }, .{ |
| 99486 | .required_features = .{ .sse, null, null, null }, | 101174 | .required_features = .{ .sse, null, null, null }, |
| 99487 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101175 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99488 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 101176 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99489 | .patterns = &.{ | 101177 | .patterns = &.{ |
| 99490 | .{ .src = .{ .to_mem, .none, .none } }, | 101178 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99492,10 +101180,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99492,10 +101180,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99492 | .call_frame = .{ .alignment = .@"16" }, | 101180 | .call_frame = .{ .alignment = .@"16" }, |
| 99493 | .extra_temps = .{ | 101181 | .extra_temps = .{ |
| 99494 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 101183 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 101184 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99495 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 101185 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99496 | .{ .type = .f32, .kind = .mem }, | 101186 | .unused, |
| 99497 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99498 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, | | |
| 99499 | .unused, | 101187 | .unused, |
| 99500 | .unused, | 101188 | .unused, |
| 99501 | .unused, | 101189 | .unused, |
| ... | @@ -99507,17 +101195,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99507,17 +101195,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99507 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101195 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99508 | .each = .{ .once = &.{ | 101196 | .each = .{ .once = &.{ |
| 99509 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101197 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99510 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 101198 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99511 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 101199 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99512 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 101200 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99513 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 101201 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99514 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | | |
| 99515 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99516 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101202 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99517 | } }, | 101203 | } }, |
| 99518 | }, .{ | 101204 | }, .{ |
| 99519 | .required_features = .{ .sse, null, null, null }, | 101205 | .required_features = .{ .sse, null, null, null }, |
| 99520 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101206 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99521 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 101207 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99522 | .patterns = &.{ | 101208 | .patterns = &.{ |
| 99523 | .{ .src = .{ .to_mem, .none, .none } }, | 101209 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99525,10 +101211,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99525,10 +101211,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99525 | .call_frame = .{ .alignment = .@"16" }, | 101211 | .call_frame = .{ .alignment = .@"16" }, |
| 99526 | .extra_temps = .{ | 101212 | .extra_temps = .{ |
| 99527 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101213 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 101214 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 101215 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, |
| 99528 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 101216 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 99529 | .{ .type = .f32, .kind = .mem }, | 101217 | .unused, |
| 99530 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99531 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, | | |
| 99532 | .unused, | 101218 | .unused, |
| 99533 | .unused, | 101219 | .unused, |
| 99534 | .unused, | 101220 | .unused, |
| ... | @@ -99540,24 +101226,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99540,24 +101226,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99540 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101226 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99541 | .each = .{ .once = &.{ | 101227 | .each = .{ .once = &.{ |
| 99542 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101228 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99543 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 101229 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99544 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 101230 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99545 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 101231 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99546 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 101232 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99547 | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, | | |
| 99548 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99549 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101233 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99550 | } }, | 101234 | } }, |
| 99551 | }, .{ | 101235 | }, .{ |
| 99552 | .required_features = .{ .@"64bit", .f16c, null, null }, | 101236 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 99553 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101237 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99554 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 101238 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99555 | .patterns = &.{ | 101239 | .patterns = &.{ |
| 99556 | .{ .src = .{ .to_mem, .none, .none } }, | 101240 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99557 | }, | 101241 | }, |
| 99558 | .extra_temps = .{ | 101242 | .extra_temps = .{ |
| 99559 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101243 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99560 | .{ .type = .f32, .kind = .{ .rc = .sse } }, | | |
| 99561 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 101244 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 99562 | .unused, | 101245 | .unused, |
| 99563 | .unused, | 101246 | .unused, |
| ... | @@ -99567,63 +101250,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99567,63 +101250,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99567 | .unused, | 101250 | .unused, |
| 99568 | .unused, | 101251 | .unused, |
| 99569 | .unused, | 101252 | .unused, |
| | 101253 | .unused, |
| 99570 | }, | 101254 | }, |
| 99571 | .dst_temps = .{ .mem, .unused }, | 101255 | .dst_temps = .{ .mem, .unused }, |
| 99572 | .each = .{ .once = &.{ | 101256 | .each = .{ .once = &.{ |
| 99573 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101257 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99574 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 101258 | .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99575 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 101259 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 99576 | .{ ._, .v_ps, .cvtph2, .tmp1x, .tmp1q, ._, ._ }, | 101260 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99577 | .{ ._, .v_, .cvttss2si, .tmp2q, .tmp1x, ._, ._ }, | | |
| 99578 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, | | |
| 99579 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99580 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101261 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99581 | } }, | 101262 | } }, |
| 99582 | }, .{ | 101263 | }, .{ |
| 99583 | .required_features = .{ .avx, null, null, null }, | 101264 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 99584 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101265 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99585 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 101266 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99586 | .patterns = &.{ | 101267 | .patterns = &.{ |
| 99587 | .{ .src = .{ .to_mem, .none, .none } }, | 101268 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99588 | }, | 101269 | }, |
| 99589 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99590 | .extra_temps = .{ | 101270 | .extra_temps = .{ |
| 99591 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101271 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99592 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101272 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 99593 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, | | |
| 99594 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | | |
| 99595 | .unused, | | |
| 99596 | .unused, | | |
| 99597 | .unused, | | |
| 99598 | .unused, | | |
| 99599 | .unused, | | |
| 99600 | .unused, | 101273 | .unused, |
| 99601 | .unused, | 101274 | .unused, |
| 99602 | }, | | |
| 99603 | .dst_temps = .{ .mem, .unused }, | | |
| 99604 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99605 | .each = .{ .once = &.{ | | |
| 99606 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 99607 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | | |
| 99608 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | | |
| 99609 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 99610 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 99611 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99612 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 99613 | } }, | | |
| 99614 | }, .{ | | |
| 99615 | .required_features = .{ .avx, null, null, null }, | | |
| 99616 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | | |
| 99617 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 99618 | .patterns = &.{ | | |
| 99619 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 99620 | }, | | |
| 99621 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99622 | .extra_temps = .{ | | |
| 99623 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 99624 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99625 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, | | |
| 99626 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | | |
| 99627 | .unused, | 101275 | .unused, |
| 99628 | .unused, | 101276 | .unused, |
| 99629 | .unused, | 101277 | .unused, |
| ... | @@ -99633,19 +101281,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99633,19 +101281,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99633 | .unused, | 101281 | .unused, |
| 99634 | }, | 101282 | }, |
| 99635 | .dst_temps = .{ .mem, .unused }, | 101283 | .dst_temps = .{ .mem, .unused }, |
| 99636 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99637 | .each = .{ .once = &.{ | 101284 | .each = .{ .once = &.{ |
| 99638 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101285 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99639 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 101286 | .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99640 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 101287 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 99641 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101288 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99642 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 99643 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99644 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101289 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99645 | } }, | 101290 | } }, |
| 99646 | }, .{ | 101291 | }, .{ |
| 99647 | .required_features = .{ .sse2, null, null, null }, | 101292 | .required_features = .{ .avx, null, null, null }, |
| 99648 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101293 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99649 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 101294 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99650 | .patterns = &.{ | 101295 | .patterns = &.{ |
| 99651 | .{ .src = .{ .to_mem, .none, .none } }, | 101296 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99653,8 +101298,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99653,8 +101298,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99653 | .call_frame = .{ .alignment = .@"16" }, | 101298 | .call_frame = .{ .alignment = .@"16" }, |
| 99654 | .extra_temps = .{ | 101299 | .extra_temps = .{ |
| 99655 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101300 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99656 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101301 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99657 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, | 101302 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, |
| 99658 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 101303 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 99659 | .unused, | 101304 | .unused, |
| 99660 | .unused, | 101305 | .unused, |
| ... | @@ -99668,16 +101313,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99668,16 +101313,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99668 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101313 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99669 | .each = .{ .once = &.{ | 101314 | .each = .{ .once = &.{ |
| 99670 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101315 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99671 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 101316 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99672 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99673 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101317 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99674 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 101318 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99675 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101319 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99676 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101320 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99677 | } }, | 101321 | } }, |
| 99678 | }, .{ | 101322 | }, .{ |
| 99679 | .required_features = .{ .sse2, null, null, null }, | 101323 | .required_features = .{ .avx, null, null, null }, |
| 99680 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101324 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99681 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 101325 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99682 | .patterns = &.{ | 101326 | .patterns = &.{ |
| 99683 | .{ .src = .{ .to_mem, .none, .none } }, | 101327 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99685,8 +101329,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99685,8 +101329,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99685 | .call_frame = .{ .alignment = .@"16" }, | 101329 | .call_frame = .{ .alignment = .@"16" }, |
| 99686 | .extra_temps = .{ | 101330 | .extra_temps = .{ |
| 99687 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101331 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99688 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101332 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99689 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, | 101333 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, |
| 99690 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 101334 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99691 | .unused, | 101335 | .unused, |
| 99692 | .unused, | 101336 | .unused, |
| ... | @@ -99700,16 +101344,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99700,16 +101344,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99700 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101344 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99701 | .each = .{ .once = &.{ | 101345 | .each = .{ .once = &.{ |
| 99702 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101346 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99703 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 101347 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99704 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99705 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101348 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99706 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 101349 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99707 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101350 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99708 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101351 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99709 | } }, | 101352 | } }, |
| 99710 | }, .{ | 101353 | }, .{ |
| 99711 | .required_features = .{ .sse, null, null, null }, | 101354 | .required_features = .{ .sse, null, null, null }, |
| 99712 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101355 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99713 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 101356 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99714 | .patterns = &.{ | 101357 | .patterns = &.{ |
| 99715 | .{ .src = .{ .to_mem, .none, .none } }, | 101358 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99717,10 +101360,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99717,10 +101360,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99717 | .call_frame = .{ .alignment = .@"16" }, | 101360 | .call_frame = .{ .alignment = .@"16" }, |
| 99718 | .extra_temps = .{ | 101361 | .extra_temps = .{ |
| 99719 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101362 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 101363 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 101364 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, |
| 99720 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 101365 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 99721 | .{ .type = .f32, .kind = .mem }, | 101366 | .unused, |
| 99722 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99723 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, | | |
| 99724 | .unused, | 101367 | .unused, |
| 99725 | .unused, | 101368 | .unused, |
| 99726 | .unused, | 101369 | .unused, |
| ... | @@ -99732,17 +101375,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99732,17 +101375,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99732 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101375 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99733 | .each = .{ .once = &.{ | 101376 | .each = .{ .once = &.{ |
| 99734 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101377 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99735 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 101378 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99736 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 101379 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99737 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 101380 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99738 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 101381 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99739 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 99740 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99741 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101382 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99742 | } }, | 101383 | } }, |
| 99743 | }, .{ | 101384 | }, .{ |
| 99744 | .required_features = .{ .sse, null, null, null }, | 101385 | .required_features = .{ .sse, null, null, null }, |
| 99745 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101386 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99746 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 101387 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99747 | .patterns = &.{ | 101388 | .patterns = &.{ |
| 99748 | .{ .src = .{ .to_mem, .none, .none } }, | 101389 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99750,47 +101391,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99750,47 +101391,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99750 | .call_frame = .{ .alignment = .@"16" }, | 101391 | .call_frame = .{ .alignment = .@"16" }, |
| 99751 | .extra_temps = .{ | 101392 | .extra_temps = .{ |
| 99752 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101393 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 101394 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 101395 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, |
| 99753 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 101396 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99754 | .{ .type = .f32, .kind = .mem }, | | |
| 99755 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99756 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, | | |
| 99757 | .unused, | | |
| 99758 | .unused, | 101397 | .unused, |
| 99759 | .unused, | 101398 | .unused, |
| 99760 | .unused, | 101399 | .unused, |
| 99761 | .unused, | 101400 | .unused, |
| 99762 | .unused, | 101401 | .unused, |
| 99763 | }, | | |
| 99764 | .dst_temps = .{ .mem, .unused }, | | |
| 99765 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99766 | .each = .{ .once = &.{ | | |
| 99767 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 99768 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 99769 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | | |
| 99770 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | | |
| 99771 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 99772 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | | |
| 99773 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99774 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 99775 | } }, | | |
| 99776 | }, .{ | | |
| 99777 | .required_features = .{ .avx, null, null, null }, | | |
| 99778 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | | |
| 99779 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 99780 | .patterns = &.{ | | |
| 99781 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 99782 | }, | | |
| 99783 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99784 | .extra_temps = .{ | | |
| 99785 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 99786 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99787 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, | | |
| 99788 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | | |
| 99789 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | | |
| 99790 | .unused, | | |
| 99791 | .unused, | | |
| 99792 | .unused, | | |
| 99793 | .unused, | | |
| 99794 | .unused, | 101402 | .unused, |
| 99795 | .unused, | 101403 | .unused, |
| 99796 | }, | 101404 | }, |
| ... | @@ -99798,50 +101406,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99798,50 +101406,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99798 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99799 | .each = .{ .once = &.{ | 101407 | .each = .{ .once = &.{ |
| 99800 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101408 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99801 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 101409 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99802 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | | |
| 99803 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101410 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99804 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 101411 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99805 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 101412 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99806 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99807 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101413 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99808 | } }, | 101414 | } }, |
| 99809 | }, .{ | 101415 | }, .{ |
| 99810 | .required_features = .{ .avx, null, null, null }, | 101416 | .required_features = .{ .avx, null, null, null }, |
| 99811 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101417 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99812 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 99813 | .patterns = &.{ | | |
| 99814 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 99815 | }, | | |
| 99816 | .call_frame = .{ .alignment = .@"16" }, | | |
| 99817 | .extra_temps = .{ | | |
| 99818 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 99819 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99820 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, | | |
| 99821 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | | |
| 99822 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 99823 | .unused, | | |
| 99824 | .unused, | | |
| 99825 | .unused, | | |
| 99826 | .unused, | | |
| 99827 | .unused, | | |
| 99828 | .unused, | | |
| 99829 | }, | | |
| 99830 | .dst_temps = .{ .mem, .unused }, | | |
| 99831 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 99832 | .each = .{ .once = &.{ | | |
| 99833 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 99834 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | | |
| 99835 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | | |
| 99836 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 99837 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 99838 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | | |
| 99839 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99840 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 99841 | } }, | | |
| 99842 | }, .{ | | |
| 99843 | .required_features = .{ .sse2, null, null, null }, | | |
| 99844 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | | |
| 99845 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 101418 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99846 | .patterns = &.{ | 101419 | .patterns = &.{ |
| 99847 | .{ .src = .{ .to_mem, .none, .none } }, | 101420 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99849,8 +101422,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99849,8 +101422,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99849 | .call_frame = .{ .alignment = .@"16" }, | 101422 | .call_frame = .{ .alignment = .@"16" }, |
| 99850 | .extra_temps = .{ | 101423 | .extra_temps = .{ |
| 99851 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101424 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99852 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101425 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99853 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, | 101426 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 99854 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 101427 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99855 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 101428 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 99856 | .unused, | 101429 | .unused, |
| ... | @@ -99864,17 +101437,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99864,17 +101437,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99864 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101437 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99865 | .each = .{ .once = &.{ | 101438 | .each = .{ .once = &.{ |
| 99866 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101439 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99867 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 101440 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99868 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99869 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101441 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99870 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 101442 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99871 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 101443 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 99872 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101444 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99873 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101445 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99874 | } }, | 101446 | } }, |
| 99875 | }, .{ | 101447 | }, .{ |
| 99876 | .required_features = .{ .sse2, null, null, null }, | 101448 | .required_features = .{ .avx, null, null, null }, |
| 99877 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101449 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99878 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 101450 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99879 | .patterns = &.{ | 101451 | .patterns = &.{ |
| 99880 | .{ .src = .{ .to_mem, .none, .none } }, | 101452 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99882,8 +101454,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99882,8 +101454,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99882 | .call_frame = .{ .alignment = .@"16" }, | 101454 | .call_frame = .{ .alignment = .@"16" }, |
| 99883 | .extra_temps = .{ | 101455 | .extra_temps = .{ |
| 99884 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101456 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99885 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101457 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99886 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, | 101458 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 99887 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 101459 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99888 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 101460 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 99889 | .unused, | 101461 | .unused, |
| ... | @@ -99897,17 +101469,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99897,17 +101469,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99897 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101469 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99898 | .each = .{ .once = &.{ | 101470 | .each = .{ .once = &.{ |
| 99899 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101471 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99900 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 101472 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99901 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | | |
| 99902 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 101473 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99903 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 101474 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99904 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 101475 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 99905 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101476 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99906 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101477 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99907 | } }, | 101478 | } }, |
| 99908 | }, .{ | 101479 | }, .{ |
| 99909 | .required_features = .{ .sse, null, null, null }, | 101480 | .required_features = .{ .sse, null, null, null }, |
| 99910 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101481 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99911 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 101482 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99912 | .patterns = &.{ | 101483 | .patterns = &.{ |
| 99913 | .{ .src = .{ .to_mem, .none, .none } }, | 101484 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99915,33 +101486,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99915,33 +101486,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99915 | .call_frame = .{ .alignment = .@"16" }, | 101486 | .call_frame = .{ .alignment = .@"16" }, |
| 99916 | .extra_temps = .{ | 101487 | .extra_temps = .{ |
| 99917 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101488 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 101489 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 101490 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 99918 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 101491 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99919 | .{ .type = .f32, .kind = .mem }, | | |
| 99920 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99921 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, | | |
| 99922 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 101492 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 99923 | .unused, | 101493 | .unused, |
| 99924 | .unused, | 101494 | .unused, |
| 99925 | .unused, | 101495 | .unused, |
| 99926 | .unused, | 101496 | .unused, |
| 99927 | .unused, | 101497 | .unused, |
| | 101498 | .unused, |
| 99928 | }, | 101499 | }, |
| 99929 | .dst_temps = .{ .mem, .unused }, | 101500 | .dst_temps = .{ .mem, .unused }, |
| 99930 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101501 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99931 | .each = .{ .once = &.{ | 101502 | .each = .{ .once = &.{ |
| 99932 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101503 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99933 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 101504 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99934 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 101505 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99935 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 101506 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99936 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 101507 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 99937 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 101508 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99938 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | | |
| 99939 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99940 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101509 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99941 | } }, | 101510 | } }, |
| 99942 | }, .{ | 101511 | }, .{ |
| 99943 | .required_features = .{ .sse, null, null, null }, | 101512 | .required_features = .{ .sse, null, null, null }, |
| 99944 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101513 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99945 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 101514 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99946 | .patterns = &.{ | 101515 | .patterns = &.{ |
| 99947 | .{ .src = .{ .to_mem, .none, .none } }, | 101516 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99949,33 +101518,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99949,33 +101518,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99949 | .call_frame = .{ .alignment = .@"16" }, | 101518 | .call_frame = .{ .alignment = .@"16" }, |
| 99950 | .extra_temps = .{ | 101519 | .extra_temps = .{ |
| 99951 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101520 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 101521 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 101522 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 99952 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 101523 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99953 | .{ .type = .f32, .kind = .mem }, | | |
| 99954 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 99955 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, | | |
| 99956 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 101524 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 99957 | .unused, | 101525 | .unused, |
| 99958 | .unused, | 101526 | .unused, |
| 99959 | .unused, | 101527 | .unused, |
| 99960 | .unused, | 101528 | .unused, |
| 99961 | .unused, | 101529 | .unused, |
| | 101530 | .unused, |
| 99962 | }, | 101531 | }, |
| 99963 | .dst_temps = .{ .mem, .unused }, | 101532 | .dst_temps = .{ .mem, .unused }, |
| 99964 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 101533 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99965 | .each = .{ .once = &.{ | 101534 | .each = .{ .once = &.{ |
| 99966 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101535 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99967 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 101536 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99968 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, | 101537 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99969 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, | 101538 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99970 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 101539 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 99971 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 101540 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99972 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | | |
| 99973 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 99974 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101541 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99975 | } }, | 101542 | } }, |
| 99976 | }, .{ | 101543 | }, .{ |
| 99977 | .required_features = .{ .@"64bit", .avx, null, null }, | 101544 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 99978 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101545 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99979 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 101546 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99980 | .patterns = &.{ | 101547 | .patterns = &.{ |
| 99981 | .{ .src = .{ .to_mem, .none, .none } }, | 101548 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -99986,8 +101553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99986,8 +101553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99986 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 101553 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 99987 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 101554 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 99988 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 101555 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 99989 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101556 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 99990 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, | 101557 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, |
| 99991 | .unused, | 101558 | .unused, |
| 99992 | .unused, | 101559 | .unused, |
| 99993 | .unused, | 101560 | .unused, |
| ... | @@ -99999,18 +101566,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -99999,18 +101566,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99999 | .each = .{ .once = &.{ | 101566 | .each = .{ .once = &.{ |
| 100000 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101567 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100001 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 101568 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100002 | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, | 101569 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100003 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 100004 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 101570 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100005 | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 101571 | .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 100006 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 101572 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100007 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 101573 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100008 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101574 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100009 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101575 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100010 | } }, | 101576 | } }, |
| 100011 | }, .{ | 101577 | }, .{ |
| 100012 | .required_features = .{ .@"64bit", .avx, null, null }, | 101578 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100013 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101579 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100014 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 101580 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100015 | .patterns = &.{ | 101581 | .patterns = &.{ |
| 100016 | .{ .src = .{ .to_mem, .none, .none } }, | 101582 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -100021,8 +101587,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100021,8 +101587,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100021 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 101587 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100022 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 101588 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100023 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 101589 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100024 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101590 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100025 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, | 101591 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, |
| 100026 | .unused, | 101592 | .unused, |
| 100027 | .unused, | 101593 | .unused, |
| 100028 | .unused, | 101594 | .unused, |
| ... | @@ -100034,18 +101600,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100034,18 +101600,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100034 | .each = .{ .once = &.{ | 101600 | .each = .{ .once = &.{ |
| 100035 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101601 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100036 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 101602 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100037 | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, | 101603 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100038 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 100039 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 101604 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100040 | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 101605 | .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 100041 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 101606 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100042 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 101607 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100043 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101608 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100044 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100045 | } }, | 101610 | } }, |
| 100046 | }, .{ | 101611 | }, .{ |
| 100047 | .required_features = .{ .@"64bit", .sse2, null, null }, | 101612 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100048 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101613 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100049 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 101614 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100050 | .patterns = &.{ | 101615 | .patterns = &.{ |
| 100051 | .{ .src = .{ .to_mem, .none, .none } }, | 101616 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -100056,8 +101621,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100056,8 +101621,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100056 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 101621 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100057 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 101622 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100058 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 101623 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100059 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101624 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100060 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, | 101625 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, |
| 100061 | .unused, | 101626 | .unused, |
| 100062 | .unused, | 101627 | .unused, |
| 100063 | .unused, | 101628 | .unused, |
| ... | @@ -100069,18 +101634,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100069,18 +101634,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100069 | .each = .{ .once = &.{ | 101634 | .each = .{ .once = &.{ |
| 100070 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101635 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100071 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 101636 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100072 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, | 101637 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100073 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 100074 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 101638 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100075 | .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | 101639 | .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 100076 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 101640 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100077 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 101641 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100078 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101642 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100079 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100080 | } }, | 101644 | } }, |
| 100081 | }, .{ | 101645 | }, .{ |
| 100082 | .required_features = .{ .@"64bit", .sse2, null, null }, | 101646 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100083 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101647 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100084 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 101648 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100085 | .patterns = &.{ | 101649 | .patterns = &.{ |
| 100086 | .{ .src = .{ .to_mem, .none, .none } }, | 101650 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -100091,8 +101655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100091,8 +101655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100091 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 101655 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100092 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 101656 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100093 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 101657 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100094 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101658 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100095 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, | 101659 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, |
| 100096 | .unused, | 101660 | .unused, |
| 100097 | .unused, | 101661 | .unused, |
| 100098 | .unused, | 101662 | .unused, |
| ... | @@ -100104,114 +101668,143 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100104,114 +101668,143 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100104 | .each = .{ .once = &.{ | 101668 | .each = .{ .once = &.{ |
| 100105 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101669 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100106 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 101670 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100107 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, | 101671 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100108 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 100109 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 101672 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100110 | .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | 101673 | .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 100111 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 101674 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100112 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 101675 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100113 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 101676 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100114 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 101677 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100115 | } }, | 101678 | } }, |
| 100116 | }, .{ | 101679 | }, .{ |
| 100117 | .required_features = .{ .@"64bit", .sse, null, null }, | 101680 | .required_features = .{ .avx, null, null, null }, |
| 100118 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101681 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100119 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 101682 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| | 101683 | .patterns = &.{ |
| | 101684 | .{ .src = .{ .mem, .none, .none } }, |
| | 101685 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 101686 | }, |
| | 101687 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 101688 | .each = .{ .once = &.{ |
| | 101689 | .{ ._, .v_, .cvttsd2si, .dst0d, .src0q, ._, ._ }, |
| | 101690 | } }, |
| | 101691 | }, .{ |
| | 101692 | .required_features = .{ .sse2, null, null, null }, |
| | 101693 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 101694 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| | 101695 | .patterns = &.{ |
| | 101696 | .{ .src = .{ .mem, .none, .none } }, |
| | 101697 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 101698 | }, |
| | 101699 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 101700 | .each = .{ .once = &.{ |
| | 101701 | .{ ._, ._, .cvttsd2si, .dst0d, .src0q, ._, ._ }, |
| | 101702 | } }, |
| | 101703 | }, .{ |
| | 101704 | .required_features = .{ .x87, null, null, null }, |
| | 101705 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 101706 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 100120 | .patterns = &.{ | 101707 | .patterns = &.{ |
| 100121 | .{ .src = .{ .to_mem, .none, .none } }, | 101708 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100122 | }, | 101709 | }, |
| 100123 | .call_frame = .{ .alignment = .@"16" }, | | |
| 100124 | .extra_temps = .{ | 101710 | .extra_temps = .{ |
| 100125 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101711 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 100126 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 101712 | .{ .type = .i16, .kind = .mem }, |
| 100127 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 101713 | .unused, |
| 100128 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 101714 | .unused, |
| 100129 | .{ .type = .f32, .kind = .mem }, | 101715 | .unused, |
| 100130 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101716 | .unused, |
| 100131 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, | 101717 | .unused, |
| 100132 | .unused, | 101718 | .unused, |
| 100133 | .unused, | 101719 | .unused, |
| 100134 | .unused, | 101720 | .unused, |
| 100135 | .unused, | 101721 | .unused, |
| 100136 | }, | 101722 | }, |
| 100137 | .dst_temps = .{ .mem, .unused }, | 101723 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100138 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 100139 | .each = .{ .once = &.{ | 101724 | .each = .{ .once = &.{ |
| 100140 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101725 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 100141 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 101726 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 100142 | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 101727 | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, |
| 100143 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 100144 | .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ }, | | |
| 100145 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 100146 | .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ }, | | |
| 100147 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 100148 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 100149 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 100150 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 100151 | } }, | 101728 | } }, |
| 100152 | }, .{ | 101729 | }, .{ |
| 100153 | .required_features = .{ .@"64bit", .sse, null, null }, | 101730 | .required_features = .{ .x87, null, null, null }, |
| 100154 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, | 101731 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100155 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 101732 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 100156 | .patterns = &.{ | 101733 | .patterns = &.{ |
| 100157 | .{ .src = .{ .to_mem, .none, .none } }, | 101734 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100158 | }, | 101735 | }, |
| 100159 | .call_frame = .{ .alignment = .@"16" }, | | |
| 100160 | .extra_temps = .{ | 101736 | .extra_temps = .{ |
| 100161 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 101737 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 100162 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 101738 | .{ .type = .i16, .kind = .mem }, |
| 100163 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 101739 | .unused, |
| 100164 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 101740 | .unused, |
| 100165 | .{ .type = .f32, .kind = .mem }, | 101741 | .unused, |
| 100166 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 101742 | .unused, |
| 100167 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, | 101743 | .unused, |
| 100168 | .unused, | 101744 | .unused, |
| 100169 | .unused, | 101745 | .unused, |
| 100170 | .unused, | 101746 | .unused, |
| 100171 | .unused, | 101747 | .unused, |
| 100172 | }, | 101748 | }, |
| 100173 | .dst_temps = .{ .mem, .unused }, | 101749 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100174 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 100175 | .each = .{ .once = &.{ | 101750 | .each = .{ .once = &.{ |
| 100176 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 101751 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 100177 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 101752 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 100178 | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 101753 | .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ }, |
| 100179 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 100180 | .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ }, | | |
| 100181 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 100182 | .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ }, | | |
| 100183 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 100184 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 100185 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 100186 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 100187 | } }, | 101754 | } }, |
| 100188 | }, .{ | 101755 | }, .{ |
| 100189 | .required_features = .{ .avx, null, null, null }, | 101756 | .required_features = .{ .x87, null, null, null }, |
| 100190 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101757 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100191 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, | 101758 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, |
| 100192 | .patterns = &.{ | 101759 | .patterns = &.{ |
| 100193 | .{ .src = .{ .mem, .none, .none } }, | 101760 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100194 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 100195 | }, | 101761 | }, |
| 100196 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 101762 | .extra_temps = .{ |
| | 101763 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 101764 | .unused, |
| | 101765 | .unused, |
| | 101766 | .unused, |
| | 101767 | .unused, |
| | 101768 | .unused, |
| | 101769 | .unused, |
| | 101770 | .unused, |
| | 101771 | .unused, |
| | 101772 | .unused, |
| | 101773 | .unused, |
| | 101774 | }, |
| | 101775 | .dst_temps = .{ .mem, .unused }, |
| 100197 | .each = .{ .once = &.{ | 101776 | .each = .{ .once = &.{ |
| 100198 | .{ ._, .v_, .cvttss2si, .dst0d, .src0d, ._, ._ }, | 101777 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 101778 | .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, |
| 100199 | } }, | 101779 | } }, |
| 100200 | }, .{ | 101780 | }, .{ |
| 100201 | .required_features = .{ .sse, null, null, null }, | 101781 | .required_features = .{ .x87, null, null, null }, |
| 100202 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101782 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100203 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, | 101783 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 100204 | .patterns = &.{ | 101784 | .patterns = &.{ |
| 100205 | .{ .src = .{ .mem, .none, .none } }, | 101785 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100206 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 100207 | }, | 101786 | }, |
| 100208 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 101787 | .extra_temps = .{ |
| | 101788 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 101789 | .unused, |
| | 101790 | .unused, |
| | 101791 | .unused, |
| | 101792 | .unused, |
| | 101793 | .unused, |
| | 101794 | .unused, |
| | 101795 | .unused, |
| | 101796 | .unused, |
| | 101797 | .unused, |
| | 101798 | .unused, |
| | 101799 | }, |
| | 101800 | .dst_temps = .{ .mem, .unused }, |
| 100209 | .each = .{ .once = &.{ | 101801 | .each = .{ .once = &.{ |
| 100210 | .{ ._, ._, .cvttss2si, .dst0d, .src0d, ._, ._ }, | 101802 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 101803 | .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, |
| 100211 | } }, | 101804 | } }, |
| 100212 | }, .{ | 101805 | }, .{ |
| 100213 | .required_features = .{ .@"64bit", .avx, null, null }, | 101806 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100214 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101807 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100215 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, | 101808 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 100216 | .patterns = &.{ | 101809 | .patterns = &.{ |
| 100217 | .{ .src = .{ .mem, .none, .none } }, | 101810 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -100219,11 +101812,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100219,11 +101812,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100219 | }, | 101812 | }, |
| 100220 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 101813 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100221 | .each = .{ .once = &.{ | 101814 | .each = .{ .once = &.{ |
| 100222 | .{ ._, .v_, .cvttss2si, .dst0q, .src0d, ._, ._ }, | 101815 | .{ ._, .v_, .cvttsd2si, .dst0q, .src0q, ._, ._ }, |
| 100223 | } }, | 101816 | } }, |
| 100224 | }, .{ | 101817 | }, .{ |
| 100225 | .required_features = .{ .@"64bit", .sse, null, null }, | 101818 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 100226 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101819 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100227 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, | 101820 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 100228 | .patterns = &.{ | 101821 | .patterns = &.{ |
| 100229 | .{ .src = .{ .mem, .none, .none } }, | 101822 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -100231,20 +101824,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100231,20 +101824,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100231 | }, | 101824 | }, |
| 100232 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 101825 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100233 | .each = .{ .once = &.{ | 101826 | .each = .{ .once = &.{ |
| 100234 | .{ ._, ._, .cvttss2si, .dst0q, .src0d, ._, ._ }, | 101827 | .{ ._, ._, .cvttsd2si, .dst0q, .src0q, ._, ._ }, |
| | 101828 | } }, |
| | 101829 | }, .{ |
| | 101830 | .required_features = .{ .x87, null, null, null }, |
| | 101831 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 101832 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| | 101833 | .patterns = &.{ |
| | 101834 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 101835 | }, |
| | 101836 | .extra_temps = .{ |
| | 101837 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 101838 | .unused, |
| | 101839 | .unused, |
| | 101840 | .unused, |
| | 101841 | .unused, |
| | 101842 | .unused, |
| | 101843 | .unused, |
| | 101844 | .unused, |
| | 101845 | .unused, |
| | 101846 | .unused, |
| | 101847 | .unused, |
| | 101848 | }, |
| | 101849 | .dst_temps = .{ .mem, .unused }, |
| | 101850 | .each = .{ .once = &.{ |
| | 101851 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 101852 | .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ }, |
| 100235 | } }, | 101853 | } }, |
| 100236 | }, .{ | 101854 | }, .{ |
| 100237 | .required_features = .{ .@"64bit", .avx, null, null }, | 101855 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100238 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101856 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100239 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, | 101857 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 100240 | .patterns = &.{ | 101858 | .patterns = &.{ |
| 100241 | .{ .src = .{ .to_sse, .none, .none } }, | 101859 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100242 | }, | 101860 | }, |
| 100243 | .extra_temps = .{ | 101861 | .extra_temps = .{ |
| 100244 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | 101862 | .{ .type = .f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 100245 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 101863 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100246 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 101864 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100247 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, | 101865 | .{ .type = .f64, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 100248 | .unused, | 101866 | .unused, |
| 100249 | .unused, | 101867 | .unused, |
| 100250 | .unused, | 101868 | .unused, |
| ... | @@ -100257,17 +101875,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100257,17 +101875,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100257 | .clobbers = .{ .eflags = true }, | 101875 | .clobbers = .{ .eflags = true }, |
| 100258 | .each = .{ .once = &.{ | 101876 | .each = .{ .once = &.{ |
| 100259 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, | 101877 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 100260 | .{ ._, .v_, .cvttss2si, .tmp2q, .src0d, ._, ._ }, | 101878 | .{ ._, .v_, .cvttsd2si, .tmp2q, .src0d, ._, ._ }, |
| 100261 | .{ ._, .v_ss, .sub, .tmp0x, .src0x, .lea(.tmp1d), ._ }, | 101879 | .{ ._, .v_sd, .sub, .tmp0x, .src0x, .lea(.tmp1q), ._ }, |
| 100262 | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, | 101880 | .{ ._, .v_, .cvttsd2si, .dst0q, .tmp0d, ._, ._ }, |
| 100263 | .{ ._, ._, .mov, .tmp1q, .tmp2q, ._, ._ }, | 101881 | .{ ._, ._, .mov, .tmp1q, .tmp2q, ._, ._ }, |
| 100264 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, | 101882 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 100265 | .{ ._, ._, .@"and", .dst0q, .tmp2q, ._, ._ }, | 101883 | .{ ._, ._, .@"and", .dst0q, .tmp2q, ._, ._ }, |
| 100266 | .{ ._, ._, .@"or", .dst0q, .tmp1q, ._, ._ }, | 101884 | .{ ._, ._, .@"or", .dst0q, .tmp1q, ._, ._ }, |
| 100267 | } }, | 101885 | } }, |
| 100268 | }, .{ | 101886 | }, .{ |
| 100269 | .required_features = .{ .@"64bit", .sse, null, null }, | 101887 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 100270 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101888 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100271 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, | 101889 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 100272 | .patterns = &.{ | 101890 | .patterns = &.{ |
| 100273 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 101891 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| ... | @@ -100275,7 +101893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100275,7 +101893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100275 | .extra_temps = .{ | 101893 | .extra_temps = .{ |
| 100276 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 101894 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100277 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 101895 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100278 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, | 101896 | .{ .type = .f64, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 100279 | .unused, | 101897 | .unused, |
| 100280 | .unused, | 101898 | .unused, |
| 100281 | .unused, | 101899 | .unused, |
| ... | @@ -100289,24 +101907,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100289,24 +101907,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100289 | .clobbers = .{ .eflags = true }, | 101907 | .clobbers = .{ .eflags = true }, |
| 100290 | .each = .{ .once = &.{ | 101908 | .each = .{ .once = &.{ |
| 100291 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | 101909 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 100292 | .{ ._, ._, .cvttss2si, .tmp1q, .src0d, ._, ._ }, | 101910 | .{ ._, ._, .cvttsd2si, .tmp1q, .src0d, ._, ._ }, |
| 100293 | .{ ._, ._ss, .sub, .src0x, .lea(.tmp0d), ._, ._ }, | 101911 | .{ ._, ._sd, .sub, .src0x, .lea(.tmp0q), ._, ._ }, |
| 100294 | .{ ._, ._, .cvttss2si, .dst0q, .src0d, ._, ._ }, | 101912 | .{ ._, ._, .cvttsd2si, .dst0q, .src0d, ._, ._ }, |
| 100295 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, | 101913 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| 100296 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, | 101914 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 100297 | .{ ._, ._, .@"and", .dst0q, .tmp1q, ._, ._ }, | 101915 | .{ ._, ._, .@"and", .dst0q, .tmp1q, ._, ._ }, |
| 100298 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, | 101916 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, |
| 100299 | } }, | 101917 | } }, |
| | 101918 | }, .{ |
| | 101919 | .required_features = .{ .@"64bit", .x87, null, null }, |
| | 101920 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 101921 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| | 101922 | .patterns = &.{ |
| | 101923 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 101924 | }, |
| | 101925 | .extra_temps = .{ |
| | 101926 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 101927 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| | 101928 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 101929 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 101930 | .{ .type = .i64, .kind = .mem }, |
| | 101931 | .unused, |
| | 101932 | .unused, |
| | 101933 | .unused, |
| | 101934 | .unused, |
| | 101935 | .unused, |
| | 101936 | .unused, |
| | 101937 | }, |
| | 101938 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 101939 | .clobbers = .{ .eflags = true }, |
| | 101940 | .each = .{ .once = &.{ |
| | 101941 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| | 101942 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 101943 | .{ ._, .f_, .ld, .tmp3t, ._, ._, ._ }, |
| | 101944 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, |
| | 101945 | .{ ._, ._, .mov, .dst0q, .tmp4q, ._, ._ }, |
| | 101946 | .{ ._, .f_, .sub, .lea(.tmp0d), ._, ._, ._ }, |
| | 101947 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, |
| | 101948 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, |
| | 101949 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| | 101950 | .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ }, |
| | 101951 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, |
| | 101952 | } }, |
| 100300 | }, .{ | 101953 | }, .{ |
| 100301 | .required_features = .{ .@"64bit", .sse, null, null }, | 101954 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100302 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101955 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100303 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | 101956 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 100304 | .patterns = &.{ | 101957 | .patterns = &.{ |
| 100305 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 101958 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100306 | }, | 101959 | }, |
| 100307 | .call_frame = .{ .alignment = .@"16" }, | 101960 | .call_frame = .{ .alignment = .@"16" }, |
| 100308 | .extra_temps = .{ | 101961 | .extra_temps = .{ |
| 100309 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, | 101962 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 100310 | .unused, | 101963 | .unused, |
| 100311 | .unused, | 101964 | .unused, |
| 100312 | .unused, | 101965 | .unused, |
| ... | @@ -100325,14 +101978,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100325,14 +101978,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100325 | } }, | 101978 | } }, |
| 100326 | }, .{ | 101979 | }, .{ |
| 100327 | .required_features = .{ .@"64bit", .sse, null, null }, | 101980 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100328 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 101981 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100329 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 101982 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 100330 | .patterns = &.{ | 101983 | .patterns = &.{ |
| 100331 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 101984 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100332 | }, | 101985 | }, |
| 100333 | .call_frame = .{ .alignment = .@"16" }, | 101986 | .call_frame = .{ .alignment = .@"16" }, |
| 100334 | .extra_temps = .{ | 101987 | .extra_temps = .{ |
| 100335 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, | 101988 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 100336 | .unused, | 101989 | .unused, |
| 100337 | .unused, | 101990 | .unused, |
| 100338 | .unused, | 101991 | .unused, |
| ... | @@ -100350,62 +102003,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100350,62 +102003,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100350 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 102003 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 100351 | } }, | 102004 | } }, |
| 100352 | }, .{ | 102005 | }, .{ |
| 100353 | .required_features = .{ .@"64bit", .avx, null, null }, | 102006 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100354 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 102007 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100355 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 102008 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100356 | .patterns = &.{ | 102009 | .patterns = &.{ |
| 100357 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 102010 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100358 | }, | 102011 | }, |
| 100359 | .call_frame = .{ .alignment = .@"16" }, | 102012 | .call_frame = .{ .alignment = .@"16" }, |
| 100360 | .extra_temps = .{ | 102013 | .extra_temps = .{ |
| 100361 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 100362 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | | |
| 100363 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, | | |
| 100364 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, | | |
| 100365 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | | |
| 100366 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 102014 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100367 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 102015 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 102016 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 100368 | .unused, | 102017 | .unused, |
| 100369 | .unused, | 102018 | .unused, |
| 100370 | .unused, | 102019 | .unused, |
| 100371 | .unused, | 102020 | .unused, |
| 100372 | }, | | |
| 100373 | .dst_temps = .{ .mem, .unused }, | | |
| 100374 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 100375 | .each = .{ .once = &.{ | | |
| 100376 | .{ ._, .v_d, .mov, .tmp0d, .src0x, ._, ._ }, | | |
| 100377 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, | | |
| 100378 | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, | | |
| 100379 | .{ ._, .v_ps, .@"and", .src0x, .src0x, .lea(.tmp1x), ._ }, | | |
| 100380 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | | |
| 100381 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 100382 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, | | |
| 100383 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, | | |
| 100384 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, | | |
| 100385 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | | |
| 100386 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, | | |
| 100387 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, | | |
| 100388 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, | | |
| 100389 | .{ ._, ._, .lea, .tmp5p, .memd(.dst0, 16), ._, ._ }, | | |
| 100390 | .{ ._, ._, .mov, .tmp6d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | | |
| 100391 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 100392 | } }, | | |
| 100393 | }, .{ | | |
| 100394 | .required_features = .{ .@"64bit", .sse2, null, null }, | | |
| 100395 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | | |
| 100396 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | | |
| 100397 | .patterns = &.{ | | |
| 100398 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | | |
| 100399 | }, | | |
| 100400 | .call_frame = .{ .alignment = .@"16" }, | | |
| 100401 | .extra_temps = .{ | | |
| 100402 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 100403 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | | |
| 100404 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, | | |
| 100405 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, | | |
| 100406 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | | |
| 100407 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | | |
| 100408 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 100409 | .unused, | 102021 | .unused, |
| 100410 | .unused, | 102022 | .unused, |
| 100411 | .unused, | 102023 | .unused, |
| ... | @@ -100414,39 +102026,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100414,39 +102026,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100414 | .dst_temps = .{ .mem, .unused }, | 102026 | .dst_temps = .{ .mem, .unused }, |
| 100415 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 102027 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100416 | .each = .{ .once = &.{ | 102028 | .each = .{ .once = &.{ |
| 100417 | .{ ._, ._d, .mov, .tmp0d, .src0x, ._, ._ }, | 102029 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 100418 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, | 102030 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100419 | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, | 102031 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100420 | .{ ._, ._ps, .@"and", .src0x, .lea(.tmp1x), ._, ._ }, | | |
| 100421 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | | |
| 100422 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 100423 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, | | |
| 100424 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, | | |
| 100425 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, | | |
| 100426 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | | |
| 100427 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, | | |
| 100428 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, | | |
| 100429 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, | | |
| 100430 | .{ ._, ._, .lea, .tmp5p, .memd(.dst0, 16), ._, ._ }, | | |
| 100431 | .{ ._, ._, .mov, .tmp6d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | | |
| 100432 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 100433 | } }, | 102032 | } }, |
| 100434 | }, .{ | 102033 | }, .{ |
| 100435 | .required_features = .{ .@"64bit", .sse, null, null }, | 102034 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100436 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 102035 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100437 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 102036 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100438 | .patterns = &.{ | 102037 | .patterns = &.{ |
| 100439 | .{ .src = .{ .to_mem, .none, .none } }, | 102038 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100440 | }, | 102039 | }, |
| 100441 | .call_frame = .{ .alignment = .@"16" }, | 102040 | .call_frame = .{ .alignment = .@"16" }, |
| 100442 | .extra_temps = .{ | 102041 | .extra_temps = .{ |
| 100443 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 100444 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | | |
| 100445 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, | | |
| 100446 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, | | |
| 100447 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 100448 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | | |
| 100449 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 102042 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 102043 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 102044 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| | 102045 | .unused, |
| | 102046 | .unused, |
| | 102047 | .unused, |
| | 102048 | .unused, |
| 100450 | .unused, | 102049 | .unused, |
| 100451 | .unused, | 102050 | .unused, |
| 100452 | .unused, | 102051 | .unused, |
| ... | @@ -100455,37 +102054,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100455,37 +102054,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100455 | .dst_temps = .{ .mem, .unused }, | 102054 | .dst_temps = .{ .mem, .unused }, |
| 100456 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 102055 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100457 | .each = .{ .once = &.{ | 102056 | .each = .{ .once = &.{ |
| 100458 | .{ ._, ._ss, .mov, .tmp0x, .src0d, ._, ._ }, | 102057 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 100459 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, | 102058 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100460 | .{ ._, ._ps, .@"and", .tmp0x, .lea(.tmp1x), ._, ._ }, | 102059 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100461 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 100462 | .{ ._, ._d, .movsx, .tmp4q, .src0d, ._, ._ }, | | |
| 100463 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, | | |
| 100464 | .{ ._, ._, .xor, .tmp1q, .tmp4q, ._, ._ }, | | |
| 100465 | .{ ._, ._, .xor, .tmp5q, .tmp4q, ._, ._ }, | | |
| 100466 | .{ ._, ._, .sub, .tmp1q, .tmp4q, ._, ._ }, | | |
| 100467 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | | |
| 100468 | .{ ._, ._, .sbb, .tmp5q, .tmp4q, ._, ._ }, | | |
| 100469 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp5q, ._, ._ }, | | |
| 100470 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, | | |
| 100471 | .{ ._, ._, .lea, .tmp6p, .memd(.dst0, 16), ._, ._ }, | | |
| 100472 | .{ ._, ._, .mov, .tmp4d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | | |
| 100473 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 100474 | } }, | 102060 | } }, |
| 100475 | }, .{ | 102061 | }, .{ |
| 100476 | .required_features = .{ .@"64bit", .sse, null, null }, | 102062 | .required_features = .{ .avx, null, null, null }, |
| 100477 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, | 102063 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 100478 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 102064 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 100479 | .patterns = &.{ | 102065 | .patterns = &.{ |
| 100480 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 102066 | .{ .src = .{ .mem, .none, .none } }, |
| | 102067 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100481 | }, | 102068 | }, |
| 100482 | .call_frame = .{ .alignment = .@"16" }, | | |
| 100483 | .extra_temps = .{ | 102069 | .extra_temps = .{ |
| 100484 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, | 102070 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100485 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 102071 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 100486 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 102072 | .unused, |
| 100487 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 102073 | .unused, |
| 100488 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 102074 | .unused, |
| 100489 | .unused, | 102075 | .unused, |
| 100490 | .unused, | 102076 | .unused, |
| 100491 | .unused, | 102077 | .unused, |
| ... | @@ -100493,21 +102079,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100493,21 +102079,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100493 | .unused, | 102079 | .unused, |
| 100494 | .unused, | 102080 | .unused, |
| 100495 | }, | 102081 | }, |
| 100496 | .dst_temps = .{ .mem, .unused }, | 102082 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100497 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 100498 | .each = .{ .once = &.{ | 102083 | .each = .{ .once = &.{ |
| 100499 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 102084 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100500 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, | 102085 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 100501 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp2q, ._, ._ }, | 102086 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 100502 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | | |
| 100503 | .{ ._, ._, .lea, .tmp3p, .memd(.dst0, 16), ._, ._ }, | | |
| 100504 | .{ ._, ._, .mov, .tmp4d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | | |
| 100505 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 100506 | } }, | 102087 | } }, |
| 100507 | }, .{ | 102088 | }, .{ |
| 100508 | .required_features = .{ .avx, null, null, null }, | 102089 | .required_features = .{ .ssse3, null, null, null }, |
| 100509 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102090 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 100510 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 102091 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 100511 | .patterns = &.{ | 102092 | .patterns = &.{ |
| 100512 | .{ .src = .{ .mem, .none, .none } }, | 102093 | .{ .src = .{ .mem, .none, .none } }, |
| 100513 | .{ .src = .{ .to_sse, .none, .none } }, | 102094 | .{ .src = .{ .to_sse, .none, .none } }, |
| ... | @@ -100528,12 +102109,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100528,12 +102109,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100528 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 102109 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100529 | .each = .{ .once = &.{ | 102110 | .each = .{ .once = &.{ |
| 100530 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 102111 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100531 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | 102112 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 100532 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | 102113 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 100533 | } }, | 102114 | } }, |
| 100534 | }, .{ | 102115 | }, .{ |
| 100535 | .required_features = .{ .ssse3, null, null, null }, | 102116 | .required_features = .{ .avx, null, null, null }, |
| 100536 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102117 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 100537 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 102118 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 100538 | .patterns = &.{ | 102119 | .patterns = &.{ |
| 100539 | .{ .src = .{ .mem, .none, .none } }, | 102120 | .{ .src = .{ .mem, .none, .none } }, |
| ... | @@ -100555,12 +102136,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100555,12 +102136,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100555 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 102136 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100556 | .each = .{ .once = &.{ | 102137 | .each = .{ .once = &.{ |
| 100557 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 102138 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100558 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | 102139 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| 100559 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, | 102140 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 100560 | } }, | 102141 | } }, |
| 100561 | }, .{ | 102142 | }, .{ |
| 100562 | .required_features = .{ .avx, null, null, null }, | 102143 | .required_features = .{ .avx, null, null, null }, |
| 100563 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102144 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 100564 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 102145 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 100565 | .patterns = &.{ | 102146 | .patterns = &.{ |
| 100566 | .{ .src = .{ .to_mem, .none, .none } }, | 102147 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -100579,11 +102160,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100579,11 +102160,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100579 | .unused, | 102160 | .unused, |
| 100580 | }, | 102161 | }, |
| 100581 | .dst_temps = .{ .mem, .unused }, | 102162 | .dst_temps = .{ .mem, .unused }, |
| | 102163 | .clobbers = .{ .eflags = true }, |
| 100582 | .each = .{ .once = &.{ | 102164 | .each = .{ .once = &.{ |
| 100583 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 102165 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100584 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 102166 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 100585 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102167 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100586 | .{ .@"0:", .v_, .cvttps2dq, .tmp3x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102168 | .{ .@"0:", .v_, .cvttpd2dq, .tmp3x, .memsia(.src0y, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100587 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, | 102169 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 100588 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 102170 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 100589 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 102171 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| ... | @@ -100591,8 +102173,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100591,8 +102173,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100591 | } }, | 102173 | } }, |
| 100592 | }, .{ | 102174 | }, .{ |
| 100593 | .required_features = .{ .ssse3, null, null, null }, | 102175 | .required_features = .{ .ssse3, null, null, null }, |
| 100594 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102176 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 100595 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 102177 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 100596 | .patterns = &.{ | 102178 | .patterns = &.{ |
| 100597 | .{ .src = .{ .to_mem, .none, .none } }, | 102179 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100598 | }, | 102180 | }, |
| ... | @@ -100610,19 +102192,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100610,19 +102192,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100610 | .unused, | 102192 | .unused, |
| 100611 | }, | 102193 | }, |
| 100612 | .dst_temps = .{ .mem, .unused }, | 102194 | .dst_temps = .{ .mem, .unused }, |
| | 102195 | .clobbers = .{ .eflags = true }, |
| 100613 | .each = .{ .once = &.{ | 102196 | .each = .{ .once = &.{ |
| 100614 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 102197 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100615 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 102198 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 100616 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102199 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100617 | .{ .@"0:", ._, .cvttps2dq, .tmp3x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102200 | .{ .@"0:", ._, .cvttpd2dq, .tmp3x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100618 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, | 102201 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, |
| 100619 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 102202 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 100620 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 102203 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100621 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 102204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100622 | } }, | 102205 | } }, |
| 100623 | }, .{ | 102206 | }, .{ |
| 100624 | .required_features = .{ .sse, .slow_incdec, null, null }, | 102207 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 100625 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 102208 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100626 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 102209 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 100627 | .patterns = &.{ | 102210 | .patterns = &.{ |
| 100628 | .{ .src = .{ .to_mem, .none, .none } }, | 102211 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -100641,16 +102224,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100641,16 +102224,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100641 | .unused, | 102224 | .unused, |
| 100642 | }, | 102225 | }, |
| 100643 | .dst_temps = .{ .mem, .unused }, | 102226 | .dst_temps = .{ .mem, .unused }, |
| | 102227 | .clobbers = .{ .eflags = true }, |
| 100644 | .each = .{ .once = &.{ | 102228 | .each = .{ .once = &.{ |
| 100645 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102229 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100646 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102230 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100647 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 102231 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 100648 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 102232 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 100649 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 102233 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100650 | } }, | 102234 | } }, |
| 100651 | }, .{ | 102235 | }, .{ |
| 100652 | .required_features = .{ .sse, null, null, null }, | 102236 | .required_features = .{ .sse2, null, null, null }, |
| 100653 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 102237 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100654 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 102238 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 100655 | .patterns = &.{ | 102239 | .patterns = &.{ |
| 100656 | .{ .src = .{ .to_mem, .none, .none } }, | 102240 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -100669,26 +102253,529 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100669,26 +102253,529 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100669 | .unused, | 102253 | .unused, |
| 100670 | }, | 102254 | }, |
| 100671 | .dst_temps = .{ .mem, .unused }, | 102255 | .dst_temps = .{ .mem, .unused }, |
| | 102256 | .clobbers = .{ .eflags = true }, |
| 100672 | .each = .{ .once = &.{ | 102257 | .each = .{ .once = &.{ |
| 100673 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102258 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100674 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102259 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100675 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 102260 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 100676 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 102261 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 102262 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102263 | } }, |
| | 102264 | }, .{ |
| | 102265 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| | 102266 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102267 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 102268 | .patterns = &.{ |
| | 102269 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102270 | }, |
| | 102271 | .extra_temps = .{ |
| | 102272 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102273 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 102274 | .{ .type = .i16, .kind = .mem }, |
| | 102275 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 102276 | .unused, |
| | 102277 | .unused, |
| | 102278 | .unused, |
| | 102279 | .unused, |
| | 102280 | .unused, |
| | 102281 | .unused, |
| | 102282 | .unused, |
| | 102283 | }, |
| | 102284 | .dst_temps = .{ .mem, .unused }, |
| | 102285 | .each = .{ .once = &.{ |
| | 102286 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102287 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 102288 | .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ }, |
| | 102289 | .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ }, |
| | 102290 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102291 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 102292 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102293 | } }, |
| | 102294 | }, .{ |
| | 102295 | .required_features = .{ .x87, null, null, null }, |
| | 102296 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102297 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 102298 | .patterns = &.{ |
| | 102299 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102300 | }, |
| | 102301 | .extra_temps = .{ |
| | 102302 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102303 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 102304 | .{ .type = .i16, .kind = .mem }, |
| | 102305 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 102306 | .unused, |
| | 102307 | .unused, |
| | 102308 | .unused, |
| | 102309 | .unused, |
| | 102310 | .unused, |
| | 102311 | .unused, |
| | 102312 | .unused, |
| | 102313 | }, |
| | 102314 | .dst_temps = .{ .mem, .unused }, |
| | 102315 | .each = .{ .once = &.{ |
| | 102316 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102317 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 102318 | .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ }, |
| | 102319 | .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ }, |
| | 102320 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102321 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 100677 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 102322 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 100678 | } }, | 102323 | } }, |
| 100679 | }, .{ | 102324 | }, .{ |
| 100680 | .required_features = .{ .avx, .slow_incdec, null, null }, | 102325 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 100681 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 102326 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102327 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 102328 | .patterns = &.{ |
| | 102329 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102330 | }, |
| | 102331 | .call_frame = .{ .alignment = .@"16" }, |
| | 102332 | .extra_temps = .{ |
| | 102333 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102334 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 102335 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| | 102336 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 102337 | .unused, |
| | 102338 | .unused, |
| | 102339 | .unused, |
| | 102340 | .unused, |
| | 102341 | .unused, |
| | 102342 | .unused, |
| | 102343 | .unused, |
| | 102344 | }, |
| | 102345 | .dst_temps = .{ .mem, .unused }, |
| | 102346 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 102347 | .each = .{ .once = &.{ |
| | 102348 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102349 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102350 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 102351 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102352 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 102353 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102354 | } }, |
| | 102355 | }, .{ |
| | 102356 | .required_features = .{ .avx, null, null, null }, |
| | 102357 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102358 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 102359 | .patterns = &.{ |
| | 102360 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102361 | }, |
| | 102362 | .call_frame = .{ .alignment = .@"16" }, |
| | 102363 | .extra_temps = .{ |
| | 102364 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102365 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 102366 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| | 102367 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 102368 | .unused, |
| | 102369 | .unused, |
| | 102370 | .unused, |
| | 102371 | .unused, |
| | 102372 | .unused, |
| | 102373 | .unused, |
| | 102374 | .unused, |
| | 102375 | }, |
| | 102376 | .dst_temps = .{ .mem, .unused }, |
| | 102377 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 102378 | .each = .{ .once = &.{ |
| | 102379 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102380 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102381 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 102382 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102383 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 102384 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 102385 | } }, |
| | 102386 | }, .{ |
| | 102387 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| | 102388 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102389 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 102390 | .patterns = &.{ |
| | 102391 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102392 | }, |
| | 102393 | .call_frame = .{ .alignment = .@"16" }, |
| | 102394 | .extra_temps = .{ |
| | 102395 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102396 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 102397 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| | 102398 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 102399 | .unused, |
| | 102400 | .unused, |
| | 102401 | .unused, |
| | 102402 | .unused, |
| | 102403 | .unused, |
| | 102404 | .unused, |
| | 102405 | .unused, |
| | 102406 | }, |
| | 102407 | .dst_temps = .{ .mem, .unused }, |
| | 102408 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 102409 | .each = .{ .once = &.{ |
| | 102410 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102411 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102412 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 102413 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102414 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 102415 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102416 | } }, |
| | 102417 | }, .{ |
| | 102418 | .required_features = .{ .sse2, null, null, null }, |
| | 102419 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102420 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 102421 | .patterns = &.{ |
| | 102422 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102423 | }, |
| | 102424 | .call_frame = .{ .alignment = .@"16" }, |
| | 102425 | .extra_temps = .{ |
| | 102426 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102427 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 102428 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| | 102429 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 102430 | .unused, |
| | 102431 | .unused, |
| | 102432 | .unused, |
| | 102433 | .unused, |
| | 102434 | .unused, |
| | 102435 | .unused, |
| | 102436 | .unused, |
| | 102437 | }, |
| | 102438 | .dst_temps = .{ .mem, .unused }, |
| | 102439 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 102440 | .each = .{ .once = &.{ |
| | 102441 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102442 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102443 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 102444 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102445 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 102446 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 102447 | } }, |
| | 102448 | }, .{ |
| | 102449 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| | 102450 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102451 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 102452 | .patterns = &.{ |
| | 102453 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102454 | }, |
| | 102455 | .call_frame = .{ .alignment = .@"16" }, |
| | 102456 | .extra_temps = .{ |
| | 102457 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102458 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 102459 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| | 102460 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 102461 | .unused, |
| | 102462 | .unused, |
| | 102463 | .unused, |
| | 102464 | .unused, |
| | 102465 | .unused, |
| | 102466 | .unused, |
| | 102467 | .unused, |
| | 102468 | }, |
| | 102469 | .dst_temps = .{ .mem, .unused }, |
| | 102470 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 102471 | .each = .{ .once = &.{ |
| | 102472 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102473 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 102474 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102475 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 102476 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102477 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 102478 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102479 | } }, |
| | 102480 | }, .{ |
| | 102481 | .required_features = .{ .sse, null, null, null }, |
| | 102482 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100682 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 102483 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 100683 | .patterns = &.{ | 102484 | .patterns = &.{ |
| 100684 | .{ .src = .{ .to_mem, .none, .none } }, | 102485 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100685 | }, | 102486 | }, |
| 100686 | .call_frame = .{ .alignment = .@"16" }, | 102487 | .call_frame = .{ .alignment = .@"16" }, |
| | 102488 | .extra_temps = .{ |
| | 102489 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102490 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 102491 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| | 102492 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| | 102493 | .unused, |
| | 102494 | .unused, |
| | 102495 | .unused, |
| | 102496 | .unused, |
| | 102497 | .unused, |
| | 102498 | .unused, |
| | 102499 | .unused, |
| | 102500 | }, |
| | 102501 | .dst_temps = .{ .mem, .unused }, |
| | 102502 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 102503 | .each = .{ .once = &.{ |
| | 102504 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102505 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 102506 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102507 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 102508 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 102509 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 102510 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 102511 | } }, |
| | 102512 | }, .{ |
| | 102513 | .required_features = .{ .avx, null, null, null }, |
| | 102514 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 102515 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| | 102516 | .patterns = &.{ |
| | 102517 | .{ .src = .{ .mem, .none, .none } }, |
| | 102518 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 102519 | }, |
| | 102520 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 102521 | .each = .{ .once = &.{ |
| | 102522 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| | 102523 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, |
| | 102524 | } }, |
| | 102525 | }, .{ |
| | 102526 | .required_features = .{ .sse2, null, null, null }, |
| | 102527 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 102528 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| | 102529 | .patterns = &.{ |
| | 102530 | .{ .src = .{ .mem, .none, .none } }, |
| | 102531 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 102532 | }, |
| | 102533 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 102534 | .each = .{ .once = &.{ |
| | 102535 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| | 102536 | .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, |
| | 102537 | } }, |
| | 102538 | }, .{ |
| | 102539 | .required_features = .{ .avx, null, null, null }, |
| | 102540 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 102541 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| | 102542 | .patterns = &.{ |
| | 102543 | .{ .src = .{ .mem, .none, .none } }, |
| | 102544 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 102545 | }, |
| | 102546 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 102547 | .each = .{ .once = &.{ |
| | 102548 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| | 102549 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, |
| | 102550 | } }, |
| | 102551 | }, .{ |
| | 102552 | .required_features = .{ .avx, null, null, null }, |
| | 102553 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 102554 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, |
| | 102555 | .patterns = &.{ |
| | 102556 | .{ .src = .{ .mem, .none, .none } }, |
| | 102557 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 102558 | }, |
| | 102559 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 102560 | .each = .{ .once = &.{ |
| | 102561 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| | 102562 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, |
| | 102563 | } }, |
| | 102564 | }, .{ |
| | 102565 | .required_features = .{ .sse4_1, null, null, null }, |
| | 102566 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 102567 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, |
| | 102568 | .patterns = &.{ |
| | 102569 | .{ .src = .{ .mem, .none, .none } }, |
| | 102570 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 102571 | }, |
| | 102572 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 102573 | .each = .{ .once = &.{ |
| | 102574 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| | 102575 | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, |
| | 102576 | } }, |
| | 102577 | }, .{ |
| | 102578 | .required_features = .{ .avx, null, null, null }, |
| | 102579 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 102580 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| | 102581 | .patterns = &.{ |
| | 102582 | .{ .src = .{ .mem, .none, .none } }, |
| | 102583 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 102584 | }, |
| | 102585 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 102586 | .each = .{ .once = &.{ |
| | 102587 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| | 102588 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, |
| | 102589 | } }, |
| | 102590 | }, .{ |
| | 102591 | .required_features = .{ .avx, null, null, null }, |
| | 102592 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 102593 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| | 102594 | .patterns = &.{ |
| | 102595 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102596 | }, |
| | 102597 | .extra_temps = .{ |
| | 102598 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102599 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| | 102600 | .unused, |
| | 102601 | .unused, |
| | 102602 | .unused, |
| | 102603 | .unused, |
| | 102604 | .unused, |
| | 102605 | .unused, |
| | 102606 | .unused, |
| | 102607 | .unused, |
| | 102608 | .unused, |
| | 102609 | }, |
| | 102610 | .dst_temps = .{ .mem, .unused }, |
| | 102611 | .clobbers = .{ .eflags = true }, |
| | 102612 | .each = .{ .once = &.{ |
| | 102613 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102614 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102615 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 102616 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 102617 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 102618 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102619 | } }, |
| | 102620 | }, .{ |
| | 102621 | .required_features = .{ .sse2, null, null, null }, |
| | 102622 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 102623 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| | 102624 | .patterns = &.{ |
| | 102625 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102626 | }, |
| | 102627 | .extra_temps = .{ |
| | 102628 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102629 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| | 102630 | .unused, |
| | 102631 | .unused, |
| | 102632 | .unused, |
| | 102633 | .unused, |
| | 102634 | .unused, |
| | 102635 | .unused, |
| | 102636 | .unused, |
| | 102637 | .unused, |
| | 102638 | .unused, |
| | 102639 | }, |
| | 102640 | .dst_temps = .{ .mem, .unused }, |
| | 102641 | .clobbers = .{ .eflags = true }, |
| | 102642 | .each = .{ .once = &.{ |
| | 102643 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102644 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102645 | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, |
| | 102646 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 102647 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 102648 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102649 | } }, |
| | 102650 | }, .{ |
| | 102651 | .required_features = .{ .avx, null, null, null }, |
| | 102652 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| | 102653 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| | 102654 | .patterns = &.{ |
| | 102655 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102656 | }, |
| | 102657 | .extra_temps = .{ |
| | 102658 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102659 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 102660 | .unused, |
| | 102661 | .unused, |
| | 102662 | .unused, |
| | 102663 | .unused, |
| | 102664 | .unused, |
| | 102665 | .unused, |
| | 102666 | .unused, |
| | 102667 | .unused, |
| | 102668 | .unused, |
| | 102669 | }, |
| | 102670 | .dst_temps = .{ .mem, .unused }, |
| | 102671 | .clobbers = .{ .eflags = true }, |
| | 102672 | .each = .{ .once = &.{ |
| | 102673 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102674 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102675 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| | 102676 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 102677 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 102678 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102679 | } }, |
| | 102680 | }, .{ |
| | 102681 | .required_features = .{ .sse4_1, null, null, null }, |
| | 102682 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| | 102683 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, |
| | 102684 | .patterns = &.{ |
| | 102685 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102686 | }, |
| | 102687 | .extra_temps = .{ |
| | 102688 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102689 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 102690 | .unused, |
| | 102691 | .unused, |
| | 102692 | .unused, |
| | 102693 | .unused, |
| | 102694 | .unused, |
| | 102695 | .unused, |
| | 102696 | .unused, |
| | 102697 | .unused, |
| | 102698 | .unused, |
| | 102699 | }, |
| | 102700 | .dst_temps = .{ .mem, .unused }, |
| | 102701 | .clobbers = .{ .eflags = true }, |
| | 102702 | .each = .{ .once = &.{ |
| | 102703 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102704 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102705 | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, |
| | 102706 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 102707 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 102708 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102709 | } }, |
| | 102710 | }, .{ |
| | 102711 | .required_features = .{ .sse2, null, null, null }, |
| | 102712 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102713 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| | 102714 | .patterns = &.{ |
| | 102715 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102716 | }, |
| | 102717 | .extra_temps = .{ |
| | 102718 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102719 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 102720 | .unused, |
| | 102721 | .unused, |
| | 102722 | .unused, |
| | 102723 | .unused, |
| | 102724 | .unused, |
| | 102725 | .unused, |
| | 102726 | .unused, |
| | 102727 | .unused, |
| | 102728 | .unused, |
| | 102729 | }, |
| | 102730 | .dst_temps = .{ .mem, .unused }, |
| | 102731 | .clobbers = .{ .eflags = true }, |
| | 102732 | .each = .{ .once = &.{ |
| | 102733 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102734 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 102735 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 102736 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 102737 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102738 | } }, |
| | 102739 | }, .{ |
| | 102740 | .required_features = .{ .x87, null, null, null }, |
| | 102741 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102742 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| | 102743 | .patterns = &.{ |
| | 102744 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102745 | }, |
| | 102746 | .extra_temps = .{ |
| | 102747 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 102748 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 102749 | .unused, |
| | 102750 | .unused, |
| | 102751 | .unused, |
| | 102752 | .unused, |
| | 102753 | .unused, |
| | 102754 | .unused, |
| | 102755 | .unused, |
| | 102756 | .unused, |
| | 102757 | .unused, |
| | 102758 | }, |
| | 102759 | .dst_temps = .{ .mem, .unused }, |
| | 102760 | .each = .{ .once = &.{ |
| | 102761 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 102762 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 102763 | .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 102764 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 102765 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 102766 | } }, |
| | 102767 | }, .{ |
| | 102768 | .required_features = .{ .x87, null, null, null }, |
| | 102769 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 102770 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| | 102771 | .patterns = &.{ |
| | 102772 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 102773 | }, |
| 100687 | .extra_temps = .{ | 102774 | .extra_temps = .{ |
| 100688 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 102775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100689 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 102776 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 100690 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 102777 | .{ .type = .i32, .kind = .mem }, |
| 100691 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 102778 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 100692 | .unused, | 102779 | .unused, |
| 100693 | .unused, | 102780 | .unused, |
| 100694 | .unused, | 102781 | .unused, |
| ... | @@ -100698,27 +102785,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100698,27 +102785,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100698 | .unused, | 102785 | .unused, |
| 100699 | }, | 102786 | }, |
| 100700 | .dst_temps = .{ .mem, .unused }, | 102787 | .dst_temps = .{ .mem, .unused }, |
| 100701 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 100702 | .each = .{ .once = &.{ | 102788 | .each = .{ .once = &.{ |
| 100703 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102789 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100704 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102790 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 100705 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 102791 | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, |
| 100706 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 102792 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 100707 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 102793 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| | 102794 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100708 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 102795 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100709 | } }, | 102796 | } }, |
| 100710 | }, .{ | 102797 | }, .{ |
| 100711 | .required_features = .{ .avx, null, null, null }, | 102798 | .required_features = .{ .avx, null, null, null }, |
| 100712 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 102799 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100713 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 102800 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100714 | .patterns = &.{ | 102801 | .patterns = &.{ |
| 100715 | .{ .src = .{ .to_mem, .none, .none } }, | 102802 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100716 | }, | 102803 | }, |
| 100717 | .call_frame = .{ .alignment = .@"16" }, | 102804 | .call_frame = .{ .alignment = .@"16" }, |
| 100718 | .extra_temps = .{ | 102805 | .extra_temps = .{ |
| 100719 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 102806 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100720 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 102807 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 100721 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 102808 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100722 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 102809 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100723 | .unused, | 102810 | .unused, |
| 100724 | .unused, | 102811 | .unused, |
| ... | @@ -100732,24 +102819,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100732,24 +102819,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100732 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 102819 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100733 | .each = .{ .once = &.{ | 102820 | .each = .{ .once = &.{ |
| 100734 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102821 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100735 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102822 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100736 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 102823 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100737 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 102824 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 100738 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 102825 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100739 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 102826 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100740 | } }, | 102827 | } }, |
| 100741 | }, .{ | 102828 | }, .{ |
| 100742 | .required_features = .{ .sse, .slow_incdec, null, null }, | 102829 | .required_features = .{ .sse2, null, null, null }, |
| 100743 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 102830 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100744 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 102831 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100745 | .patterns = &.{ | 102832 | .patterns = &.{ |
| 100746 | .{ .src = .{ .to_mem, .none, .none } }, | 102833 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100747 | }, | 102834 | }, |
| 100748 | .call_frame = .{ .alignment = .@"16" }, | 102835 | .call_frame = .{ .alignment = .@"16" }, |
| 100749 | .extra_temps = .{ | 102836 | .extra_temps = .{ |
| 100750 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 102837 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100751 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 102838 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 100752 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 102839 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100753 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 102840 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100754 | .unused, | 102841 | .unused, |
| 100755 | .unused, | 102842 | .unused, |
| ... | @@ -100763,24 +102850,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100763,24 +102850,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100763 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 102850 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100764 | .each = .{ .once = &.{ | 102851 | .each = .{ .once = &.{ |
| 100765 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102852 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100766 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102853 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100767 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 102854 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100768 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 102855 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 100769 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 102856 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100770 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 102857 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100771 | } }, | 102858 | } }, |
| 100772 | }, .{ | 102859 | }, .{ |
| 100773 | .required_features = .{ .sse, null, null, null }, | 102860 | .required_features = .{ .sse, null, null, null }, |
| 100774 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 102861 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100775 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 102862 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100776 | .patterns = &.{ | 102863 | .patterns = &.{ |
| 100777 | .{ .src = .{ .to_mem, .none, .none } }, | 102864 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100778 | }, | 102865 | }, |
| 100779 | .call_frame = .{ .alignment = .@"16" }, | 102866 | .call_frame = .{ .alignment = .@"16" }, |
| 100780 | .extra_temps = .{ | 102867 | .extra_temps = .{ |
| 100781 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 102868 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100782 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 102869 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 100783 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 102870 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100784 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 102871 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100785 | .unused, | 102872 | .unused, |
| 100786 | .unused, | 102873 | .unused, |
| ... | @@ -100794,74 +102881,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100794,74 +102881,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100794 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 102881 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100795 | .each = .{ .once = &.{ | 102882 | .each = .{ .once = &.{ |
| 100796 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102883 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100797 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 102884 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 102885 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100798 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 102886 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100799 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 102887 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 100800 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 102888 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100801 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 102889 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100802 | } }, | 102890 | } }, |
| 100803 | }, .{ | 102891 | }, .{ |
| 100804 | .required_features = .{ .avx, null, null, null }, | 102892 | .required_features = .{ .avx, null, null, null }, |
| 100805 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102893 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 100806 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 102894 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 100807 | .patterns = &.{ | 102895 | .patterns = &.{ |
| 100808 | .{ .src = .{ .mem, .none, .none } }, | 102896 | .{ .src = .{ .mem, .none, .none } }, |
| 100809 | .{ .src = .{ .to_sse, .none, .none } }, | 102897 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100810 | }, | 102898 | }, |
| 100811 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 102899 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100812 | .each = .{ .once = &.{ | 102900 | .each = .{ .once = &.{ |
| 100813 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | 102901 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 100814 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 100815 | } }, | 102902 | } }, |
| 100816 | }, .{ | 102903 | }, .{ |
| 100817 | .required_features = .{ .sse2, null, null, null }, | 102904 | .required_features = .{ .sse2, null, null, null }, |
| 100818 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102905 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 100819 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 102906 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 100820 | .patterns = &.{ | 102907 | .patterns = &.{ |
| 100821 | .{ .src = .{ .mem, .none, .none } }, | 102908 | .{ .src = .{ .mem, .none, .none } }, |
| 100822 | .{ .src = .{ .to_sse, .none, .none } }, | 102909 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100823 | }, | 102910 | }, |
| 100824 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 102911 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100825 | .each = .{ .once = &.{ | 102912 | .each = .{ .once = &.{ |
| 100826 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | 102913 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 100827 | .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, | | |
| 100828 | } }, | 102914 | } }, |
| 100829 | }, .{ | 102915 | }, .{ |
| 100830 | .required_features = .{ .avx, null, null, null }, | 102916 | .required_features = .{ .avx, null, null, null }, |
| 100831 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102917 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 100832 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | 102918 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 100833 | .patterns = &.{ | | |
| 100834 | .{ .src = .{ .mem, .none, .none } }, | | |
| 100835 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 100836 | }, | | |
| 100837 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 100838 | .each = .{ .once = &.{ | | |
| 100839 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | | |
| 100840 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 100841 | } }, | | |
| 100842 | }, .{ | | |
| 100843 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 100844 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | | |
| 100845 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | | |
| 100846 | .patterns = &.{ | 102919 | .patterns = &.{ |
| 100847 | .{ .src = .{ .mem, .none, .none } }, | 102920 | .{ .src = .{ .mem, .none, .none } }, |
| 100848 | .{ .src = .{ .to_sse, .none, .none } }, | 102921 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100849 | }, | 102922 | }, |
| 100850 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 102923 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100851 | .each = .{ .once = &.{ | 102924 | .each = .{ .once = &.{ |
| 100852 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | 102925 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| 100853 | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, | | |
| 100854 | } }, | 102926 | } }, |
| 100855 | }, .{ | 102927 | }, .{ |
| 100856 | .required_features = .{ .avx, null, null, null }, | 102928 | .required_features = .{ .avx, null, null, null }, |
| 100857 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102929 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 100858 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 102930 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 100859 | .patterns = &.{ | 102931 | .patterns = &.{ |
| 100860 | .{ .src = .{ .to_mem, .none, .none } }, | 102932 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100861 | }, | 102933 | }, |
| 100862 | .extra_temps = .{ | 102934 | .extra_temps = .{ |
| 100863 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 102935 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100864 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 102936 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 100865 | .unused, | 102937 | .unused, |
| 100866 | .unused, | 102938 | .unused, |
| 100867 | .unused, | 102939 | .unused, |
| ... | @@ -100873,24 +102945,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100873,24 +102945,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100873 | .unused, | 102945 | .unused, |
| 100874 | }, | 102946 | }, |
| 100875 | .dst_temps = .{ .mem, .unused }, | 102947 | .dst_temps = .{ .mem, .unused }, |
| | 102948 | .clobbers = .{ .eflags = true }, |
| 100876 | .each = .{ .once = &.{ | 102949 | .each = .{ .once = &.{ |
| 100877 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102950 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100878 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 102951 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100879 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, | 102952 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 100880 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 102953 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 100881 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 100882 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 102954 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100883 | } }, | 102955 | } }, |
| 100884 | }, .{ | 102956 | }, .{ |
| 100885 | .required_features = .{ .sse2, null, null, null }, | 102957 | .required_features = .{ .sse2, null, null, null }, |
| 100886 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102958 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 100887 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 102959 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 100888 | .patterns = &.{ | 102960 | .patterns = &.{ |
| 100889 | .{ .src = .{ .to_mem, .none, .none } }, | 102961 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100890 | }, | 102962 | }, |
| 100891 | .extra_temps = .{ | 102963 | .extra_temps = .{ |
| 100892 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 102964 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100893 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 102965 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 100894 | .unused, | 102966 | .unused, |
| 100895 | .unused, | 102967 | .unused, |
| 100896 | .unused, | 102968 | .unused, |
| ... | @@ -100902,24 +102974,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100902,24 +102974,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100902 | .unused, | 102974 | .unused, |
| 100903 | }, | 102975 | }, |
| 100904 | .dst_temps = .{ .mem, .unused }, | 102976 | .dst_temps = .{ .mem, .unused }, |
| | 102977 | .clobbers = .{ .eflags = true }, |
| 100905 | .each = .{ .once = &.{ | 102978 | .each = .{ .once = &.{ |
| 100906 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 102979 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100907 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 102980 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100908 | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, | 102981 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 100909 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 100910 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 102982 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 100911 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 102983 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100912 | } }, | 102984 | } }, |
| 100913 | }, .{ | 102985 | }, .{ |
| 100914 | .required_features = .{ .avx, null, null, null }, | 102986 | .required_features = .{ .x87, null, null, null }, |
| 100915 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 102987 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100916 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | 102988 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100917 | .patterns = &.{ | 102989 | .patterns = &.{ |
| 100918 | .{ .src = .{ .to_mem, .none, .none } }, | 102990 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100919 | }, | 102991 | }, |
| 100920 | .extra_temps = .{ | 102992 | .extra_temps = .{ |
| 100921 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 102993 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100922 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 102994 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 100923 | .unused, | 102995 | .unused, |
| 100924 | .unused, | 102996 | .unused, |
| 100925 | .unused, | 102997 | .unused, |
| ... | @@ -100933,24 +103005,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100933,24 +103005,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100933 | .dst_temps = .{ .mem, .unused }, | 103005 | .dst_temps = .{ .mem, .unused }, |
| 100934 | .each = .{ .once = &.{ | 103006 | .each = .{ .once = &.{ |
| 100935 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 103007 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100936 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 103008 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 100937 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, | 103009 | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 100938 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 103010 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100939 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 100940 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103011 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100941 | } }, | 103012 | } }, |
| 100942 | }, .{ | 103013 | }, .{ |
| 100943 | .required_features = .{ .sse4_1, null, null, null }, | 103014 | .required_features = .{ .x87, null, null, null }, |
| 100944 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 103015 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100945 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | 103016 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100946 | .patterns = &.{ | 103017 | .patterns = &.{ |
| 100947 | .{ .src = .{ .to_mem, .none, .none } }, | 103018 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100948 | }, | 103019 | }, |
| 100949 | .extra_temps = .{ | 103020 | .extra_temps = .{ |
| 100950 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100951 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 103022 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 100952 | .unused, | 103023 | .{ .type = .i64, .kind = .mem }, |
| 100953 | .unused, | 103024 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100954 | .unused, | 103025 | .unused, |
| 100955 | .unused, | 103026 | .unused, |
| 100956 | .unused, | 103027 | .unused, |
| ... | @@ -100962,24 +103033,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100962,24 +103033,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100962 | .dst_temps = .{ .mem, .unused }, | 103033 | .dst_temps = .{ .mem, .unused }, |
| 100963 | .each = .{ .once = &.{ | 103034 | .each = .{ .once = &.{ |
| 100964 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 103035 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100965 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 103036 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 100966 | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, | 103037 | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, |
| 100967 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 103038 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 100968 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 103039 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 103040 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100969 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103041 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100970 | } }, | 103042 | } }, |
| 100971 | }, .{ | 103043 | }, .{ |
| 100972 | .required_features = .{ .avx, null, null, null }, | 103044 | .required_features = .{ .avx, null, null, null }, |
| 100973 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103045 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100974 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 103046 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100975 | .patterns = &.{ | 103047 | .patterns = &.{ |
| 100976 | .{ .src = .{ .to_mem, .none, .none } }, | 103048 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100977 | }, | 103049 | }, |
| 100978 | .call_frame = .{ .alignment = .@"16" }, | 103050 | .call_frame = .{ .alignment = .@"16" }, |
| 100979 | .extra_temps = .{ | 103051 | .extra_temps = .{ |
| 100980 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103052 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100981 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103053 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 100982 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 103054 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100983 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 103055 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100984 | .unused, | 103056 | .unused, |
| 100985 | .unused, | 103057 | .unused, |
| ... | @@ -100993,25 +103065,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -100993,25 +103065,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100993 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103065 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100994 | .each = .{ .once = &.{ | 103066 | .each = .{ .once = &.{ |
| 100995 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 103067 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100996 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 103068 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100997 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103069 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100998 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 103070 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 100999 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 103071 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101000 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103072 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101001 | } }, | 103073 | } }, |
| 101002 | }, .{ | 103074 | }, .{ |
| 101003 | .required_features = .{ .sse, null, null, null }, | 103075 | .required_features = .{ .avx, null, null, null }, |
| 101004 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103076 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101005 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 103077 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101006 | .patterns = &.{ | 103078 | .patterns = &.{ |
| 101007 | .{ .src = .{ .to_mem, .none, .none } }, | 103079 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101008 | }, | 103080 | }, |
| 101009 | .call_frame = .{ .alignment = .@"16" }, | 103081 | .call_frame = .{ .alignment = .@"16" }, |
| 101010 | .extra_temps = .{ | 103082 | .extra_temps = .{ |
| 101011 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103083 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101012 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103084 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101013 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 103085 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 101014 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 103086 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 101015 | .unused, | 103087 | .unused, |
| 101016 | .unused, | 103088 | .unused, |
| 101017 | .unused, | 103089 | .unused, |
| ... | @@ -101024,48 +103096,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101024,48 +103096,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101024 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103096 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101025 | .each = .{ .once = &.{ | 103097 | .each = .{ .once = &.{ |
| 101026 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 103098 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101027 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 103099 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101028 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103100 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101029 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 103101 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101030 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 103102 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101031 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103103 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101032 | } }, | 103104 | } }, |
| 101033 | }, .{ | | |
| 101034 | .required_features = .{ .avx, null, null, null }, | | |
| 101035 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | | |
| 101036 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 101037 | .patterns = &.{ | | |
| 101038 | .{ .src = .{ .mem, .none, .none } }, | | |
| 101039 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 101040 | }, | | |
| 101041 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 101042 | .each = .{ .once = &.{ | | |
| 101043 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | | |
| 101044 | } }, | | |
| 101045 | }, .{ | 103105 | }, .{ |
| 101046 | .required_features = .{ .sse2, null, null, null }, | 103106 | .required_features = .{ .sse2, null, null, null }, |
| 101047 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 103107 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101048 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 103108 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101049 | .patterns = &.{ | | |
| 101050 | .{ .src = .{ .mem, .none, .none } }, | | |
| 101051 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 101052 | }, | | |
| 101053 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 101054 | .each = .{ .once = &.{ | | |
| 101055 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, | | |
| 101056 | } }, | | |
| 101057 | }, .{ | | |
| 101058 | .required_features = .{ .avx, null, null, null }, | | |
| 101059 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | | |
| 101060 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 101061 | .patterns = &.{ | 103109 | .patterns = &.{ |
| 101062 | .{ .src = .{ .to_mem, .none, .none } }, | 103110 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101063 | }, | 103111 | }, |
| | 103112 | .call_frame = .{ .alignment = .@"16" }, |
| 101064 | .extra_temps = .{ | 103113 | .extra_temps = .{ |
| 101065 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103114 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101066 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 103115 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101067 | .unused, | 103116 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 101068 | .unused, | 103117 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101069 | .unused, | 103118 | .unused, |
| 101070 | .unused, | 103119 | .unused, |
| 101071 | .unused, | 103120 | .unused, |
| ... | @@ -101075,25 +103124,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101075,25 +103124,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101075 | .unused, | 103124 | .unused, |
| 101076 | }, | 103125 | }, |
| 101077 | .dst_temps = .{ .mem, .unused }, | 103126 | .dst_temps = .{ .mem, .unused }, |
| | 103127 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101078 | .each = .{ .once = &.{ | 103128 | .each = .{ .once = &.{ |
| 101079 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103129 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101080 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 103130 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101081 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 103131 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101082 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 103132 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 103133 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101083 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101084 | } }, | 103135 | } }, |
| 101085 | }, .{ | 103136 | }, .{ |
| 101086 | .required_features = .{ .sse2, null, null, null }, | 103137 | .required_features = .{ .sse2, null, null, null }, |
| 101087 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, | 103138 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101088 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 103139 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101089 | .patterns = &.{ | 103140 | .patterns = &.{ |
| 101090 | .{ .src = .{ .to_mem, .none, .none } }, | 103141 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101091 | }, | 103142 | }, |
| | 103143 | .call_frame = .{ .alignment = .@"16" }, |
| 101092 | .extra_temps = .{ | 103144 | .extra_temps = .{ |
| 101093 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101094 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 103146 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101095 | .unused, | 103147 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 101096 | .unused, | 103148 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 101097 | .unused, | 103149 | .unused, |
| 101098 | .unused, | 103150 | .unused, |
| 101099 | .unused, | 103151 | .unused, |
| ... | @@ -101103,16 +103155,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101103,16 +103155,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101103 | .unused, | 103155 | .unused, |
| 101104 | }, | 103156 | }, |
| 101105 | .dst_temps = .{ .mem, .unused }, | 103157 | .dst_temps = .{ .mem, .unused }, |
| | 103158 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101106 | .each = .{ .once = &.{ | 103159 | .each = .{ .once = &.{ |
| 101107 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103160 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101108 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 103161 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101109 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 103162 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101110 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 103163 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 103164 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101111 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103165 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101112 | } }, | 103166 | } }, |
| 101113 | }, .{ | 103167 | }, .{ |
| 101114 | .required_features = .{ .avx, null, null, null }, | 103168 | .required_features = .{ .sse, null, null, null }, |
| 101115 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103169 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101116 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 103170 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101117 | .patterns = &.{ | 103171 | .patterns = &.{ |
| 101118 | .{ .src = .{ .to_mem, .none, .none } }, | 103172 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101120,8 +103174,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101120,8 +103174,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101120 | .call_frame = .{ .alignment = .@"16" }, | 103174 | .call_frame = .{ .alignment = .@"16" }, |
| 101121 | .extra_temps = .{ | 103175 | .extra_temps = .{ |
| 101122 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103176 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101123 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103177 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101124 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 103178 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 101125 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 103179 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101126 | .unused, | 103180 | .unused, |
| 101127 | .unused, | 103181 | .unused, |
| ... | @@ -101134,16 +103188,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101134,16 +103188,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101134 | .dst_temps = .{ .mem, .unused }, | 103188 | .dst_temps = .{ .mem, .unused }, |
| 101135 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103189 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101136 | .each = .{ .once = &.{ | 103190 | .each = .{ .once = &.{ |
| 101137 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103191 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101138 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103192 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 103193 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101139 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103194 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101140 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 103195 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101141 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103196 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101142 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103197 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101143 | } }, | 103198 | } }, |
| 101144 | }, .{ | 103199 | }, .{ |
| 101145 | .required_features = .{ .avx, null, null, null }, | 103200 | .required_features = .{ .sse, null, null, null }, |
| 101146 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103201 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101147 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 103202 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101148 | .patterns = &.{ | 103203 | .patterns = &.{ |
| 101149 | .{ .src = .{ .to_mem, .none, .none } }, | 103204 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101151,8 +103206,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101151,8 +103206,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101151 | .call_frame = .{ .alignment = .@"16" }, | 103206 | .call_frame = .{ .alignment = .@"16" }, |
| 101152 | .extra_temps = .{ | 103207 | .extra_temps = .{ |
| 101153 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103208 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101154 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103209 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101155 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, | 103210 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 101156 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 103211 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 101157 | .unused, | 103212 | .unused, |
| 101158 | .unused, | 103213 | .unused, |
| ... | @@ -101165,26 +103220,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101165,26 +103220,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101165 | .dst_temps = .{ .mem, .unused }, | 103220 | .dst_temps = .{ .mem, .unused }, |
| 101166 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103221 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101167 | .each = .{ .once = &.{ | 103222 | .each = .{ .once = &.{ |
| 101168 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103223 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101169 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103224 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 103225 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101170 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103226 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101171 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 103227 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101172 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103228 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101173 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103229 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101174 | } }, | 103230 | } }, |
| 101175 | }, .{ | 103231 | }, .{ |
| 101176 | .required_features = .{ .sse, null, null, null }, | 103232 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 101177 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103233 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101178 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 103234 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101179 | .patterns = &.{ | 103235 | .patterns = &.{ |
| 101180 | .{ .src = .{ .to_mem, .none, .none } }, | 103236 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101181 | }, | 103237 | }, |
| 101182 | .call_frame = .{ .alignment = .@"16" }, | | |
| 101183 | .extra_temps = .{ | 103238 | .extra_temps = .{ |
| 101184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103239 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101185 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103240 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 101186 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 103241 | .unused, |
| 101187 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 103242 | .unused, |
| 101188 | .unused, | 103243 | .unused, |
| 101189 | .unused, | 103244 | .unused, |
| 101190 | .unused, | 103245 | .unused, |
| ... | @@ -101194,28 +103249,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101194,28 +103249,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101194 | .unused, | 103249 | .unused, |
| 101195 | }, | 103250 | }, |
| 101196 | .dst_temps = .{ .mem, .unused }, | 103251 | .dst_temps = .{ .mem, .unused }, |
| 101197 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103252 | .clobbers = .{ .eflags = true }, |
| 101198 | .each = .{ .once = &.{ | 103253 | .each = .{ .once = &.{ |
| 101199 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103254 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101200 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103255 | .{ .@"0:", .v_, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101201 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103256 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101202 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 103257 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101203 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 101204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103258 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101205 | } }, | 103259 | } }, |
| 101206 | }, .{ | 103260 | }, .{ |
| 101207 | .required_features = .{ .sse, null, null, null }, | 103261 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 101208 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103262 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101209 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 103263 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101210 | .patterns = &.{ | 103264 | .patterns = &.{ |
| 101211 | .{ .src = .{ .to_mem, .none, .none } }, | 103265 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101212 | }, | 103266 | }, |
| 101213 | .call_frame = .{ .alignment = .@"16" }, | | |
| 101214 | .extra_temps = .{ | 103267 | .extra_temps = .{ |
| 101215 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103268 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101216 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103269 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 101217 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, | 103270 | .unused, |
| 101218 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 103271 | .unused, |
| 101219 | .unused, | 103272 | .unused, |
| 101220 | .unused, | 103273 | .unused, |
| 101221 | .unused, | 103274 | .unused, |
| ... | @@ -101225,25 +103278,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101225,25 +103278,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101225 | .unused, | 103278 | .unused, |
| 101226 | }, | 103279 | }, |
| 101227 | .dst_temps = .{ .mem, .unused }, | 103280 | .dst_temps = .{ .mem, .unused }, |
| 101228 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103281 | .clobbers = .{ .eflags = true }, |
| 101229 | .each = .{ .once = &.{ | 103282 | .each = .{ .once = &.{ |
| 101230 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103283 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101231 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103284 | .{ .@"0:", ._, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101232 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103285 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101233 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 103286 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101234 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 101235 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101236 | } }, | 103288 | } }, |
| 101237 | }, .{ | 103289 | }, .{ |
| 101238 | .required_features = .{ .@"64bit", .avx, null, null }, | 103290 | .required_features = .{ .x87, null, null, null }, |
| 101239 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103291 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101240 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 103292 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101241 | .patterns = &.{ | 103293 | .patterns = &.{ |
| 101242 | .{ .src = .{ .to_mem, .none, .none } }, | 103294 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101243 | }, | 103295 | }, |
| 101244 | .extra_temps = .{ | 103296 | .extra_temps = .{ |
| 101245 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103297 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101246 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 103298 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101247 | .unused, | 103299 | .unused, |
| 101248 | .unused, | 103300 | .unused, |
| 101249 | .unused, | 103301 | .unused, |
| ... | @@ -101257,21 +103309,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101257,21 +103309,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101257 | .dst_temps = .{ .mem, .unused }, | 103309 | .dst_temps = .{ .mem, .unused }, |
| 101258 | .each = .{ .once = &.{ | 103310 | .each = .{ .once = &.{ |
| 101259 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103311 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101260 | .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103312 | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 101261 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 103313 | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 101262 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103314 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101263 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103315 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101264 | } }, | 103316 | } }, |
| 101265 | }, .{ | 103317 | }, .{ |
| 101266 | .required_features = .{ .@"64bit", .sse, null, null }, | 103318 | .required_features = .{ .avx, null, null, null }, |
| 101267 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103319 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101268 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 103320 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101269 | .patterns = &.{ | 103321 | .patterns = &.{ |
| 101270 | .{ .src = .{ .to_mem, .none, .none } }, | 103322 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101271 | }, | 103323 | }, |
| | 103324 | .call_frame = .{ .alignment = .@"16" }, |
| 101272 | .extra_temps = .{ | 103325 | .extra_temps = .{ |
| 101273 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103326 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101274 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 103327 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 103328 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| | 103329 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 101275 | .unused, | 103330 | .unused, |
| 101276 | .unused, | 103331 | .unused, |
| 101277 | .unused, | 103332 | .unused, |
| ... | @@ -101279,20 +103334,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101279,20 +103334,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101279 | .unused, | 103334 | .unused, |
| 101280 | .unused, | 103335 | .unused, |
| 101281 | .unused, | 103336 | .unused, |
| | 103337 | }, |
| | 103338 | .dst_temps = .{ .mem, .unused }, |
| | 103339 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 103340 | .each = .{ .once = &.{ |
| | 103341 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 103342 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 103343 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 103344 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 103345 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 103346 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 103347 | } }, |
| | 103348 | }, .{ |
| | 103349 | .required_features = .{ .avx, null, null, null }, |
| | 103350 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 103351 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 103352 | .patterns = &.{ |
| | 103353 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 103354 | }, |
| | 103355 | .call_frame = .{ .alignment = .@"16" }, |
| | 103356 | .extra_temps = .{ |
| | 103357 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 103358 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 103359 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| | 103360 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 103361 | .unused, |
| | 103362 | .unused, |
| | 103363 | .unused, |
| | 103364 | .unused, |
| | 103365 | .unused, |
| 101282 | .unused, | 103366 | .unused, |
| 101283 | .unused, | 103367 | .unused, |
| 101284 | }, | 103368 | }, |
| 101285 | .dst_temps = .{ .mem, .unused }, | 103369 | .dst_temps = .{ .mem, .unused }, |
| | 103370 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101286 | .each = .{ .once = &.{ | 103371 | .each = .{ .once = &.{ |
| 101287 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103372 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101288 | .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103373 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101289 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 103374 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101290 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103375 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 103376 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101291 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103377 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101292 | } }, | 103378 | } }, |
| 101293 | }, .{ | 103379 | }, .{ |
| 101294 | .required_features = .{ .avx, null, null, null }, | 103380 | .required_features = .{ .sse2, null, null, null }, |
| 101295 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103381 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101296 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 103382 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101297 | .patterns = &.{ | 103383 | .patterns = &.{ |
| 101298 | .{ .src = .{ .to_mem, .none, .none } }, | 103384 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101300,8 +103386,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101300,8 +103386,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101300 | .call_frame = .{ .alignment = .@"16" }, | 103386 | .call_frame = .{ .alignment = .@"16" }, |
| 101301 | .extra_temps = .{ | 103387 | .extra_temps = .{ |
| 101302 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103388 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101303 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103389 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101304 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, | 103390 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| 101305 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 103391 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 101306 | .unused, | 103392 | .unused, |
| 101307 | .unused, | 103393 | .unused, |
| ... | @@ -101315,15 +103401,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101315,15 +103401,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101315 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103401 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101316 | .each = .{ .once = &.{ | 103402 | .each = .{ .once = &.{ |
| 101317 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103403 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101318 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103404 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101319 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103405 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101320 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103406 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101321 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103407 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101322 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103408 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101323 | } }, | 103409 | } }, |
| 101324 | }, .{ | 103410 | }, .{ |
| 101325 | .required_features = .{ .avx, null, null, null }, | 103411 | .required_features = .{ .sse2, null, null, null }, |
| 101326 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103412 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101327 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 103413 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101328 | .patterns = &.{ | 103414 | .patterns = &.{ |
| 101329 | .{ .src = .{ .to_mem, .none, .none } }, | 103415 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101331,8 +103417,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101331,8 +103417,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101331 | .call_frame = .{ .alignment = .@"16" }, | 103417 | .call_frame = .{ .alignment = .@"16" }, |
| 101332 | .extra_temps = .{ | 103418 | .extra_temps = .{ |
| 101333 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103419 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101334 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103420 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101335 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, | 103421 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| 101336 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 103422 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101337 | .unused, | 103423 | .unused, |
| 101338 | .unused, | 103424 | .unused, |
| ... | @@ -101346,15 +103432,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101346,15 +103432,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101346 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103432 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101347 | .each = .{ .once = &.{ | 103433 | .each = .{ .once = &.{ |
| 101348 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103434 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101349 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103435 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101350 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103436 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101351 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103437 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101352 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103438 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101353 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103439 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101354 | } }, | 103440 | } }, |
| 101355 | }, .{ | 103441 | }, .{ |
| 101356 | .required_features = .{ .sse, null, null, null }, | 103442 | .required_features = .{ .sse, null, null, null }, |
| 101357 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103443 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101358 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 103444 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101359 | .patterns = &.{ | 103445 | .patterns = &.{ |
| 101360 | .{ .src = .{ .to_mem, .none, .none } }, | 103446 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101362,8 +103448,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101362,8 +103448,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101362 | .call_frame = .{ .alignment = .@"16" }, | 103448 | .call_frame = .{ .alignment = .@"16" }, |
| 101363 | .extra_temps = .{ | 103449 | .extra_temps = .{ |
| 101364 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103450 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101365 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103451 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101366 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, | 103452 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| 101367 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 103453 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 101368 | .unused, | 103454 | .unused, |
| 101369 | .unused, | 103455 | .unused, |
| ... | @@ -101377,15 +103463,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101377,15 +103463,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101377 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103463 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101378 | .each = .{ .once = &.{ | 103464 | .each = .{ .once = &.{ |
| 101379 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103465 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101380 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103466 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 103467 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101381 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103468 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101382 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103469 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101383 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103470 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101384 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103471 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101385 | } }, | 103472 | } }, |
| 101386 | }, .{ | 103473 | }, .{ |
| 101387 | .required_features = .{ .sse, null, null, null }, | 103474 | .required_features = .{ .sse, null, null, null }, |
| 101388 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103475 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101389 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 103476 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101390 | .patterns = &.{ | 103477 | .patterns = &.{ |
| 101391 | .{ .src = .{ .to_mem, .none, .none } }, | 103478 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101393,8 +103480,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101393,8 +103480,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101393 | .call_frame = .{ .alignment = .@"16" }, | 103480 | .call_frame = .{ .alignment = .@"16" }, |
| 101394 | .extra_temps = .{ | 103481 | .extra_temps = .{ |
| 101395 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103482 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101396 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103483 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101397 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, | 103484 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| 101398 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 103485 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101399 | .unused, | 103486 | .unused, |
| 101400 | .unused, | 103487 | .unused, |
| ... | @@ -101408,15 +103495,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101408,15 +103495,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101408 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103495 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101409 | .each = .{ .once = &.{ | 103496 | .each = .{ .once = &.{ |
| 101410 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103497 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101411 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103498 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 103499 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101412 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103500 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101413 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103501 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101414 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103502 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101415 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103503 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101416 | } }, | 103504 | } }, |
| 101417 | }, .{ | 103505 | }, .{ |
| 101418 | .required_features = .{ .avx, null, null, null }, | 103506 | .required_features = .{ .avx, null, null, null }, |
| 101419 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103507 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101420 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 103508 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101421 | .patterns = &.{ | 103509 | .patterns = &.{ |
| 101422 | .{ .src = .{ .to_mem, .none, .none } }, | 103510 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101424,8 +103512,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101424,8 +103512,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101424 | .call_frame = .{ .alignment = .@"16" }, | 103512 | .call_frame = .{ .alignment = .@"16" }, |
| 101425 | .extra_temps = .{ | 103513 | .extra_temps = .{ |
| 101426 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103514 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101427 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103515 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101428 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, | 103516 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 101429 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 103517 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101430 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 103518 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 101431 | .unused, | 103519 | .unused, |
| ... | @@ -101439,16 +103527,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101439,16 +103527,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101439 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103527 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101440 | .each = .{ .once = &.{ | 103528 | .each = .{ .once = &.{ |
| 101441 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103529 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101442 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103530 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101443 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103531 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101444 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103532 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101445 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 103533 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101446 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103534 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101447 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103535 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101448 | } }, | 103536 | } }, |
| 101449 | }, .{ | 103537 | }, .{ |
| 101450 | .required_features = .{ .avx, null, null, null }, | 103538 | .required_features = .{ .avx, null, null, null }, |
| 101451 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103539 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101452 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 103540 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101453 | .patterns = &.{ | 103541 | .patterns = &.{ |
| 101454 | .{ .src = .{ .to_mem, .none, .none } }, | 103542 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101456,8 +103544,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101456,8 +103544,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101456 | .call_frame = .{ .alignment = .@"16" }, | 103544 | .call_frame = .{ .alignment = .@"16" }, |
| 101457 | .extra_temps = .{ | 103545 | .extra_temps = .{ |
| 101458 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103546 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101459 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103547 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101460 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, | 103548 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 101461 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 103549 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101462 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 103550 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 101463 | .unused, | 103551 | .unused, |
| ... | @@ -101471,16 +103559,80 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101471,16 +103559,80 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101471 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103559 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101472 | .each = .{ .once = &.{ | 103560 | .each = .{ .once = &.{ |
| 101473 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103561 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101474 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103562 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101475 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103563 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101476 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103564 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101477 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 103565 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101478 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103566 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 103567 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 103568 | } }, |
| | 103569 | }, .{ |
| | 103570 | .required_features = .{ .sse2, null, null, null }, |
| | 103571 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 103572 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 103573 | .patterns = &.{ |
| | 103574 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 103575 | }, |
| | 103576 | .call_frame = .{ .alignment = .@"16" }, |
| | 103577 | .extra_temps = .{ |
| | 103578 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 103579 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 103580 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| | 103581 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 103582 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| | 103583 | .unused, |
| | 103584 | .unused, |
| | 103585 | .unused, |
| | 103586 | .unused, |
| | 103587 | .unused, |
| | 103588 | .unused, |
| | 103589 | }, |
| | 103590 | .dst_temps = .{ .mem, .unused }, |
| | 103591 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 103592 | .each = .{ .once = &.{ |
| | 103593 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 103594 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 103595 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 103596 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 103597 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 103598 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 103599 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 103600 | } }, |
| | 103601 | }, .{ |
| | 103602 | .required_features = .{ .sse2, null, null, null }, |
| | 103603 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 103604 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 103605 | .patterns = &.{ |
| | 103606 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 103607 | }, |
| | 103608 | .call_frame = .{ .alignment = .@"16" }, |
| | 103609 | .extra_temps = .{ |
| | 103610 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 103611 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| | 103612 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| | 103613 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 103614 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 103615 | .unused, |
| | 103616 | .unused, |
| | 103617 | .unused, |
| | 103618 | .unused, |
| | 103619 | .unused, |
| | 103620 | .unused, |
| | 103621 | }, |
| | 103622 | .dst_temps = .{ .mem, .unused }, |
| | 103623 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 103624 | .each = .{ .once = &.{ |
| | 103625 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 103626 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 103627 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 103628 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 103629 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 103630 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101479 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103631 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101480 | } }, | 103632 | } }, |
| 101481 | }, .{ | 103633 | }, .{ |
| 101482 | .required_features = .{ .sse, null, null, null }, | 103634 | .required_features = .{ .sse, null, null, null }, |
| 101483 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103635 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101484 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 103636 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101485 | .patterns = &.{ | 103637 | .patterns = &.{ |
| 101486 | .{ .src = .{ .to_mem, .none, .none } }, | 103638 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101488,8 +103640,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101488,8 +103640,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101488 | .call_frame = .{ .alignment = .@"16" }, | 103640 | .call_frame = .{ .alignment = .@"16" }, |
| 101489 | .extra_temps = .{ | 103641 | .extra_temps = .{ |
| 101490 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103642 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101491 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103643 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101492 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, | 103644 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 101493 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 103645 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101494 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 103646 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 101495 | .unused, | 103647 | .unused, |
| ... | @@ -101503,16 +103655,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101503,16 +103655,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101503 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103655 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101504 | .each = .{ .once = &.{ | 103656 | .each = .{ .once = &.{ |
| 101505 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103657 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101506 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103658 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 103659 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101507 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103660 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101508 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103661 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101509 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 103662 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101510 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103663 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101511 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103664 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101512 | } }, | 103665 | } }, |
| 101513 | }, .{ | 103666 | }, .{ |
| 101514 | .required_features = .{ .sse, null, null, null }, | 103667 | .required_features = .{ .sse, null, null, null }, |
| 101515 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103668 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101516 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 103669 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101517 | .patterns = &.{ | 103670 | .patterns = &.{ |
| 101518 | .{ .src = .{ .to_mem, .none, .none } }, | 103671 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101520,8 +103673,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101520,8 +103673,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101520 | .call_frame = .{ .alignment = .@"16" }, | 103673 | .call_frame = .{ .alignment = .@"16" }, |
| 101521 | .extra_temps = .{ | 103674 | .extra_temps = .{ |
| 101522 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 103675 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101523 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103676 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101524 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, | 103677 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 101525 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 103678 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101526 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 103679 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 101527 | .unused, | 103680 | .unused, |
| ... | @@ -101535,16 +103688,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101535,16 +103688,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101535 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 103688 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101536 | .each = .{ .once = &.{ | 103689 | .each = .{ .once = &.{ |
| 101537 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 103690 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101538 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103691 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 103692 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101539 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 103693 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101540 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 103694 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101541 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 103695 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101542 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103696 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101543 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103697 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101544 | } }, | 103698 | } }, |
| 101545 | }, .{ | 103699 | }, .{ |
| 101546 | .required_features = .{ .@"64bit", .avx, null, null }, | 103700 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 101547 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103701 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101548 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 103702 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101549 | .patterns = &.{ | 103703 | .patterns = &.{ |
| 101550 | .{ .src = .{ .to_mem, .none, .none } }, | 103704 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101555,8 +103709,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101555,8 +103709,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101555 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 103709 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101556 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 103710 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101557 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 103711 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101558 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103712 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101559 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, | 103713 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 101560 | .unused, | 103714 | .unused, |
| 101561 | .unused, | 103715 | .unused, |
| 101562 | .unused, | 103716 | .unused, |
| ... | @@ -101570,15 +103724,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101570,15 +103724,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101570 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 103724 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101571 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 103725 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101572 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 103726 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 101573 | .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103727 | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101574 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 103728 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101575 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 103729 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101576 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103730 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101577 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103731 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101578 | } }, | 103732 | } }, |
| 101579 | }, .{ | 103733 | }, .{ |
| 101580 | .required_features = .{ .@"64bit", .avx, null, null }, | 103734 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 101581 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103735 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101582 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 103736 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101583 | .patterns = &.{ | 103737 | .patterns = &.{ |
| 101584 | .{ .src = .{ .to_mem, .none, .none } }, | 103738 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101589,8 +103743,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101589,8 +103743,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101589 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 103743 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101590 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 103744 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101591 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 103745 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101592 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103746 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101593 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, | 103747 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 101594 | .unused, | 103748 | .unused, |
| 101595 | .unused, | 103749 | .unused, |
| 101596 | .unused, | 103750 | .unused, |
| ... | @@ -101604,15 +103758,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101604,15 +103758,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101604 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 103758 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101605 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 103759 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101606 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 103760 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 101607 | .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103761 | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101608 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 103762 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101609 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 103763 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101610 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103764 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101611 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103765 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101612 | } }, | 103766 | } }, |
| 101613 | }, .{ | 103767 | }, .{ |
| 101614 | .required_features = .{ .@"64bit", .sse, null, null }, | 103768 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 101615 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103769 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101616 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 103770 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101617 | .patterns = &.{ | 103771 | .patterns = &.{ |
| 101618 | .{ .src = .{ .to_mem, .none, .none } }, | 103772 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101623,8 +103777,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101623,8 +103777,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101623 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 103777 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101624 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 103778 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101625 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 103779 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101626 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103780 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101627 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, | 103781 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 101628 | .unused, | 103782 | .unused, |
| 101629 | .unused, | 103783 | .unused, |
| 101630 | .unused, | 103784 | .unused, |
| ... | @@ -101638,15 +103792,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101638,15 +103792,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101638 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 103792 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101639 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 103793 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101640 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 103794 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 101641 | .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103795 | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101642 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 103796 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101643 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 103797 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101644 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103798 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101645 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103799 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101646 | } }, | 103800 | } }, |
| 101647 | }, .{ | 103801 | }, .{ |
| 101648 | .required_features = .{ .@"64bit", .sse, null, null }, | 103802 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 101649 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, | 103803 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101650 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 103804 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101651 | .patterns = &.{ | 103805 | .patterns = &.{ |
| 101652 | .{ .src = .{ .to_mem, .none, .none } }, | 103806 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -101657,8 +103811,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101657,8 +103811,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101657 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 103811 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101658 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 103812 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101659 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 103813 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101660 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 103814 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101661 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, | 103815 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 101662 | .unused, | 103816 | .unused, |
| 101663 | .unused, | 103817 | .unused, |
| 101664 | .unused, | 103818 | .unused, |
| ... | @@ -101672,98 +103826,93 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101672,98 +103826,93 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101672 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 103826 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101673 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 103827 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101674 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 103828 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 101675 | .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 103829 | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101676 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 103830 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101677 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 103831 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101678 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 103832 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101679 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 103833 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101680 | } }, | 103834 | } }, |
| 101681 | }, .{ | 103835 | }, .{ |
| 101682 | .required_features = .{ .avx, null, null, null }, | 103836 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101683 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 103837 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101684 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, | 103838 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101685 | .patterns = &.{ | | |
| 101686 | .{ .src = .{ .mem, .none, .none } }, | | |
| 101687 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 101688 | }, | | |
| 101689 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 101690 | .each = .{ .once = &.{ | | |
| 101691 | .{ ._, .v_, .cvttsd2si, .dst0d, .src0q, ._, ._ }, | | |
| 101692 | } }, | | |
| 101693 | }, .{ | | |
| 101694 | .required_features = .{ .sse2, null, null, null }, | | |
| 101695 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | | |
| 101696 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, | | |
| 101697 | .patterns = &.{ | | |
| 101698 | .{ .src = .{ .mem, .none, .none } }, | | |
| 101699 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 101700 | }, | | |
| 101701 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 101702 | .each = .{ .once = &.{ | | |
| 101703 | .{ ._, ._, .cvttsd2si, .dst0d, .src0q, ._, ._ }, | | |
| 101704 | } }, | | |
| 101705 | }, .{ | | |
| 101706 | .required_features = .{ .x87, null, null, null }, | | |
| 101707 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | | |
| 101708 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, | | |
| 101709 | .patterns = &.{ | 103839 | .patterns = &.{ |
| 101710 | .{ .src = .{ .to_mem, .none, .none } }, | 103840 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101711 | }, | 103841 | }, |
| | 103842 | .call_frame = .{ .alignment = .@"16" }, |
| 101712 | .extra_temps = .{ | 103843 | .extra_temps = .{ |
| 101713 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 103844 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101714 | .{ .type = .i16, .kind = .mem }, | 103845 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101715 | .unused, | 103846 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101716 | .unused, | 103847 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101717 | .unused, | 103848 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101718 | .unused, | 103849 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 101719 | .unused, | 103850 | .unused, |
| 101720 | .unused, | 103851 | .unused, |
| 101721 | .unused, | 103852 | .unused, |
| 101722 | .unused, | 103853 | .unused, |
| 101723 | .unused, | 103854 | .unused, |
| 101724 | }, | 103855 | }, |
| 101725 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 103856 | .dst_temps = .{ .mem, .unused }, |
| | 103857 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101726 | .each = .{ .once = &.{ | 103858 | .each = .{ .once = &.{ |
| 101727 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | 103859 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101728 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, | 103860 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101729 | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, | 103861 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| | 103862 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 103863 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 103864 | .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 103865 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 103866 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 103867 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 103868 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101730 | } }, | 103869 | } }, |
| 101731 | }, .{ | 103870 | }, .{ |
| 101732 | .required_features = .{ .x87, null, null, null }, | 103871 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101733 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 103872 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101734 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, | 103873 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101735 | .patterns = &.{ | 103874 | .patterns = &.{ |
| 101736 | .{ .src = .{ .to_mem, .none, .none } }, | 103875 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101737 | }, | 103876 | }, |
| | 103877 | .call_frame = .{ .alignment = .@"16" }, |
| 101738 | .extra_temps = .{ | 103878 | .extra_temps = .{ |
| 101739 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 103879 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101740 | .{ .type = .i16, .kind = .mem }, | 103880 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101741 | .unused, | 103881 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101742 | .unused, | 103882 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101743 | .unused, | 103883 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 101744 | .unused, | 103884 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 101745 | .unused, | 103885 | .unused, |
| 101746 | .unused, | 103886 | .unused, |
| 101747 | .unused, | 103887 | .unused, |
| 101748 | .unused, | 103888 | .unused, |
| 101749 | .unused, | 103889 | .unused, |
| 101750 | }, | 103890 | }, |
| 101751 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 103891 | .dst_temps = .{ .mem, .unused }, |
| | 103892 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101752 | .each = .{ .once = &.{ | 103893 | .each = .{ .once = &.{ |
| 101753 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | 103894 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101754 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, | 103895 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101755 | .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ }, | 103896 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| | 103897 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 103898 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 103899 | .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 103900 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 103901 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 103902 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 103903 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101756 | } }, | 103904 | } }, |
| 101757 | }, .{ | 103905 | }, .{ |
| 101758 | .required_features = .{ .x87, null, null, null }, | 103906 | .required_features = .{ .x87, null, null, null }, |
| 101759 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 103907 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 101760 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, | 103908 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 101761 | .patterns = &.{ | 103909 | .patterns = &.{ |
| 101762 | .{ .src = .{ .to_mem, .none, .none } }, | 103910 | .{ .src = .{ .mem, .none, .none } }, |
| | 103911 | .{ .src = .{ .to_x87, .none, .none } }, |
| 101763 | }, | 103912 | }, |
| 101764 | .extra_temps = .{ | 103913 | .extra_temps = .{ |
| 101765 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 103914 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101766 | .unused, | 103915 | .{ .type = .i16, .kind = .mem }, |
| 101767 | .unused, | 103916 | .unused, |
| 101768 | .unused, | 103917 | .unused, |
| 101769 | .unused, | 103918 | .unused, |
| ... | @@ -101774,20 +103923,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101774,20 +103923,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101774 | .unused, | 103923 | .unused, |
| 101775 | .unused, | 103924 | .unused, |
| 101776 | }, | 103925 | }, |
| 101777 | .dst_temps = .{ .mem, .unused }, | 103926 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 101778 | .each = .{ .once = &.{ | 103927 | .each = .{ .once = &.{ |
| 101779 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | 103928 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 101780 | .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, | 103929 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| | 103930 | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, |
| 101781 | } }, | 103931 | } }, |
| 101782 | }, .{ | 103932 | }, .{ |
| 101783 | .required_features = .{ .x87, null, null, null }, | 103933 | .required_features = .{ .x87, null, null, null }, |
| 101784 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 103934 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 101785 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, | 103935 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 101786 | .patterns = &.{ | 103936 | .patterns = &.{ |
| 101787 | .{ .src = .{ .to_mem, .none, .none } }, | 103937 | .{ .src = .{ .mem, .none, .none } }, |
| | 103938 | .{ .src = .{ .to_x87, .none, .none } }, |
| 101788 | }, | 103939 | }, |
| 101789 | .extra_temps = .{ | 103940 | .extra_temps = .{ |
| 101790 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 103941 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 103942 | .{ .type = .i16, .kind = .mem }, |
| 101791 | .unused, | 103943 | .unused, |
| 101792 | .unused, | 103944 | .unused, |
| 101793 | .unused, | 103945 | .unused, |
| ... | @@ -101797,50 +103949,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101797,50 +103949,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101797 | .unused, | 103949 | .unused, |
| 101798 | .unused, | 103950 | .unused, |
| 101799 | .unused, | 103951 | .unused, |
| 101800 | .unused, | | |
| 101801 | }, | | |
| 101802 | .dst_temps = .{ .mem, .unused }, | | |
| 101803 | .each = .{ .once = &.{ | | |
| 101804 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | | |
| 101805 | .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, | | |
| 101806 | } }, | | |
| 101807 | }, .{ | | |
| 101808 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 101809 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | | |
| 101810 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, | | |
| 101811 | .patterns = &.{ | | |
| 101812 | .{ .src = .{ .mem, .none, .none } }, | | |
| 101813 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 101814 | }, | | |
| 101815 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 101816 | .each = .{ .once = &.{ | | |
| 101817 | .{ ._, .v_, .cvttsd2si, .dst0q, .src0q, ._, ._ }, | | |
| 101818 | } }, | | |
| 101819 | }, .{ | | |
| 101820 | .required_features = .{ .@"64bit", .sse2, null, null }, | | |
| 101821 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | | |
| 101822 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, | | |
| 101823 | .patterns = &.{ | | |
| 101824 | .{ .src = .{ .mem, .none, .none } }, | | |
| 101825 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 101826 | }, | 103952 | }, |
| 101827 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 103953 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 101828 | .each = .{ .once = &.{ | 103954 | .each = .{ .once = &.{ |
| 101829 | .{ ._, ._, .cvttsd2si, .dst0q, .src0q, ._, ._ }, | 103955 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 103956 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| | 103957 | .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ }, |
| 101830 | } }, | 103958 | } }, |
| 101831 | }, .{ | 103959 | }, .{ |
| 101832 | .required_features = .{ .x87, null, null, null }, | 103960 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 101833 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 103961 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 101834 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, | 103962 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101835 | .patterns = &.{ | 103963 | .patterns = &.{ |
| 101836 | .{ .src = .{ .to_mem, .none, .none } }, | 103964 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101837 | }, | 103965 | }, |
| 101838 | .extra_temps = .{ | 103966 | .extra_temps = .{ |
| 101839 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 103967 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101840 | .unused, | 103968 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101841 | .unused, | 103969 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 101842 | .unused, | 103970 | .{ .type = .i16, .kind = .mem }, |
| 101843 | .unused, | 103971 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101844 | .unused, | 103972 | .unused, |
| 101845 | .unused, | 103973 | .unused, |
| 101846 | .unused, | 103974 | .unused, |
| ... | @@ -101849,55 +103977,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101849,55 +103977,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101849 | .unused, | 103977 | .unused, |
| 101850 | }, | 103978 | }, |
| 101851 | .dst_temps = .{ .mem, .unused }, | 103979 | .dst_temps = .{ .mem, .unused }, |
| 101852 | .each = .{ .once = &.{ | | |
| 101853 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | | |
| 101854 | .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ }, | | |
| 101855 | } }, | | |
| 101856 | }, .{ | | |
| 101857 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 101858 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | | |
| 101859 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, | | |
| 101860 | .patterns = &.{ | | |
| 101861 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 101862 | }, | | |
| 101863 | .extra_temps = .{ | | |
| 101864 | .{ .type = .f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, | | |
| 101865 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 101866 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 101867 | .{ .type = .f64, .kind = .{ .@"0x1p63_mem" = .{} } }, | | |
| 101868 | .unused, | | |
| 101869 | .unused, | | |
| 101870 | .unused, | | |
| 101871 | .unused, | | |
| 101872 | .unused, | | |
| 101873 | .unused, | | |
| 101874 | .unused, | | |
| 101875 | }, | | |
| 101876 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 101877 | .clobbers = .{ .eflags = true }, | 103980 | .clobbers = .{ .eflags = true }, |
| 101878 | .each = .{ .once = &.{ | 103981 | .each = .{ .once = &.{ |
| 101879 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, | 103982 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 101880 | .{ ._, .v_, .cvttsd2si, .tmp2q, .src0d, ._, ._ }, | 103983 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101881 | .{ ._, .v_sd, .sub, .tmp0x, .src0x, .lea(.tmp1q), ._ }, | 103984 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 101882 | .{ ._, .v_, .cvttsd2si, .dst0q, .tmp0d, ._, ._ }, | 103985 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 101883 | .{ ._, ._, .mov, .tmp1q, .tmp2q, ._, ._ }, | 103986 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 101884 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, | 103987 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 101885 | .{ ._, ._, .@"and", .dst0q, .tmp2q, ._, ._ }, | 103988 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 101886 | .{ ._, ._, .@"or", .dst0q, .tmp1q, ._, ._ }, | 103989 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| | 103990 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101887 | } }, | 103991 | } }, |
| 101888 | }, .{ | 103992 | }, .{ |
| 101889 | .required_features = .{ .@"64bit", .sse2, null, null }, | 103993 | .required_features = .{ .x87, null, null, null }, |
| 101890 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 103994 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 101891 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, | 103995 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101892 | .patterns = &.{ | 103996 | .patterns = &.{ |
| 101893 | .{ .src = .{ .to_mut_sse, .none, .none } }, | 103997 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101894 | }, | 103998 | }, |
| 101895 | .extra_temps = .{ | 103999 | .extra_temps = .{ |
| 101896 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 104000 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101897 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 104001 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101898 | .{ .type = .f64, .kind = .{ .@"0x1p63_mem" = .{} } }, | 104002 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 101899 | .unused, | 104003 | .{ .type = .i16, .kind = .mem }, |
| 101900 | .unused, | 104004 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101901 | .unused, | 104005 | .unused, |
| 101902 | .unused, | 104006 | .unused, |
| 101903 | .unused, | 104007 | .unused, |
| ... | @@ -101905,31 +104009,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101905,31 +104009,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101905 | .unused, | 104009 | .unused, |
| 101906 | .unused, | 104010 | .unused, |
| 101907 | }, | 104011 | }, |
| 101908 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 104012 | .dst_temps = .{ .mem, .unused }, |
| 101909 | .clobbers = .{ .eflags = true }, | 104013 | .clobbers = .{ .eflags = true }, |
| 101910 | .each = .{ .once = &.{ | 104014 | .each = .{ .once = &.{ |
| 101911 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | 104015 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 101912 | .{ ._, ._, .cvttsd2si, .tmp1q, .src0d, ._, ._ }, | 104016 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101913 | .{ ._, ._sd, .sub, .src0x, .lea(.tmp0q), ._, ._ }, | 104017 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 101914 | .{ ._, ._, .cvttsd2si, .dst0q, .src0d, ._, ._ }, | 104018 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 101915 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, | 104019 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 101916 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, | 104020 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 101917 | .{ ._, ._, .@"and", .dst0q, .tmp1q, ._, ._ }, | 104021 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 101918 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, | 104022 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| | 104023 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 101919 | } }, | 104024 | } }, |
| 101920 | }, .{ | 104025 | }, .{ |
| 101921 | .required_features = .{ .@"64bit", .x87, null, null }, | 104026 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 101922 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 104027 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 101923 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, | 104028 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101924 | .patterns = &.{ | 104029 | .patterns = &.{ |
| 101925 | .{ .src = .{ .to_mem, .none, .none } }, | 104030 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101926 | }, | 104031 | }, |
| 101927 | .extra_temps = .{ | 104032 | .extra_temps = .{ |
| 101928 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 104033 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101929 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, | 104034 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101930 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | 104035 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 101931 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 104036 | .{ .type = .i16, .kind = .mem }, |
| 101932 | .{ .type = .i64, .kind = .mem }, | 104037 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101933 | .unused, | 104038 | .unused, |
| 101934 | .unused, | 104039 | .unused, |
| 101935 | .unused, | 104040 | .unused, |
| ... | @@ -101937,61 +104042,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101937,61 +104042,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101937 | .unused, | 104042 | .unused, |
| 101938 | .unused, | 104043 | .unused, |
| 101939 | }, | 104044 | }, |
| 101940 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 104045 | .dst_temps = .{ .mem, .unused }, |
| 101941 | .clobbers = .{ .eflags = true }, | 104046 | .clobbers = .{ .eflags = true }, |
| 101942 | .each = .{ .once = &.{ | 104047 | .each = .{ .once = &.{ |
| 101943 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, | 104048 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 101944 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 104049 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101945 | .{ ._, .f_, .ld, .tmp3t, ._, ._, ._ }, | 104050 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 101946 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, | 104051 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 101947 | .{ ._, ._, .mov, .dst0q, .tmp4q, ._, ._ }, | 104052 | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, |
| 101948 | .{ ._, .f_, .sub, .lea(.tmp0d), ._, ._, ._ }, | 104053 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 101949 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 104054 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 101950 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, | 104055 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 101951 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, | 104056 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101952 | .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ }, | | |
| 101953 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, | | |
| 101954 | } }, | | |
| 101955 | }, .{ | | |
| 101956 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 101957 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | | |
| 101958 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | | |
| 101959 | .patterns = &.{ | | |
| 101960 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | | |
| 101961 | }, | | |
| 101962 | .call_frame = .{ .alignment = .@"16" }, | | |
| 101963 | .extra_temps = .{ | | |
| 101964 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, | | |
| 101965 | .unused, | | |
| 101966 | .unused, | | |
| 101967 | .unused, | | |
| 101968 | .unused, | | |
| 101969 | .unused, | | |
| 101970 | .unused, | | |
| 101971 | .unused, | | |
| 101972 | .unused, | | |
| 101973 | .unused, | | |
| 101974 | .unused, | | |
| 101975 | }, | | |
| 101976 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | | |
| 101977 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 101978 | .each = .{ .once = &.{ | | |
| 101979 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | | |
| 101980 | } }, | 104057 | } }, |
| 101981 | }, .{ | 104058 | }, .{ |
| 101982 | .required_features = .{ .@"64bit", .sse, null, null }, | 104059 | .required_features = .{ .x87, null, null, null }, |
| 101983 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 104060 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 101984 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 104061 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101985 | .patterns = &.{ | 104062 | .patterns = &.{ |
| 101986 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 104063 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101987 | }, | 104064 | }, |
| 101988 | .call_frame = .{ .alignment = .@"16" }, | | |
| 101989 | .extra_temps = .{ | 104065 | .extra_temps = .{ |
| 101990 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, | 104066 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101991 | .unused, | 104067 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101992 | .unused, | 104068 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 101993 | .unused, | 104069 | .{ .type = .i16, .kind = .mem }, |
| 101994 | .unused, | 104070 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101995 | .unused, | 104071 | .unused, |
| 101996 | .unused, | 104072 | .unused, |
| 101997 | .unused, | 104073 | .unused, |
| ... | @@ -101999,51 +104075,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -101999,51 +104075,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101999 | .unused, | 104075 | .unused, |
| 102000 | .unused, | 104076 | .unused, |
| 102001 | }, | 104077 | }, |
| 102002 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 104078 | .dst_temps = .{ .mem, .unused }, |
| 102003 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104079 | .clobbers = .{ .eflags = true }, |
| 102004 | .each = .{ .once = &.{ | 104080 | .each = .{ .once = &.{ |
| 102005 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 104081 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 104082 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 104083 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| | 104084 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| | 104085 | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, |
| | 104086 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| | 104087 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| | 104088 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| | 104089 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 102006 | } }, | 104090 | } }, |
| 102007 | }, .{ | 104091 | }, .{ |
| 102008 | .required_features = .{ .@"64bit", .sse, null, null }, | 104092 | .required_features = .{ .x87, null, null, null }, |
| 102009 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | 104093 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102010 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 104094 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, |
| 102011 | .patterns = &.{ | 104095 | .patterns = &.{ |
| 102012 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 104096 | .{ .src = .{ .mem, .none, .none } }, |
| | 104097 | .{ .src = .{ .to_x87, .none, .none } }, |
| 102013 | }, | 104098 | }, |
| 102014 | .call_frame = .{ .alignment = .@"16" }, | | |
| 102015 | .extra_temps = .{ | 104099 | .extra_temps = .{ |
| 102016 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 104100 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102017 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | | |
| 102018 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, | | |
| 102019 | .unused, | | |
| 102020 | .unused, | | |
| 102021 | .unused, | | |
| 102022 | .unused, | | |
| 102023 | .unused, | | |
| 102024 | .unused, | | |
| 102025 | .unused, | 104101 | .unused, |
| 102026 | .unused, | 104102 | .unused, |
| 102027 | }, | | |
| 102028 | .dst_temps = .{ .mem, .unused }, | | |
| 102029 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 102030 | .each = .{ .once = &.{ | | |
| 102031 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | | |
| 102032 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 102033 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 102034 | } }, | | |
| 102035 | }, .{ | | |
| 102036 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 102037 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, | | |
| 102038 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | | |
| 102039 | .patterns = &.{ | | |
| 102040 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | | |
| 102041 | }, | | |
| 102042 | .call_frame = .{ .alignment = .@"16" }, | | |
| 102043 | .extra_temps = .{ | | |
| 102044 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | | |
| 102045 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | | |
| 102046 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, | | |
| 102047 | .unused, | 104103 | .unused, |
| 102048 | .unused, | 104104 | .unused, |
| 102049 | .unused, | 104105 | .unused, |
| ... | @@ -102054,23 +104110,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102054,23 +104110,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102054 | .unused, | 104110 | .unused, |
| 102055 | }, | 104111 | }, |
| 102056 | .dst_temps = .{ .mem, .unused }, | 104112 | .dst_temps = .{ .mem, .unused }, |
| 102057 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 102058 | .each = .{ .once = &.{ | 104113 | .each = .{ .once = &.{ |
| 102059 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 104114 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 102060 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 104115 | .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, |
| 102061 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 102062 | } }, | 104116 | } }, |
| 102063 | }, .{ | 104117 | }, .{ |
| 102064 | .required_features = .{ .avx, null, null, null }, | 104118 | .required_features = .{ .x87, null, null, null }, |
| 102065 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104119 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102066 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, | 104120 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 102067 | .patterns = &.{ | 104121 | .patterns = &.{ |
| 102068 | .{ .src = .{ .mem, .none, .none } }, | 104122 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102069 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102070 | }, | 104123 | }, |
| 102071 | .extra_temps = .{ | 104124 | .extra_temps = .{ |
| 102072 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 104125 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102073 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, | 104126 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102074 | .unused, | 104127 | .unused, |
| 102075 | .unused, | 104128 | .unused, |
| 102076 | .unused, | 104129 | .unused, |
| ... | @@ -102081,25 +104134,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102081,25 +104134,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102081 | .unused, | 104134 | .unused, |
| 102082 | .unused, | 104135 | .unused, |
| 102083 | }, | 104136 | }, |
| 102084 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104137 | .dst_temps = .{ .mem, .unused }, |
| | 104138 | .clobbers = .{ .eflags = true }, |
| 102085 | .each = .{ .once = &.{ | 104139 | .each = .{ .once = &.{ |
| 102086 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 104140 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102087 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | 104141 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102088 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | 104142 | .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 104143 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 104144 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102089 | } }, | 104145 | } }, |
| 102090 | }, .{ | 104146 | }, .{ |
| 102091 | .required_features = .{ .ssse3, null, null, null }, | 104147 | .required_features = .{ .x87, null, null, null }, |
| 102092 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104148 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102093 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, | 104149 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 102094 | .patterns = &.{ | 104150 | .patterns = &.{ |
| 102095 | .{ .src = .{ .mem, .none, .none } }, | 104151 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102096 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102097 | }, | 104152 | }, |
| 102098 | .extra_temps = .{ | 104153 | .extra_temps = .{ |
| 102099 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 104154 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102100 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, | 104155 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102101 | .unused, | 104156 | .{ .type = .i32, .kind = .mem }, |
| 102102 | .unused, | 104157 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 102103 | .unused, | 104158 | .unused, |
| 102104 | .unused, | 104159 | .unused, |
| 102105 | .unused, | 104160 | .unused, |
| ... | @@ -102108,23 +104163,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102108,23 +104163,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102108 | .unused, | 104163 | .unused, |
| 102109 | .unused, | 104164 | .unused, |
| 102110 | }, | 104165 | }, |
| 102111 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104166 | .dst_temps = .{ .mem, .unused }, |
| | 104167 | .clobbers = .{ .eflags = true }, |
| 102112 | .each = .{ .once = &.{ | 104168 | .each = .{ .once = &.{ |
| 102113 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 104169 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102114 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | 104170 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102115 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, | 104171 | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, |
| | 104172 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| | 104173 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| | 104174 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 104175 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102116 | } }, | 104176 | } }, |
| 102117 | }, .{ | 104177 | }, .{ |
| 102118 | .required_features = .{ .avx, null, null, null }, | 104178 | .required_features = .{ .x87, null, null, null }, |
| 102119 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 104179 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102120 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 104180 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 102121 | .patterns = &.{ | 104181 | .patterns = &.{ |
| 102122 | .{ .src = .{ .mem, .none, .none } }, | 104182 | .{ .src = .{ .mem, .none, .none } }, |
| 102123 | .{ .src = .{ .to_sse, .none, .none } }, | 104183 | .{ .src = .{ .to_x87, .none, .none } }, |
| 102124 | }, | 104184 | }, |
| 102125 | .extra_temps = .{ | 104185 | .extra_temps = .{ |
| 102126 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 104186 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102127 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, | 104187 | .unused, |
| 102128 | .unused, | 104188 | .unused, |
| 102129 | .unused, | 104189 | .unused, |
| 102130 | .unused, | 104190 | .unused, |
| ... | @@ -102135,24 +104195,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102135,24 +104195,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102135 | .unused, | 104195 | .unused, |
| 102136 | .unused, | 104196 | .unused, |
| 102137 | }, | 104197 | }, |
| 102138 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104198 | .dst_temps = .{ .mem, .unused }, |
| 102139 | .each = .{ .once = &.{ | 104199 | .each = .{ .once = &.{ |
| 102140 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | 104200 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 102141 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, | 104201 | .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, |
| 102142 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, | | |
| 102143 | } }, | 104202 | } }, |
| 102144 | }, .{ | 104203 | }, .{ |
| 102145 | .required_features = .{ .avx, null, null, null }, | 104204 | .required_features = .{ .x87, null, null, null }, |
| 102146 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 104205 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102147 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 104206 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102148 | .patterns = &.{ | 104207 | .patterns = &.{ |
| 102149 | .{ .src = .{ .to_mem, .none, .none } }, | 104208 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102150 | }, | 104209 | }, |
| 102151 | .extra_temps = .{ | 104210 | .extra_temps = .{ |
| 102152 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104211 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102153 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, | 104212 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102154 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 104213 | .unused, |
| 102155 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 104214 | .unused, |
| 102156 | .unused, | 104215 | .unused, |
| 102157 | .unused, | 104216 | .unused, |
| 102158 | .unused, | 104217 | .unused, |
| ... | @@ -102164,27 +104223,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102164,27 +104223,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102164 | .dst_temps = .{ .mem, .unused }, | 104223 | .dst_temps = .{ .mem, .unused }, |
| 102165 | .clobbers = .{ .eflags = true }, | 104224 | .clobbers = .{ .eflags = true }, |
| 102166 | .each = .{ .once = &.{ | 104225 | .each = .{ .once = &.{ |
| 102167 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | | |
| 102168 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | | |
| 102169 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104226 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102170 | .{ .@"0:", .v_, .cvttpd2dq, .tmp3x, .memsia(.src0y, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104227 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102171 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, | 104228 | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102172 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 102173 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 104229 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102174 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104230 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102175 | } }, | 104231 | } }, |
| 102176 | }, .{ | 104232 | }, .{ |
| 102177 | .required_features = .{ .ssse3, null, null, null }, | 104233 | .required_features = .{ .x87, null, null, null }, |
| 102178 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104234 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102179 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, | 104235 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102180 | .patterns = &.{ | 104236 | .patterns = &.{ |
| 102181 | .{ .src = .{ .to_mem, .none, .none } }, | 104237 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102182 | }, | 104238 | }, |
| 102183 | .extra_temps = .{ | 104239 | .extra_temps = .{ |
| 102184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104240 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102185 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, | 104241 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102186 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 104242 | .{ .type = .i64, .kind = .mem }, |
| 102187 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, | 104243 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102188 | .unused, | 104244 | .unused, |
| 102189 | .unused, | 104245 | .unused, |
| 102190 | .unused, | 104246 | .unused, |
| ... | @@ -102196,25 +104252,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102196,25 +104252,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102196 | .dst_temps = .{ .mem, .unused }, | 104252 | .dst_temps = .{ .mem, .unused }, |
| 102197 | .clobbers = .{ .eflags = true }, | 104253 | .clobbers = .{ .eflags = true }, |
| 102198 | .each = .{ .once = &.{ | 104254 | .each = .{ .once = &.{ |
| 102199 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | | |
| 102200 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | | |
| 102201 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104255 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102202 | .{ .@"0:", ._, .cvttpd2dq, .tmp3x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104256 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102203 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, | 104257 | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, |
| 102204 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 104258 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 102205 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 104259 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 104260 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102206 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104261 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102207 | } }, | 104262 | } }, |
| 102208 | }, .{ | 104263 | }, .{ |
| 102209 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 104264 | .required_features = .{ .x87, null, null, null }, |
| 102210 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104265 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102211 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104266 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 102212 | .patterns = &.{ | 104267 | .patterns = &.{ |
| 102213 | .{ .src = .{ .to_mem, .none, .none } }, | 104268 | .{ .src = .{ .mem, .none, .none } }, |
| | 104269 | .{ .src = .{ .to_x87, .none, .none } }, |
| 102214 | }, | 104270 | }, |
| 102215 | .extra_temps = .{ | 104271 | .extra_temps = .{ |
| 102216 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104272 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102217 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 104273 | .unused, |
| 102218 | .unused, | 104274 | .unused, |
| 102219 | .unused, | 104275 | .unused, |
| 102220 | .unused, | 104276 | .unused, |
| ... | @@ -102226,24 +104282,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102226,24 +104282,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102226 | .unused, | 104282 | .unused, |
| 102227 | }, | 104283 | }, |
| 102228 | .dst_temps = .{ .mem, .unused }, | 104284 | .dst_temps = .{ .mem, .unused }, |
| | 104285 | .each = .{ .once = &.{ |
| | 104286 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| | 104287 | .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ }, |
| | 104288 | } }, |
| | 104289 | }, .{ |
| | 104290 | .required_features = .{ .@"64bit", .x87, null, null }, |
| | 104291 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| | 104292 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| | 104293 | .patterns = &.{ |
| | 104294 | .{ .src = .{ .mem, .none, .none } }, |
| | 104295 | .{ .src = .{ .to_x87, .none, .none } }, |
| | 104296 | }, |
| | 104297 | .extra_temps = .{ |
| | 104298 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 104299 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| | 104300 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| | 104301 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| | 104302 | .{ .type = .i64, .kind = .mem }, |
| | 104303 | .unused, |
| | 104304 | .unused, |
| | 104305 | .unused, |
| | 104306 | .unused, |
| | 104307 | .unused, |
| | 104308 | .unused, |
| | 104309 | }, |
| | 104310 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 102229 | .clobbers = .{ .eflags = true }, | 104311 | .clobbers = .{ .eflags = true }, |
| 102230 | .each = .{ .once = &.{ | 104312 | .each = .{ .once = &.{ |
| 102231 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104313 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 102232 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104314 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102233 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 104315 | .{ ._, .f_, .ld, .tmp3t, ._, ._, ._ }, |
| 102234 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 104316 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, |
| 102235 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104317 | .{ ._, ._, .mov, .dst0q, .tmp4q, ._, ._ }, |
| | 104318 | .{ ._, .f_, .sub, .lea(.tmp0d), ._, ._, ._ }, |
| | 104319 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, |
| | 104320 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, |
| | 104321 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| | 104322 | .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ }, |
| | 104323 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, |
| 102236 | } }, | 104324 | } }, |
| 102237 | }, .{ | 104325 | }, .{ |
| 102238 | .required_features = .{ .sse2, null, null, null }, | 104326 | .required_features = .{ .x87, null, null, null }, |
| 102239 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104327 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102240 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104328 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102241 | .patterns = &.{ | 104329 | .patterns = &.{ |
| 102242 | .{ .src = .{ .to_mem, .none, .none } }, | 104330 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102243 | }, | 104331 | }, |
| 102244 | .extra_temps = .{ | 104332 | .extra_temps = .{ |
| 102245 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104333 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102246 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 104334 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102247 | .unused, | 104335 | .unused, |
| 102248 | .unused, | 104336 | .unused, |
| 102249 | .unused, | 104337 | .unused, |
| ... | @@ -102258,24 +104346,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102258,24 +104346,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102258 | .clobbers = .{ .eflags = true }, | 104346 | .clobbers = .{ .eflags = true }, |
| 102259 | .each = .{ .once = &.{ | 104347 | .each = .{ .once = &.{ |
| 102260 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104348 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102261 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104349 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102262 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, | 104350 | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102263 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 104351 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102264 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104352 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102265 | } }, | 104353 | } }, |
| 102266 | }, .{ | 104354 | }, .{ |
| 102267 | .required_features = .{ .x87, .slow_incdec, null, null }, | 104355 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102268 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104356 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102269 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104357 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102270 | .patterns = &.{ | 104358 | .patterns = &.{ |
| 102271 | .{ .src = .{ .to_mem, .none, .none } }, | 104359 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102272 | }, | 104360 | }, |
| | 104361 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102273 | .extra_temps = .{ | 104362 | .extra_temps = .{ |
| 102274 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104363 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102275 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 104364 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102276 | .{ .type = .i16, .kind = .mem }, | 104365 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102277 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 104366 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102278 | .unused, | 104367 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102279 | .unused, | 104368 | .unused, |
| 102280 | .unused, | 104369 | .unused, |
| 102281 | .unused, | 104370 | .unused, |
| ... | @@ -102284,28 +104373,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102284,28 +104373,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102284 | .unused, | 104373 | .unused, |
| 102285 | }, | 104374 | }, |
| 102286 | .dst_temps = .{ .mem, .unused }, | 104375 | .dst_temps = .{ .mem, .unused }, |
| | 104376 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102287 | .each = .{ .once = &.{ | 104377 | .each = .{ .once = &.{ |
| 102288 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104378 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102289 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 104379 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102290 | .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ }, | 104380 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 102291 | .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ }, | 104381 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 102292 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 104382 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 102293 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 104383 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102294 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104384 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102295 | } }, | 104385 | } }, |
| 102296 | }, .{ | 104386 | }, .{ |
| 102297 | .required_features = .{ .x87, null, null, null }, | 104387 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102298 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104388 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102299 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104389 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102300 | .patterns = &.{ | 104390 | .patterns = &.{ |
| 102301 | .{ .src = .{ .to_mem, .none, .none } }, | 104391 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102302 | }, | 104392 | }, |
| | 104393 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102303 | .extra_temps = .{ | 104394 | .extra_temps = .{ |
| 102304 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104395 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102305 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 104396 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102306 | .{ .type = .i16, .kind = .mem }, | 104397 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102307 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 104398 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102308 | .unused, | 104399 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102309 | .unused, | 104400 | .unused, |
| 102310 | .unused, | 104401 | .unused, |
| 102311 | .unused, | 104402 | .unused, |
| ... | @@ -102314,29 +104405,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102314,29 +104405,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102314 | .unused, | 104405 | .unused, |
| 102315 | }, | 104406 | }, |
| 102316 | .dst_temps = .{ .mem, .unused }, | 104407 | .dst_temps = .{ .mem, .unused }, |
| | 104408 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102317 | .each = .{ .once = &.{ | 104409 | .each = .{ .once = &.{ |
| 102318 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104410 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102319 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 104411 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102320 | .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ }, | 104412 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 102321 | .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ }, | 104413 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 102322 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 104414 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 102323 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 104415 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102324 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 104416 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102325 | } }, | 104417 | } }, |
| 102326 | }, .{ | 104418 | }, .{ |
| 102327 | .required_features = .{ .avx, .slow_incdec, null, null }, | 104419 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102328 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104420 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102329 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104421 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102330 | .patterns = &.{ | 104422 | .patterns = &.{ |
| 102331 | .{ .src = .{ .to_mem, .none, .none } }, | 104423 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102332 | }, | 104424 | }, |
| 102333 | .call_frame = .{ .alignment = .@"16" }, | 104425 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102334 | .extra_temps = .{ | 104426 | .extra_temps = .{ |
| 102335 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104427 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102336 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104428 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102337 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 104429 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102338 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104430 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102339 | .unused, | 104431 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102340 | .unused, | 104432 | .unused, |
| 102341 | .unused, | 104433 | .unused, |
| 102342 | .unused, | 104434 | .unused, |
| ... | @@ -102348,25 +104440,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102348,25 +104440,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102348 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104440 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102349 | .each = .{ .once = &.{ | 104441 | .each = .{ .once = &.{ |
| 102350 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104442 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102351 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104443 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102352 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104444 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 102353 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | 104445 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 102354 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 104446 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| | 104447 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102355 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104448 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102356 | } }, | 104449 | } }, |
| 102357 | }, .{ | 104450 | }, .{ |
| 102358 | .required_features = .{ .avx, null, null, null }, | 104451 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102359 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104452 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102360 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104453 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 102361 | .patterns = &.{ | 104454 | .patterns = &.{ |
| 102362 | .{ .src = .{ .to_mem, .none, .none } }, | 104455 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102363 | }, | 104456 | }, |
| 102364 | .call_frame = .{ .alignment = .@"16" }, | 104457 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102365 | .extra_temps = .{ | 104458 | .extra_temps = .{ |
| 102366 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104459 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102367 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104460 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102368 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 104461 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 102369 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104462 | .unused, |
| 102370 | .unused, | 104463 | .unused, |
| 102371 | .unused, | 104464 | .unused, |
| 102372 | .unused, | 104465 | .unused, |
| ... | @@ -102375,29 +104468,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102375,29 +104468,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102375 | .unused, | 104468 | .unused, |
| 102376 | .unused, | 104469 | .unused, |
| 102377 | }, | 104470 | }, |
| 102378 | .dst_temps = .{ .mem, .unused }, | 104471 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102379 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104472 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102380 | .each = .{ .once = &.{ | 104473 | .each = .{ .once = &.{ |
| 102381 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104474 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 102382 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104475 | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102383 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104476 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102384 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | | |
| 102385 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 102386 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 102387 | } }, | 104477 | } }, |
| 102388 | }, .{ | 104478 | }, .{ |
| 102389 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 104479 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102390 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104480 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102391 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104481 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 102392 | .patterns = &.{ | 104482 | .patterns = &.{ |
| 102393 | .{ .src = .{ .to_mem, .none, .none } }, | 104483 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102394 | }, | 104484 | }, |
| 102395 | .call_frame = .{ .alignment = .@"16" }, | 104485 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102396 | .extra_temps = .{ | 104486 | .extra_temps = .{ |
| 102397 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104487 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102398 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104488 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102399 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 104489 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102400 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104490 | .unused, |
| 102401 | .unused, | 104491 | .unused, |
| 102402 | .unused, | 104492 | .unused, |
| 102403 | .unused, | 104493 | .unused, |
| ... | @@ -102406,29 +104496,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102406,29 +104496,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102406 | .unused, | 104496 | .unused, |
| 102407 | .unused, | 104497 | .unused, |
| 102408 | }, | 104498 | }, |
| 102409 | .dst_temps = .{ .mem, .unused }, | 104499 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102410 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104500 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102411 | .each = .{ .once = &.{ | 104501 | .each = .{ .once = &.{ |
| 102412 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104502 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 102413 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104503 | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102414 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104504 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102415 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | | |
| 102416 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 102417 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 102418 | } }, | 104505 | } }, |
| 102419 | }, .{ | 104506 | }, .{ |
| 102420 | .required_features = .{ .sse2, null, null, null }, | 104507 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102421 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104508 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102422 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104509 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 102423 | .patterns = &.{ | 104510 | .patterns = &.{ |
| 102424 | .{ .src = .{ .to_mem, .none, .none } }, | 104511 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102425 | }, | 104512 | }, |
| 102426 | .call_frame = .{ .alignment = .@"16" }, | 104513 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102427 | .extra_temps = .{ | 104514 | .extra_temps = .{ |
| 102428 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104515 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102429 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104516 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102430 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 104517 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 102431 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104518 | .unused, |
| 102432 | .unused, | 104519 | .unused, |
| 102433 | .unused, | 104520 | .unused, |
| 102434 | .unused, | 104521 | .unused, |
| ... | @@ -102437,29 +104524,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102437,29 +104524,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102437 | .unused, | 104524 | .unused, |
| 102438 | .unused, | 104525 | .unused, |
| 102439 | }, | 104526 | }, |
| 102440 | .dst_temps = .{ .mem, .unused }, | 104527 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102441 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104528 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102442 | .each = .{ .once = &.{ | 104529 | .each = .{ .once = &.{ |
| 102443 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104530 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 102444 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 104531 | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102445 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104532 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102446 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | | |
| 102447 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 102448 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 102449 | } }, | 104533 | } }, |
| 102450 | }, .{ | 104534 | }, .{ |
| 102451 | .required_features = .{ .sse, .slow_incdec, null, null }, | 104535 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102452 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104536 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102453 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104537 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 102454 | .patterns = &.{ | 104538 | .patterns = &.{ |
| 102455 | .{ .src = .{ .to_mem, .none, .none } }, | 104539 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102456 | }, | 104540 | }, |
| 102457 | .call_frame = .{ .alignment = .@"16" }, | 104541 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102458 | .extra_temps = .{ | 104542 | .extra_temps = .{ |
| 102459 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104543 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102460 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104544 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102461 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 104545 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102462 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104546 | .unused, |
| 102463 | .unused, | 104547 | .unused, |
| 102464 | .unused, | 104548 | .unused, |
| 102465 | .unused, | 104549 | .unused, |
| ... | @@ -102468,30 +104552,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102468,30 +104552,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102468 | .unused, | 104552 | .unused, |
| 102469 | .unused, | 104553 | .unused, |
| 102470 | }, | 104554 | }, |
| 102471 | .dst_temps = .{ .mem, .unused }, | 104555 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102472 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104556 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102473 | .each = .{ .once = &.{ | 104557 | .each = .{ .once = &.{ |
| 102474 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104558 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 102475 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 104559 | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102476 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 102477 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104560 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102478 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | | |
| 102479 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 102480 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 102481 | } }, | 104561 | } }, |
| 102482 | }, .{ | 104562 | }, .{ |
| 102483 | .required_features = .{ .sse, null, null, null }, | 104563 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102484 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104564 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102485 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 104565 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 102486 | .patterns = &.{ | 104566 | .patterns = &.{ |
| 102487 | .{ .src = .{ .to_mem, .none, .none } }, | 104567 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102488 | }, | 104568 | }, |
| 102489 | .call_frame = .{ .alignment = .@"16" }, | 104569 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102490 | .extra_temps = .{ | 104570 | .extra_temps = .{ |
| 102491 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104571 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102492 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104572 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102493 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, | 104573 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 102494 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104574 | .unused, |
| 102495 | .unused, | 104575 | .unused, |
| 102496 | .unused, | 104576 | .unused, |
| 102497 | .unused, | 104577 | .unused, |
| ... | @@ -102500,109 +104580,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102500,109 +104580,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102500 | .unused, | 104580 | .unused, |
| 102501 | .unused, | 104581 | .unused, |
| 102502 | }, | 104582 | }, |
| 102503 | .dst_temps = .{ .mem, .unused }, | 104583 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102504 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104584 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102505 | .each = .{ .once = &.{ | 104585 | .each = .{ .once = &.{ |
| 102506 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104586 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| 102507 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 104587 | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, |
| 102508 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 102509 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104588 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102510 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, | | |
| 102511 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 102512 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 102513 | } }, | | |
| 102514 | }, .{ | | |
| 102515 | .required_features = .{ .avx, null, null, null }, | | |
| 102516 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 102517 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | | |
| 102518 | .patterns = &.{ | | |
| 102519 | .{ .src = .{ .mem, .none, .none } }, | | |
| 102520 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102521 | }, | | |
| 102522 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 102523 | .each = .{ .once = &.{ | | |
| 102524 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | | |
| 102525 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 102526 | } }, | | |
| 102527 | }, .{ | | |
| 102528 | .required_features = .{ .sse2, null, null, null }, | | |
| 102529 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 102530 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | | |
| 102531 | .patterns = &.{ | | |
| 102532 | .{ .src = .{ .mem, .none, .none } }, | | |
| 102533 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102534 | }, | | |
| 102535 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 102536 | .each = .{ .once = &.{ | | |
| 102537 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | | |
| 102538 | .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, | | |
| 102539 | } }, | | |
| 102540 | }, .{ | | |
| 102541 | .required_features = .{ .avx, null, null, null }, | | |
| 102542 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | | |
| 102543 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | | |
| 102544 | .patterns = &.{ | | |
| 102545 | .{ .src = .{ .mem, .none, .none } }, | | |
| 102546 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102547 | }, | | |
| 102548 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 102549 | .each = .{ .once = &.{ | | |
| 102550 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, | | |
| 102551 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 102552 | } }, | 104589 | } }, |
| 102553 | }, .{ | 104590 | }, .{ |
| 102554 | .required_features = .{ .avx, null, null, null }, | 104591 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102555 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104592 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102556 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, | 104593 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 102557 | .patterns = &.{ | | |
| 102558 | .{ .src = .{ .mem, .none, .none } }, | | |
| 102559 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102560 | }, | | |
| 102561 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 102562 | .each = .{ .once = &.{ | | |
| 102563 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | | |
| 102564 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 102565 | } }, | | |
| 102566 | }, .{ | | |
| 102567 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 102568 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | | |
| 102569 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, | | |
| 102570 | .patterns = &.{ | 104594 | .patterns = &.{ |
| 102571 | .{ .src = .{ .mem, .none, .none } }, | 104595 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102572 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102573 | }, | 104596 | }, |
| 102574 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104597 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102575 | .each = .{ .once = &.{ | 104598 | .extra_temps = .{ |
| 102576 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | 104599 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102577 | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, | 104600 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102578 | } }, | 104601 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102579 | }, .{ | 104602 | .unused, |
| 102580 | .required_features = .{ .avx, null, null, null }, | 104603 | .unused, |
| 102581 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 104604 | .unused, |
| 102582 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | 104605 | .unused, |
| 102583 | .patterns = &.{ | 104606 | .unused, |
| 102584 | .{ .src = .{ .mem, .none, .none } }, | 104607 | .unused, |
| 102585 | .{ .src = .{ .to_sse, .none, .none } }, | 104608 | .unused, |
| | 104609 | .unused, |
| 102586 | }, | 104610 | }, |
| 102587 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104611 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| | 104612 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102588 | .each = .{ .once = &.{ | 104613 | .each = .{ .once = &.{ |
| 102589 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, | 104614 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| 102590 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, | 104615 | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, |
| | 104616 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102591 | } }, | 104617 | } }, |
| 102592 | }, .{ | 104618 | }, .{ |
| 102593 | .required_features = .{ .avx, null, null, null }, | 104619 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102594 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 104620 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102595 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 104621 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102596 | .patterns = &.{ | 104622 | .patterns = &.{ |
| 102597 | .{ .src = .{ .to_mem, .none, .none } }, | 104623 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102598 | }, | 104624 | }, |
| | 104625 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102599 | .extra_temps = .{ | 104626 | .extra_temps = .{ |
| 102600 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104627 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102601 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 104628 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102602 | .unused, | 104629 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102603 | .unused, | 104630 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 102604 | .unused, | 104631 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102605 | .unused, | 104632 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102606 | .unused, | 104633 | .unused, |
| 102607 | .unused, | 104634 | .unused, |
| 102608 | .unused, | 104635 | .unused, |
| ... | @@ -102610,29 +104637,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102610,29 +104637,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102610 | .unused, | 104637 | .unused, |
| 102611 | }, | 104638 | }, |
| 102612 | .dst_temps = .{ .mem, .unused }, | 104639 | .dst_temps = .{ .mem, .unused }, |
| 102613 | .clobbers = .{ .eflags = true }, | 104640 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102614 | .each = .{ .once = &.{ | 104641 | .each = .{ .once = &.{ |
| 102615 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104642 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102616 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104643 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102617 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, | 104644 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 102618 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 104645 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 102619 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 104646 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| | 104647 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 104648 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102620 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104649 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102621 | } }, | 104650 | } }, |
| 102622 | }, .{ | 104651 | }, .{ |
| 102623 | .required_features = .{ .sse2, null, null, null }, | 104652 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102624 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104653 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102625 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | 104654 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102626 | .patterns = &.{ | 104655 | .patterns = &.{ |
| 102627 | .{ .src = .{ .to_mem, .none, .none } }, | 104656 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102628 | }, | 104657 | }, |
| | 104658 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102629 | .extra_temps = .{ | 104659 | .extra_temps = .{ |
| 102630 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104660 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102631 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, | 104661 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102632 | .unused, | 104662 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102633 | .unused, | 104663 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102634 | .unused, | 104664 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102635 | .unused, | 104665 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102636 | .unused, | 104666 | .unused, |
| 102637 | .unused, | 104667 | .unused, |
| 102638 | .unused, | 104668 | .unused, |
| ... | @@ -102640,29 +104670,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102640,29 +104670,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102640 | .unused, | 104670 | .unused, |
| 102641 | }, | 104671 | }, |
| 102642 | .dst_temps = .{ .mem, .unused }, | 104672 | .dst_temps = .{ .mem, .unused }, |
| 102643 | .clobbers = .{ .eflags = true }, | 104673 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102644 | .each = .{ .once = &.{ | 104674 | .each = .{ .once = &.{ |
| 102645 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104675 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102646 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104676 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102647 | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, | 104677 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 102648 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 104678 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 102649 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 104679 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| | 104680 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 104681 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102650 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104682 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102651 | } }, | 104683 | } }, |
| 102652 | }, .{ | 104684 | }, .{ |
| 102653 | .required_features = .{ .avx, null, null, null }, | 104685 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102654 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 104686 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102655 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, | 104687 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102656 | .patterns = &.{ | 104688 | .patterns = &.{ |
| 102657 | .{ .src = .{ .to_mem, .none, .none } }, | 104689 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102658 | }, | 104690 | }, |
| | 104691 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102659 | .extra_temps = .{ | 104692 | .extra_temps = .{ |
| 102660 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104693 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102661 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 104694 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102662 | .unused, | 104695 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102663 | .unused, | 104696 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 102664 | .unused, | 104697 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102665 | .unused, | 104698 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102666 | .unused, | 104699 | .unused, |
| 102667 | .unused, | 104700 | .unused, |
| 102668 | .unused, | 104701 | .unused, |
| ... | @@ -102670,29 +104703,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102670,29 +104703,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102670 | .unused, | 104703 | .unused, |
| 102671 | }, | 104704 | }, |
| 102672 | .dst_temps = .{ .mem, .unused }, | 104705 | .dst_temps = .{ .mem, .unused }, |
| 102673 | .clobbers = .{ .eflags = true }, | 104706 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102674 | .each = .{ .once = &.{ | 104707 | .each = .{ .once = &.{ |
| 102675 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104708 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102676 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104709 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102677 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, | 104710 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 102678 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 104711 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 102679 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 104712 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| | 104713 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 104714 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102680 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104715 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102681 | } }, | 104716 | } }, |
| 102682 | }, .{ | 104717 | }, .{ |
| 102683 | .required_features = .{ .sse4_1, null, null, null }, | 104718 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102684 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104719 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102685 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, | 104720 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102686 | .patterns = &.{ | 104721 | .patterns = &.{ |
| 102687 | .{ .src = .{ .to_mem, .none, .none } }, | 104722 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102688 | }, | 104723 | }, |
| | 104724 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102689 | .extra_temps = .{ | 104725 | .extra_temps = .{ |
| 102690 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104726 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102691 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, | 104727 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102692 | .unused, | 104728 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102693 | .unused, | 104729 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102694 | .unused, | 104730 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102695 | .unused, | 104731 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102696 | .unused, | 104732 | .unused, |
| 102697 | .unused, | 104733 | .unused, |
| 102698 | .unused, | 104734 | .unused, |
| ... | @@ -102700,29 +104736,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102700,29 +104736,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102700 | .unused, | 104736 | .unused, |
| 102701 | }, | 104737 | }, |
| 102702 | .dst_temps = .{ .mem, .unused }, | 104738 | .dst_temps = .{ .mem, .unused }, |
| 102703 | .clobbers = .{ .eflags = true }, | 104739 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102704 | .each = .{ .once = &.{ | 104740 | .each = .{ .once = &.{ |
| 102705 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104741 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102706 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104742 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102707 | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, | 104743 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 102708 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 104744 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 102709 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 104745 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| | 104746 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 104747 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102710 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104748 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102711 | } }, | 104749 | } }, |
| 102712 | }, .{ | 104750 | }, .{ |
| 102713 | .required_features = .{ .sse2, null, null, null }, | 104751 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102714 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104752 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102715 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 104753 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102716 | .patterns = &.{ | 104754 | .patterns = &.{ |
| 102717 | .{ .src = .{ .to_mem, .none, .none } }, | 104755 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102718 | }, | 104756 | }, |
| | 104757 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102719 | .extra_temps = .{ | 104758 | .extra_temps = .{ |
| 102720 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104759 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102721 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, | 104760 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102722 | .unused, | 104761 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102723 | .unused, | 104762 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 102724 | .unused, | 104763 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102725 | .unused, | 104764 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102726 | .unused, | 104765 | .unused, |
| 102727 | .unused, | 104766 | .unused, |
| 102728 | .unused, | 104767 | .unused, |
| ... | @@ -102730,28 +104769,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102730,28 +104769,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102730 | .unused, | 104769 | .unused, |
| 102731 | }, | 104770 | }, |
| 102732 | .dst_temps = .{ .mem, .unused }, | 104771 | .dst_temps = .{ .mem, .unused }, |
| 102733 | .clobbers = .{ .eflags = true }, | 104772 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102734 | .each = .{ .once = &.{ | 104773 | .each = .{ .once = &.{ |
| 102735 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104774 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102736 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104775 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102737 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 104776 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 102738 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 104777 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 104778 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| | 104779 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 104780 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102739 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104781 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102740 | } }, | 104782 | } }, |
| 102741 | }, .{ | 104783 | }, .{ |
| 102742 | .required_features = .{ .x87, null, null, null }, | 104784 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102743 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104785 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102744 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | 104786 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102745 | .patterns = &.{ | 104787 | .patterns = &.{ |
| 102746 | .{ .src = .{ .to_mem, .none, .none } }, | 104788 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102747 | }, | 104789 | }, |
| | 104790 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102748 | .extra_temps = .{ | 104791 | .extra_temps = .{ |
| 102749 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104792 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102750 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 104793 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102751 | .unused, | 104794 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102752 | .unused, | 104795 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 102753 | .unused, | 104796 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102754 | .unused, | 104797 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102755 | .unused, | 104798 | .unused, |
| 102756 | .unused, | 104799 | .unused, |
| 102757 | .unused, | 104800 | .unused, |
| ... | @@ -102759,26 +104802,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102759,26 +104802,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102759 | .unused, | 104802 | .unused, |
| 102760 | }, | 104803 | }, |
| 102761 | .dst_temps = .{ .mem, .unused }, | 104804 | .dst_temps = .{ .mem, .unused }, |
| | 104805 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102762 | .each = .{ .once = &.{ | 104806 | .each = .{ .once = &.{ |
| 102763 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104807 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102764 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 104808 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102765 | .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 104809 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 102766 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 104810 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 104811 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| | 104812 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| | 104813 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102767 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 104814 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102768 | } }, | 104815 | } }, |
| 102769 | }, .{ | 104816 | }, .{ |
| 102770 | .required_features = .{ .x87, null, null, null }, | 104817 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102771 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104818 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102772 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 104819 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102773 | .patterns = &.{ | 104820 | .patterns = &.{ |
| 102774 | .{ .src = .{ .to_mem, .none, .none } }, | 104821 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102775 | }, | 104822 | }, |
| | 104823 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102776 | .extra_temps = .{ | 104824 | .extra_temps = .{ |
| 102777 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104825 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102778 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 104826 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102779 | .{ .type = .i32, .kind = .mem }, | 104827 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102780 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 104828 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102781 | .unused, | 104829 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 102782 | .unused, | 104830 | .unused, |
| 102783 | .unused, | 104831 | .unused, |
| 102784 | .unused, | 104832 | .unused, |
| ... | @@ -102787,29 +104835,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102787,29 +104835,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102787 | .unused, | 104835 | .unused, |
| 102788 | }, | 104836 | }, |
| 102789 | .dst_temps = .{ .mem, .unused }, | 104837 | .dst_temps = .{ .mem, .unused }, |
| | 104838 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102790 | .each = .{ .once = &.{ | 104839 | .each = .{ .once = &.{ |
| 102791 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104840 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 102792 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 104841 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102793 | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, | 104842 | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 102794 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, | 104843 | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 102795 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 104844 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102796 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 102797 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 102798 | } }, | 104845 | } }, |
| 102799 | }, .{ | 104846 | }, .{ |
| 102800 | .required_features = .{ .avx, null, null, null }, | 104847 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102801 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104848 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102802 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 104849 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102803 | .patterns = &.{ | 104850 | .patterns = &.{ |
| 102804 | .{ .src = .{ .to_mem, .none, .none } }, | 104851 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102805 | }, | 104852 | }, |
| 102806 | .call_frame = .{ .alignment = .@"16" }, | 104853 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102807 | .extra_temps = .{ | 104854 | .extra_temps = .{ |
| 102808 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104855 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102809 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104856 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102810 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 104857 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102811 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104858 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102812 | .unused, | 104859 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 102813 | .unused, | 104860 | .unused, |
| 102814 | .unused, | 104861 | .unused, |
| 102815 | .unused, | 104862 | .unused, |
| ... | @@ -102820,27 +104867,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102820,27 +104867,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102820 | .dst_temps = .{ .mem, .unused }, | 104867 | .dst_temps = .{ .mem, .unused }, |
| 102821 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104868 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102822 | .each = .{ .once = &.{ | 104869 | .each = .{ .once = &.{ |
| 102823 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104870 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 102824 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104871 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102825 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104872 | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 102826 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 104873 | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 102827 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 104874 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102828 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 102829 | } }, | 104875 | } }, |
| 102830 | }, .{ | 104876 | }, .{ |
| 102831 | .required_features = .{ .sse2, null, null, null }, | 104877 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102832 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104878 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102833 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 104879 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102834 | .patterns = &.{ | 104880 | .patterns = &.{ |
| 102835 | .{ .src = .{ .to_mem, .none, .none } }, | 104881 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102836 | }, | 104882 | }, |
| 102837 | .call_frame = .{ .alignment = .@"16" }, | 104883 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102838 | .extra_temps = .{ | 104884 | .extra_temps = .{ |
| 102839 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104885 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102840 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104886 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102841 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 104887 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102842 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104888 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102843 | .unused, | 104889 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 102844 | .unused, | 104890 | .unused, |
| 102845 | .unused, | 104891 | .unused, |
| 102846 | .unused, | 104892 | .unused, |
| ... | @@ -102851,27 +104897,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102851,27 +104897,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102851 | .dst_temps = .{ .mem, .unused }, | 104897 | .dst_temps = .{ .mem, .unused }, |
| 102852 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102853 | .each = .{ .once = &.{ | 104899 | .each = .{ .once = &.{ |
| 102854 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104900 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 102855 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104901 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102856 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104902 | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 102857 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 104903 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 102858 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 104904 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102859 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 102860 | } }, | 104905 | } }, |
| 102861 | }, .{ | 104906 | }, .{ |
| 102862 | .required_features = .{ .sse, null, null, null }, | 104907 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102863 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 104908 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102864 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 104909 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102865 | .patterns = &.{ | 104910 | .patterns = &.{ |
| 102866 | .{ .src = .{ .to_mem, .none, .none } }, | 104911 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102867 | }, | 104912 | }, |
| 102868 | .call_frame = .{ .alignment = .@"16" }, | 104913 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102869 | .extra_temps = .{ | 104914 | .extra_temps = .{ |
| 102870 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 104915 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102871 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 104916 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102872 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 104917 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102873 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 104918 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102874 | .unused, | 104919 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 102875 | .unused, | 104920 | .unused, |
| 102876 | .unused, | 104921 | .unused, |
| 102877 | .unused, | 104922 | .unused, |
| ... | @@ -102882,182 +104927,228 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -102882,182 +104927,228 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102882 | .dst_temps = .{ .mem, .unused }, | 104927 | .dst_temps = .{ .mem, .unused }, |
| 102883 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 104928 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102884 | .each = .{ .once = &.{ | 104929 | .each = .{ .once = &.{ |
| 102885 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 104930 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 102886 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 104931 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102887 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 104932 | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 102888 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 104933 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 102889 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 104934 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102890 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 102891 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 102892 | } }, | 104935 | } }, |
| 102893 | }, .{ | 104936 | }, .{ |
| 102894 | .required_features = .{ .avx, null, null, null }, | 104937 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102895 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104938 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102896 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | 104939 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102897 | .patterns = &.{ | 104940 | .patterns = &.{ |
| 102898 | .{ .src = .{ .mem, .none, .none } }, | 104941 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102899 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102900 | }, | 104942 | }, |
| 102901 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104943 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102902 | .each = .{ .once = &.{ | 104944 | .extra_temps = .{ |
| 102903 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | 104945 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102904 | } }, | 104946 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102905 | }, .{ | 104947 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102906 | .required_features = .{ .sse2, null, null, null }, | 104948 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102907 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 104949 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 102908 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | 104950 | .unused, |
| 102909 | .patterns = &.{ | 104951 | .unused, |
| 102910 | .{ .src = .{ .mem, .none, .none } }, | 104952 | .unused, |
| 102911 | .{ .src = .{ .to_sse, .none, .none } }, | 104953 | .unused, |
| | 104954 | .unused, |
| | 104955 | .unused, |
| 102912 | }, | 104956 | }, |
| 102913 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104957 | .dst_temps = .{ .mem, .unused }, |
| | 104958 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102914 | .each = .{ .once = &.{ | 104959 | .each = .{ .once = &.{ |
| 102915 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, | 104960 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| | 104961 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 104962 | .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ }, |
| | 104963 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| | 104964 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102916 | } }, | 104965 | } }, |
| 102917 | }, .{ | 104966 | }, .{ |
| 102918 | .required_features = .{ .avx, null, null, null }, | 104967 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102919 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 104968 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 102920 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 104969 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102921 | .patterns = &.{ | 104970 | .patterns = &.{ |
| 102922 | .{ .src = .{ .mem, .none, .none } }, | 104971 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102923 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 102924 | }, | 104972 | }, |
| 102925 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 104973 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| | 104974 | .extra_temps = .{ |
| | 104975 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 104976 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 104977 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| | 104978 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| | 104979 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| | 104980 | .unused, |
| | 104981 | .unused, |
| | 104982 | .unused, |
| | 104983 | .unused, |
| | 104984 | .unused, |
| | 104985 | .unused, |
| | 104986 | }, |
| | 104987 | .dst_temps = .{ .mem, .unused }, |
| | 104988 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102926 | .each = .{ .once = &.{ | 104989 | .each = .{ .once = &.{ |
| 102927 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, | 104990 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| | 104991 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 104992 | .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ }, |
| | 104993 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| | 104994 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102928 | } }, | 104995 | } }, |
| 102929 | }, .{ | 104996 | }, .{ |
| 102930 | .required_features = .{ .avx, null, null, null }, | 104997 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102931 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, | 104998 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102932 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 104999 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102933 | .patterns = &.{ | 105000 | .patterns = &.{ |
| 102934 | .{ .src = .{ .to_mem, .none, .none } }, | 105001 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102935 | }, | 105002 | }, |
| | 105003 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102936 | .extra_temps = .{ | 105004 | .extra_temps = .{ |
| 102937 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105005 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102938 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 105006 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102939 | .unused, | 105007 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102940 | .unused, | 105008 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102941 | .unused, | 105009 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102942 | .unused, | 105010 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102943 | .unused, | 105011 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 102944 | .unused, | 105012 | .unused, |
| 102945 | .unused, | 105013 | .unused, |
| 102946 | .unused, | 105014 | .unused, |
| 102947 | .unused, | 105015 | .unused, |
| 102948 | }, | 105016 | }, |
| 102949 | .dst_temps = .{ .mem, .unused }, | 105017 | .dst_temps = .{ .mem, .unused }, |
| 102950 | .clobbers = .{ .eflags = true }, | 105018 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102951 | .each = .{ .once = &.{ | 105019 | .each = .{ .once = &.{ |
| 102952 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105020 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102953 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105021 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 102954 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 105022 | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 105023 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 105024 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 105025 | .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| | 105026 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 105027 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 102955 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 105028 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102956 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105029 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102957 | } }, | 105030 | } }, |
| 102958 | }, .{ | 105031 | }, .{ |
| 102959 | .required_features = .{ .sse2, null, null, null }, | 105032 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 102960 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, | 105033 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102961 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | 105034 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102962 | .patterns = &.{ | 105035 | .patterns = &.{ |
| 102963 | .{ .src = .{ .to_mem, .none, .none } }, | 105036 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102964 | }, | 105037 | }, |
| | 105038 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102965 | .extra_temps = .{ | 105039 | .extra_temps = .{ |
| 102966 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105040 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102967 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 105041 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102968 | .unused, | 105042 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102969 | .unused, | 105043 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102970 | .unused, | 105044 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 102971 | .unused, | 105045 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 102972 | .unused, | 105046 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 102973 | .unused, | 105047 | .unused, |
| 102974 | .unused, | 105048 | .unused, |
| 102975 | .unused, | 105049 | .unused, |
| 102976 | .unused, | 105050 | .unused, |
| 102977 | }, | 105051 | }, |
| 102978 | .dst_temps = .{ .mem, .unused }, | 105052 | .dst_temps = .{ .mem, .unused }, |
| 102979 | .clobbers = .{ .eflags = true }, | 105053 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102980 | .each = .{ .once = &.{ | 105054 | .each = .{ .once = &.{ |
| 102981 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105055 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102982 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105056 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 102983 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 105057 | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102984 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105058 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 105059 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 105060 | .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| | 105061 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 105062 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 105063 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102985 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105064 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102986 | } }, | 105065 | } }, |
| 102987 | }, .{ | 105066 | }, .{ |
| 102988 | .required_features = .{ .x87, null, null, null }, | 105067 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 102989 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105068 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 102990 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 105069 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102991 | .patterns = &.{ | 105070 | .patterns = &.{ |
| 102992 | .{ .src = .{ .to_mem, .none, .none } }, | 105071 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102993 | }, | 105072 | }, |
| | 105073 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102994 | .extra_temps = .{ | 105074 | .extra_temps = .{ |
| 102995 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105075 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102996 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 105076 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102997 | .unused, | 105077 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102998 | .unused, | 105078 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102999 | .unused, | 105079 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 103000 | .unused, | 105080 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 103001 | .unused, | 105081 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 103002 | .unused, | 105082 | .unused, |
| 103003 | .unused, | 105083 | .unused, |
| 103004 | .unused, | 105084 | .unused, |
| 103005 | .unused, | 105085 | .unused, |
| 103006 | }, | 105086 | }, |
| 103007 | .dst_temps = .{ .mem, .unused }, | 105087 | .dst_temps = .{ .mem, .unused }, |
| | 105088 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103008 | .each = .{ .once = &.{ | 105089 | .each = .{ .once = &.{ |
| 103009 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105090 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103010 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 105091 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103011 | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 105092 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103012 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105093 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 105094 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 105095 | .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| | 105096 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 105097 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 105098 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103013 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105099 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103014 | } }, | 105100 | } }, |
| 103015 | }, .{ | 105101 | }, .{ |
| 103016 | .required_features = .{ .x87, null, null, null }, | 105102 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103017 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105103 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 103018 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 105104 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103019 | .patterns = &.{ | 105105 | .patterns = &.{ |
| 103020 | .{ .src = .{ .to_mem, .none, .none } }, | 105106 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103021 | }, | 105107 | }, |
| | 105108 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 103022 | .extra_temps = .{ | 105109 | .extra_temps = .{ |
| 103023 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105110 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103024 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 105111 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103025 | .{ .type = .i64, .kind = .mem }, | 105112 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103026 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 105113 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103027 | .unused, | 105114 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 103028 | .unused, | 105115 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 103029 | .unused, | 105116 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 103030 | .unused, | 105117 | .unused, |
| 103031 | .unused, | 105118 | .unused, |
| 103032 | .unused, | 105119 | .unused, |
| 103033 | .unused, | 105120 | .unused, |
| 103034 | }, | 105121 | }, |
| 103035 | .dst_temps = .{ .mem, .unused }, | 105122 | .dst_temps = .{ .mem, .unused }, |
| | 105123 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103036 | .each = .{ .once = &.{ | 105124 | .each = .{ .once = &.{ |
| 103037 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105125 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103038 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 105126 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103039 | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, | 105127 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103040 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, | 105128 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 103041 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 105129 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 103042 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105130 | .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| | 105131 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 105132 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 105133 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103043 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103044 | } }, | 105135 | } }, |
| 103045 | }, .{ | 105136 | }, .{ |
| 103046 | .required_features = .{ .avx, null, null, null }, | 105137 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103047 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105138 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 103048 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 105139 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103049 | .patterns = &.{ | 105140 | .patterns = &.{ |
| 103050 | .{ .src = .{ .to_mem, .none, .none } }, | 105141 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103051 | }, | 105142 | }, |
| 103052 | .call_frame = .{ .alignment = .@"16" }, | 105143 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 103053 | .extra_temps = .{ | 105144 | .extra_temps = .{ |
| 103054 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103055 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105146 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103056 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 105147 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103057 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 105148 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103058 | .unused, | 105149 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 103059 | .unused, | 105150 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 103060 | .unused, | 105151 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 103061 | .unused, | 105152 | .unused, |
| 103062 | .unused, | 105153 | .unused, |
| 103063 | .unused, | 105154 | .unused, |
| ... | @@ -103066,29 +105157,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103066,29 +105157,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103066 | .dst_temps = .{ .mem, .unused }, | 105157 | .dst_temps = .{ .mem, .unused }, |
| 103067 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105158 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103068 | .each = .{ .once = &.{ | 105159 | .each = .{ .once = &.{ |
| 103069 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105160 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103070 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105161 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103071 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105162 | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103072 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 105163 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 103073 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105164 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 105165 | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, |
| | 105166 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 105167 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 105168 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103074 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105169 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103075 | } }, | 105170 | } }, |
| 103076 | }, .{ | 105171 | }, .{ |
| 103077 | .required_features = .{ .avx, null, null, null }, | 105172 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103078 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105173 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 103079 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 105174 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103080 | .patterns = &.{ | 105175 | .patterns = &.{ |
| 103081 | .{ .src = .{ .to_mem, .none, .none } }, | 105176 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103082 | }, | 105177 | }, |
| 103083 | .call_frame = .{ .alignment = .@"16" }, | 105178 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 103084 | .extra_temps = .{ | 105179 | .extra_temps = .{ |
| 103085 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105180 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103086 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105181 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103087 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, | 105182 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103088 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 105183 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103089 | .unused, | 105184 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 103090 | .unused, | 105185 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 103091 | .unused, | 105186 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 103092 | .unused, | 105187 | .unused, |
| 103093 | .unused, | 105188 | .unused, |
| 103094 | .unused, | 105189 | .unused, |
| ... | @@ -103097,25 +105192,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103097,25 +105192,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103097 | .dst_temps = .{ .mem, .unused }, | 105192 | .dst_temps = .{ .mem, .unused }, |
| 103098 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105193 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103099 | .each = .{ .once = &.{ | 105194 | .each = .{ .once = &.{ |
| 103100 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105195 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103101 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105196 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103102 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105197 | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103103 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 105198 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 103104 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105199 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 105200 | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, |
| | 105201 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| | 105202 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 105203 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103105 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103106 | } }, | 105205 | } }, |
| 103107 | }, .{ | 105206 | }, .{ |
| 103108 | .required_features = .{ .sse2, null, null, null }, | 105207 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 103109 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105208 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103110 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 105209 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103111 | .patterns = &.{ | 105210 | .patterns = &.{ |
| 103112 | .{ .src = .{ .to_mem, .none, .none } }, | 105211 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103113 | }, | 105212 | }, |
| 103114 | .call_frame = .{ .alignment = .@"16" }, | 105213 | .call_frame = .{ .alignment = .@"16" }, |
| 103115 | .extra_temps = .{ | 105214 | .extra_temps = .{ |
| | 105215 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103116 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105216 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103117 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105217 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103118 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 105218 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103119 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 105219 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103120 | .unused, | 105220 | .unused, |
| 103121 | .unused, | 105221 | .unused, |
| ... | @@ -103123,32 +105223,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103123,32 +105223,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103123 | .unused, | 105223 | .unused, |
| 103124 | .unused, | 105224 | .unused, |
| 103125 | .unused, | 105225 | .unused, |
| 103126 | .unused, | | |
| 103127 | }, | 105226 | }, |
| 103128 | .dst_temps = .{ .mem, .unused }, | 105227 | .dst_temps = .{ .mem, .unused }, |
| 103129 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105228 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103130 | .each = .{ .once = &.{ | 105229 | .each = .{ .once = &.{ |
| 103131 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105230 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103132 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105231 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103133 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105232 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 103134 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 105233 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103135 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105234 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| | 105235 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| | 105236 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 103136 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105237 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103137 | } }, | 105238 | } }, |
| 103138 | }, .{ | 105239 | }, .{ |
| 103139 | .required_features = .{ .sse2, null, null, null }, | 105240 | .required_features = .{ .avx, null, null, null }, |
| 103140 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105241 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103141 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 105242 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103142 | .patterns = &.{ | 105243 | .patterns = &.{ |
| 103143 | .{ .src = .{ .to_mem, .none, .none } }, | 105244 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103144 | }, | 105245 | }, |
| 103145 | .call_frame = .{ .alignment = .@"16" }, | 105246 | .call_frame = .{ .alignment = .@"16" }, |
| 103146 | .extra_temps = .{ | 105247 | .extra_temps = .{ |
| | 105248 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103147 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105249 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103148 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105250 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103149 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, | 105251 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103150 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 105252 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103151 | .unused, | | |
| 103152 | .unused, | 105253 | .unused, |
| 103153 | .unused, | 105254 | .unused, |
| 103154 | .unused, | 105255 | .unused, |
| ... | @@ -103159,25 +105260,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103159,25 +105260,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103159 | .dst_temps = .{ .mem, .unused }, | 105260 | .dst_temps = .{ .mem, .unused }, |
| 103160 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105261 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103161 | .each = .{ .once = &.{ | 105262 | .each = .{ .once = &.{ |
| 103162 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105263 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103163 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105264 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103164 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105265 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 103165 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 105266 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103166 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105267 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 103167 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105268 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| | 105269 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| | 105270 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 103168 | } }, | 105271 | } }, |
| 103169 | }, .{ | 105272 | }, .{ |
| 103170 | .required_features = .{ .sse, null, null, null }, | 105273 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 103171 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105274 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103172 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 105275 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103173 | .patterns = &.{ | 105276 | .patterns = &.{ |
| 103174 | .{ .src = .{ .to_mem, .none, .none } }, | 105277 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103175 | }, | 105278 | }, |
| 103176 | .call_frame = .{ .alignment = .@"16" }, | 105279 | .call_frame = .{ .alignment = .@"16" }, |
| 103177 | .extra_temps = .{ | 105280 | .extra_temps = .{ |
| | 105281 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103178 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103179 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105283 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103180 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, | 105284 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103181 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 105285 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103182 | .unused, | 105286 | .unused, |
| 103183 | .unused, | 105287 | .unused, |
| ... | @@ -103185,33 +105289,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103185,33 +105289,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103185 | .unused, | 105289 | .unused, |
| 103186 | .unused, | 105290 | .unused, |
| 103187 | .unused, | 105291 | .unused, |
| 103188 | .unused, | | |
| 103189 | }, | 105292 | }, |
| 103190 | .dst_temps = .{ .mem, .unused }, | 105293 | .dst_temps = .{ .mem, .unused }, |
| 103191 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105294 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103192 | .each = .{ .once = &.{ | 105295 | .each = .{ .once = &.{ |
| 103193 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105296 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103194 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 105297 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103195 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105298 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 103196 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105299 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103197 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 105300 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 103198 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105301 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| | 105302 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 103199 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105303 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103200 | } }, | 105304 | } }, |
| 103201 | }, .{ | 105305 | }, .{ |
| 103202 | .required_features = .{ .sse, null, null, null }, | 105306 | .required_features = .{ .sse2, null, null, null }, |
| 103203 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105307 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103204 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 105308 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103205 | .patterns = &.{ | 105309 | .patterns = &.{ |
| 103206 | .{ .src = .{ .to_mem, .none, .none } }, | 105310 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103207 | }, | 105311 | }, |
| 103208 | .call_frame = .{ .alignment = .@"16" }, | 105312 | .call_frame = .{ .alignment = .@"16" }, |
| 103209 | .extra_temps = .{ | 105313 | .extra_temps = .{ |
| | 105314 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103210 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105315 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103211 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105316 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103212 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, | 105317 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103213 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 105318 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103214 | .unused, | | |
| 103215 | .unused, | 105319 | .unused, |
| 103216 | .unused, | 105320 | .unused, |
| 103217 | .unused, | 105321 | .unused, |
| ... | @@ -103222,27 +105326,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103222,27 +105326,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103222 | .dst_temps = .{ .mem, .unused }, | 105326 | .dst_temps = .{ .mem, .unused }, |
| 103223 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105327 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103224 | .each = .{ .once = &.{ | 105328 | .each = .{ .once = &.{ |
| 103225 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 105329 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103226 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 105330 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103227 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 105331 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 103228 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105332 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103229 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 105333 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 103230 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 105334 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 103231 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105335 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| | 105336 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 103232 | } }, | 105337 | } }, |
| 103233 | }, .{ | 105338 | }, .{ |
| 103234 | .required_features = .{ .@"64bit", .avx, null, null }, | 105339 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 103235 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105340 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103236 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 105341 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103237 | .patterns = &.{ | 105342 | .patterns = &.{ |
| 103238 | .{ .src = .{ .to_mem, .none, .none } }, | 105343 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103239 | }, | 105344 | }, |
| | 105345 | .call_frame = .{ .alignment = .@"16" }, |
| 103240 | .extra_temps = .{ | 105346 | .extra_temps = .{ |
| | 105347 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103241 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105348 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103242 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 105349 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103243 | .unused, | 105350 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103244 | .unused, | 105351 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103245 | .unused, | | |
| 103246 | .unused, | 105352 | .unused, |
| 103247 | .unused, | 105353 | .unused, |
| 103248 | .unused, | 105354 | .unused, |
| ... | @@ -103251,27 +105357,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103251,27 +105357,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103251 | .unused, | 105357 | .unused, |
| 103252 | }, | 105358 | }, |
| 103253 | .dst_temps = .{ .mem, .unused }, | 105359 | .dst_temps = .{ .mem, .unused }, |
| 103254 | .clobbers = .{ .eflags = true }, | 105360 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103255 | .each = .{ .once = &.{ | 105361 | .each = .{ .once = &.{ |
| 103256 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105362 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103257 | .{ .@"0:", .v_, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105363 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103258 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 105364 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 103259 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105365 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 105366 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| | 105367 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| | 105368 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 103260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103261 | } }, | 105370 | } }, |
| 103262 | }, .{ | 105371 | }, .{ |
| 103263 | .required_features = .{ .@"64bit", .sse2, null, null }, | 105372 | .required_features = .{ .sse, null, null, null }, |
| 103264 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105373 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103265 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 105374 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103266 | .patterns = &.{ | 105375 | .patterns = &.{ |
| 103267 | .{ .src = .{ .to_mem, .none, .none } }, | 105376 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103268 | }, | 105377 | }, |
| | 105378 | .call_frame = .{ .alignment = .@"16" }, |
| 103269 | .extra_temps = .{ | 105379 | .extra_temps = .{ |
| | 105380 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103270 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103271 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | 105382 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103272 | .unused, | 105383 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103273 | .unused, | 105384 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103274 | .unused, | | |
| 103275 | .unused, | 105385 | .unused, |
| 103276 | .unused, | 105386 | .unused, |
| 103277 | .unused, | 105387 | .unused, |
| ... | @@ -103280,26 +105390,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103280,26 +105390,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103280 | .unused, | 105390 | .unused, |
| 103281 | }, | 105391 | }, |
| 103282 | .dst_temps = .{ .mem, .unused }, | 105392 | .dst_temps = .{ .mem, .unused }, |
| 103283 | .clobbers = .{ .eflags = true }, | 105393 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103284 | .each = .{ .once = &.{ | 105394 | .each = .{ .once = &.{ |
| 103285 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105395 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103286 | .{ .@"0:", ._, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105396 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103287 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, | 105397 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 103288 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105398 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103289 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105399 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| | 105400 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| | 105401 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| | 105402 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 103290 | } }, | 105403 | } }, |
| 103291 | }, .{ | 105404 | }, .{ |
| 103292 | .required_features = .{ .x87, null, null, null }, | 105405 | .required_features = .{ .avx, null, null, null }, |
| 103293 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105406 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103294 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 105407 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103295 | .patterns = &.{ | 105408 | .patterns = &.{ |
| 103296 | .{ .src = .{ .to_mem, .none, .none } }, | 105409 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103297 | }, | 105410 | }, |
| | 105411 | .call_frame = .{ .alignment = .@"16" }, |
| 103298 | .extra_temps = .{ | 105412 | .extra_temps = .{ |
| 103299 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105413 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103300 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 105414 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103301 | .unused, | 105415 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103302 | .unused, | 105416 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103303 | .unused, | 105417 | .unused, |
| 103304 | .unused, | 105418 | .unused, |
| 103305 | .unused, | 105419 | .unused, |
| ... | @@ -103309,26 +105423,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103309,26 +105423,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103309 | .unused, | 105423 | .unused, |
| 103310 | }, | 105424 | }, |
| 103311 | .dst_temps = .{ .mem, .unused }, | 105425 | .dst_temps = .{ .mem, .unused }, |
| | 105426 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103312 | .each = .{ .once = &.{ | 105427 | .each = .{ .once = &.{ |
| 103313 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105428 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103314 | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 105429 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103315 | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 105430 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103316 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105431 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| | 105432 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103317 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105433 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103318 | } }, | 105434 | } }, |
| 103319 | }, .{ | 105435 | }, .{ |
| 103320 | .required_features = .{ .avx, null, null, null }, | 105436 | .required_features = .{ .sse2, null, null, null }, |
| 103321 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105437 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103322 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 105438 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103323 | .patterns = &.{ | 105439 | .patterns = &.{ |
| 103324 | .{ .src = .{ .to_mem, .none, .none } }, | 105440 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103325 | }, | 105441 | }, |
| 103326 | .call_frame = .{ .alignment = .@"16" }, | 105442 | .call_frame = .{ .alignment = .@"16" }, |
| 103327 | .extra_temps = .{ | 105443 | .extra_temps = .{ |
| 103328 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105444 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103329 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105445 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103330 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, | 105446 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103331 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 105447 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103332 | .unused, | 105448 | .unused, |
| 103333 | .unused, | 105449 | .unused, |
| 103334 | .unused, | 105450 | .unused, |
| ... | @@ -103340,26 +105456,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103340,26 +105456,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103340 | .dst_temps = .{ .mem, .unused }, | 105456 | .dst_temps = .{ .mem, .unused }, |
| 103341 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105457 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103342 | .each = .{ .once = &.{ | 105458 | .each = .{ .once = &.{ |
| 103343 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105459 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103344 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105460 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103345 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105461 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103346 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105462 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 103347 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105463 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103348 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105464 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103349 | } }, | 105465 | } }, |
| 103350 | }, .{ | 105466 | }, .{ |
| 103351 | .required_features = .{ .avx, null, null, null }, | 105467 | .required_features = .{ .sse, null, null, null }, |
| 103352 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105468 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103353 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 105469 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103354 | .patterns = &.{ | 105470 | .patterns = &.{ |
| 103355 | .{ .src = .{ .to_mem, .none, .none } }, | 105471 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103356 | }, | 105472 | }, |
| 103357 | .call_frame = .{ .alignment = .@"16" }, | 105473 | .call_frame = .{ .alignment = .@"16" }, |
| 103358 | .extra_temps = .{ | 105474 | .extra_temps = .{ |
| 103359 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105475 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103360 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105476 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103361 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, | 105477 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103362 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105478 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103363 | .unused, | 105479 | .unused, |
| 103364 | .unused, | 105480 | .unused, |
| 103365 | .unused, | 105481 | .unused, |
| ... | @@ -103371,26 +105487,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103371,26 +105487,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103371 | .dst_temps = .{ .mem, .unused }, | 105487 | .dst_temps = .{ .mem, .unused }, |
| 103372 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105488 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103373 | .each = .{ .once = &.{ | 105489 | .each = .{ .once = &.{ |
| 103374 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105490 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103375 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105491 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103376 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105492 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103377 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105493 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 103378 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105494 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103379 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105495 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103380 | } }, | 105496 | } }, |
| 103381 | }, .{ | 105497 | }, .{ |
| 103382 | .required_features = .{ .sse2, null, null, null }, | 105498 | .required_features = .{ .sse, null, null, null }, |
| 103383 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105499 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 103384 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 105500 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 103385 | .patterns = &.{ | 105501 | .patterns = &.{ |
| 103386 | .{ .src = .{ .to_mem, .none, .none } }, | 105502 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103387 | }, | 105503 | }, |
| 103388 | .call_frame = .{ .alignment = .@"16" }, | 105504 | .call_frame = .{ .alignment = .@"16" }, |
| 103389 | .extra_temps = .{ | 105505 | .extra_temps = .{ |
| 103390 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105506 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103391 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105507 | .unused, |
| 103392 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, | 105508 | .unused, |
| 103393 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 105509 | .unused, |
| 103394 | .unused, | 105510 | .unused, |
| 103395 | .unused, | 105511 | .unused, |
| 103396 | .unused, | 105512 | .unused, |
| ... | @@ -103399,29 +105515,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103399,29 +105515,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103399 | .unused, | 105515 | .unused, |
| 103400 | .unused, | 105516 | .unused, |
| 103401 | }, | 105517 | }, |
| 103402 | .dst_temps = .{ .mem, .unused }, | 105518 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 103403 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105519 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103404 | .each = .{ .once = &.{ | 105520 | .each = .{ .once = &.{ |
| 103405 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105521 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103406 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103407 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 103408 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 103409 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103410 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 103411 | } }, | 105522 | } }, |
| 103412 | }, .{ | 105523 | }, .{ |
| 103413 | .required_features = .{ .sse2, null, null, null }, | 105524 | .required_features = .{ .sse, null, null, null }, |
| 103414 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105525 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 103415 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 105526 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 103416 | .patterns = &.{ | 105527 | .patterns = &.{ |
| 103417 | .{ .src = .{ .to_mem, .none, .none } }, | 105528 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103418 | }, | 105529 | }, |
| 103419 | .call_frame = .{ .alignment = .@"16" }, | 105530 | .call_frame = .{ .alignment = .@"16" }, |
| 103420 | .extra_temps = .{ | 105531 | .extra_temps = .{ |
| 103421 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105532 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 103422 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105533 | .unused, |
| 103423 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, | 105534 | .unused, |
| 103424 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105535 | .unused, |
| 103425 | .unused, | 105536 | .unused, |
| 103426 | .unused, | 105537 | .unused, |
| 103427 | .unused, | 105538 | .unused, |
| ... | @@ -103430,29 +105541,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103430,29 +105541,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103430 | .unused, | 105541 | .unused, |
| 103431 | .unused, | 105542 | .unused, |
| 103432 | }, | 105543 | }, |
| 103433 | .dst_temps = .{ .mem, .unused }, | 105544 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 103434 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105545 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103435 | .each = .{ .once = &.{ | 105546 | .each = .{ .once = &.{ |
| 103436 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105547 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103437 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103438 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 103439 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 103440 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103441 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 103442 | } }, | 105548 | } }, |
| 103443 | }, .{ | 105549 | }, .{ |
| 103444 | .required_features = .{ .sse, null, null, null }, | 105550 | .required_features = .{ .avx, null, null, null }, |
| 103445 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105551 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103446 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 105552 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103447 | .patterns = &.{ | 105553 | .patterns = &.{ |
| 103448 | .{ .src = .{ .to_mem, .none, .none } }, | 105554 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103449 | }, | 105555 | }, |
| 103450 | .call_frame = .{ .alignment = .@"16" }, | 105556 | .call_frame = .{ .alignment = .@"16" }, |
| 103451 | .extra_temps = .{ | 105557 | .extra_temps = .{ |
| 103452 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105558 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103453 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105559 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103454 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, | 105560 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103455 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 105561 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103456 | .unused, | 105562 | .unused, |
| 103457 | .unused, | 105563 | .unused, |
| 103458 | .unused, | 105564 | .unused, |
| ... | @@ -103464,27 +105570,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103464,27 +105570,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103464 | .dst_temps = .{ .mem, .unused }, | 105570 | .dst_temps = .{ .mem, .unused }, |
| 103465 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105571 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103466 | .each = .{ .once = &.{ | 105572 | .each = .{ .once = &.{ |
| 103467 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105573 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103468 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 105574 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103469 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103470 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105575 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103471 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105576 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103472 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105577 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103473 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105578 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103474 | } }, | 105579 | } }, |
| 103475 | }, .{ | 105580 | }, .{ |
| 103476 | .required_features = .{ .sse, null, null, null }, | 105581 | .required_features = .{ .avx, null, null, null }, |
| 103477 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105582 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103478 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 105583 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103479 | .patterns = &.{ | 105584 | .patterns = &.{ |
| 103480 | .{ .src = .{ .to_mem, .none, .none } }, | 105585 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103481 | }, | 105586 | }, |
| 103482 | .call_frame = .{ .alignment = .@"16" }, | 105587 | .call_frame = .{ .alignment = .@"16" }, |
| 103483 | .extra_temps = .{ | 105588 | .extra_temps = .{ |
| 103484 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105589 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103485 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105590 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103486 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, | 105591 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 103487 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105592 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103488 | .unused, | 105593 | .unused, |
| 103489 | .unused, | 105594 | .unused, |
| 103490 | .unused, | 105595 | .unused, |
| ... | @@ -103496,28 +105601,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103496,28 +105601,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103496 | .dst_temps = .{ .mem, .unused }, | 105601 | .dst_temps = .{ .mem, .unused }, |
| 103497 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105602 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103498 | .each = .{ .once = &.{ | 105603 | .each = .{ .once = &.{ |
| 103499 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105604 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103500 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 105605 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103501 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103502 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105606 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103503 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105607 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103504 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105608 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103505 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103506 | } }, | 105610 | } }, |
| 103507 | }, .{ | 105611 | }, .{ |
| 103508 | .required_features = .{ .avx, null, null, null }, | 105612 | .required_features = .{ .sse2, null, null, null }, |
| 103509 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105613 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103510 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 105614 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103511 | .patterns = &.{ | 105615 | .patterns = &.{ |
| 103512 | .{ .src = .{ .to_mem, .none, .none } }, | 105616 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103513 | }, | 105617 | }, |
| 103514 | .call_frame = .{ .alignment = .@"16" }, | 105618 | .call_frame = .{ .alignment = .@"16" }, |
| 103515 | .extra_temps = .{ | 105619 | .extra_temps = .{ |
| 103516 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105620 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103517 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105621 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103518 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, | 105622 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103519 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105623 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103520 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 105624 | .unused, |
| 103521 | .unused, | 105625 | .unused, |
| 103522 | .unused, | 105626 | .unused, |
| 103523 | .unused, | 105627 | .unused, |
| ... | @@ -103528,28 +105632,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103528,28 +105632,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103528 | .dst_temps = .{ .mem, .unused }, | 105632 | .dst_temps = .{ .mem, .unused }, |
| 103529 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105633 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103530 | .each = .{ .once = &.{ | 105634 | .each = .{ .once = &.{ |
| 103531 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105635 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103532 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105636 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103533 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105637 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103534 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105638 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103535 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 105639 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103536 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103537 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105640 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103538 | } }, | 105641 | } }, |
| 103539 | }, .{ | 105642 | }, .{ |
| 103540 | .required_features = .{ .avx, null, null, null }, | 105643 | .required_features = .{ .sse2, null, null, null }, |
| 103541 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105644 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103542 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 105645 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103543 | .patterns = &.{ | 105646 | .patterns = &.{ |
| 103544 | .{ .src = .{ .to_mem, .none, .none } }, | 105647 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103545 | }, | 105648 | }, |
| 103546 | .call_frame = .{ .alignment = .@"16" }, | 105649 | .call_frame = .{ .alignment = .@"16" }, |
| 103547 | .extra_temps = .{ | 105650 | .extra_temps = .{ |
| 103548 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105651 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103549 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105652 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103550 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, | 105653 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 103551 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105654 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103552 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 105655 | .unused, |
| 103553 | .unused, | 105656 | .unused, |
| 103554 | .unused, | 105657 | .unused, |
| 103555 | .unused, | 105658 | .unused, |
| ... | @@ -103560,28 +105663,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103560,28 +105663,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103560 | .dst_temps = .{ .mem, .unused }, | 105663 | .dst_temps = .{ .mem, .unused }, |
| 103561 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105664 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103562 | .each = .{ .once = &.{ | 105665 | .each = .{ .once = &.{ |
| 103563 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105666 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103564 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105667 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103565 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105668 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103566 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105669 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103567 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 105670 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103568 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103569 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105671 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103570 | } }, | 105672 | } }, |
| 103571 | }, .{ | 105673 | }, .{ |
| 103572 | .required_features = .{ .sse2, null, null, null }, | 105674 | .required_features = .{ .sse, null, null, null }, |
| 103573 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105675 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103574 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 105676 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103575 | .patterns = &.{ | 105677 | .patterns = &.{ |
| 103576 | .{ .src = .{ .to_mem, .none, .none } }, | 105678 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103577 | }, | 105679 | }, |
| 103578 | .call_frame = .{ .alignment = .@"16" }, | 105680 | .call_frame = .{ .alignment = .@"16" }, |
| 103579 | .extra_temps = .{ | 105681 | .extra_temps = .{ |
| 103580 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105682 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103581 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105683 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103582 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, | 105684 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103583 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105685 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103584 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 105686 | .unused, |
| 103585 | .unused, | 105687 | .unused, |
| 103586 | .unused, | 105688 | .unused, |
| 103587 | .unused, | 105689 | .unused, |
| ... | @@ -103592,28 +105694,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103592,28 +105694,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103592 | .dst_temps = .{ .mem, .unused }, | 105694 | .dst_temps = .{ .mem, .unused }, |
| 103593 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105695 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103594 | .each = .{ .once = &.{ | 105696 | .each = .{ .once = &.{ |
| 103595 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105697 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103596 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105698 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103597 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105699 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103598 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105700 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103599 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 105701 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103600 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103601 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105702 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103602 | } }, | 105703 | } }, |
| 103603 | }, .{ | 105704 | }, .{ |
| 103604 | .required_features = .{ .sse2, null, null, null }, | 105705 | .required_features = .{ .sse, null, null, null }, |
| 103605 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105706 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103606 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 105707 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103607 | .patterns = &.{ | 105708 | .patterns = &.{ |
| 103608 | .{ .src = .{ .to_mem, .none, .none } }, | 105709 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103609 | }, | 105710 | }, |
| 103610 | .call_frame = .{ .alignment = .@"16" }, | 105711 | .call_frame = .{ .alignment = .@"16" }, |
| 103611 | .extra_temps = .{ | 105712 | .extra_temps = .{ |
| 103612 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105713 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103613 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105714 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103614 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, | 105715 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 103615 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105716 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103616 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 105717 | .unused, |
| 103617 | .unused, | 105718 | .unused, |
| 103618 | .unused, | 105719 | .unused, |
| 103619 | .unused, | 105720 | .unused, |
| ... | @@ -103624,28 +105725,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103624,28 +105725,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103624 | .dst_temps = .{ .mem, .unused }, | 105725 | .dst_temps = .{ .mem, .unused }, |
| 103625 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105726 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103626 | .each = .{ .once = &.{ | 105727 | .each = .{ .once = &.{ |
| 103627 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105728 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103628 | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 105729 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103629 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 105730 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103630 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 105731 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103631 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 105732 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103632 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103633 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105733 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103634 | } }, | 105734 | } }, |
| 103635 | }, .{ | 105735 | }, .{ |
| 103636 | .required_features = .{ .sse, null, null, null }, | 105736 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103637 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105737 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 103638 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 105738 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 103639 | .patterns = &.{ | 105739 | .patterns = &.{ |
| 103640 | .{ .src = .{ .to_mem, .none, .none } }, | 105740 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103641 | }, | 105741 | }, |
| 103642 | .call_frame = .{ .alignment = .@"16" }, | 105742 | .call_frame = .{ .alignment = .@"16" }, |
| 103643 | .extra_temps = .{ | 105743 | .extra_temps = .{ |
| 103644 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105744 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 103645 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105745 | .unused, |
| 103646 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, | 105746 | .unused, |
| 103647 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105747 | .unused, |
| 103648 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 105748 | .unused, |
| 103649 | .unused, | 105749 | .unused, |
| 103650 | .unused, | 105750 | .unused, |
| 103651 | .unused, | 105751 | .unused, |
| ... | @@ -103653,32 +105753,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103653,32 +105753,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103653 | .unused, | 105753 | .unused, |
| 103654 | .unused, | 105754 | .unused, |
| 103655 | }, | 105755 | }, |
| 103656 | .dst_temps = .{ .mem, .unused }, | 105756 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 103657 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105757 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103658 | .each = .{ .once = &.{ | 105758 | .each = .{ .once = &.{ |
| 103659 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105759 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103660 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | | |
| 103661 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103662 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 103663 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 103664 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | | |
| 103665 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103666 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 103667 | } }, | 105760 | } }, |
| 103668 | }, .{ | 105761 | }, .{ |
| 103669 | .required_features = .{ .sse, null, null, null }, | 105762 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103670 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105763 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 103671 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 105764 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 103672 | .patterns = &.{ | 105765 | .patterns = &.{ |
| 103673 | .{ .src = .{ .to_mem, .none, .none } }, | 105766 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103674 | }, | 105767 | }, |
| 103675 | .call_frame = .{ .alignment = .@"16" }, | 105768 | .call_frame = .{ .alignment = .@"16" }, |
| 103676 | .extra_temps = .{ | 105769 | .extra_temps = .{ |
| 103677 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105770 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 103678 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105771 | .unused, |
| 103679 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, | 105772 | .unused, |
| 103680 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 105773 | .unused, |
| 103681 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 105774 | .unused, |
| 103682 | .unused, | 105775 | .unused, |
| 103683 | .unused, | 105776 | .unused, |
| 103684 | .unused, | 105777 | .unused, |
| ... | @@ -103686,33 +105779,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103686,33 +105779,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103686 | .unused, | 105779 | .unused, |
| 103687 | .unused, | 105780 | .unused, |
| 103688 | }, | 105781 | }, |
| 103689 | .dst_temps = .{ .mem, .unused }, | 105782 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 103690 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105783 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103691 | .each = .{ .once = &.{ | 105784 | .each = .{ .once = &.{ |
| 103692 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105785 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103693 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | | |
| 103694 | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103695 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 103696 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 103697 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | | |
| 103698 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 103699 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 103700 | } }, | 105786 | } }, |
| 103701 | }, .{ | 105787 | }, .{ |
| 103702 | .required_features = .{ .@"64bit", .avx, null, null }, | 105788 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103703 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105789 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103704 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 105790 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103705 | .patterns = &.{ | 105791 | .patterns = &.{ |
| 103706 | .{ .src = .{ .to_mem, .none, .none } }, | 105792 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103707 | }, | 105793 | }, |
| 103708 | .call_frame = .{ .alignment = .@"16" }, | 105794 | .call_frame = .{ .alignment = .@"16" }, |
| 103709 | .extra_temps = .{ | 105795 | .extra_temps = .{ |
| 103710 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105796 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103711 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 105797 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103712 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 105798 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 103713 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 105799 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 103714 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105800 | .unused, |
| 103715 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, | 105801 | .unused, |
| 103716 | .unused, | 105802 | .unused, |
| 103717 | .unused, | 105803 | .unused, |
| 103718 | .unused, | 105804 | .unused, |
| ... | @@ -103722,31 +105808,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103722,31 +105808,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103722 | .dst_temps = .{ .mem, .unused }, | 105808 | .dst_temps = .{ .mem, .unused }, |
| 103723 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105809 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103724 | .each = .{ .once = &.{ | 105810 | .each = .{ .once = &.{ |
| 103725 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105811 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103726 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 105812 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103727 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 105813 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103728 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 105814 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103729 | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103730 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 103731 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 103732 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105815 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103733 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105816 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103734 | } }, | 105817 | } }, |
| 103735 | }, .{ | 105818 | }, .{ |
| 103736 | .required_features = .{ .@"64bit", .avx, null, null }, | 105819 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103737 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105820 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103738 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 105821 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103739 | .patterns = &.{ | 105822 | .patterns = &.{ |
| 103740 | .{ .src = .{ .to_mem, .none, .none } }, | 105823 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103741 | }, | 105824 | }, |
| 103742 | .call_frame = .{ .alignment = .@"16" }, | 105825 | .call_frame = .{ .alignment = .@"16" }, |
| 103743 | .extra_temps = .{ | 105826 | .extra_temps = .{ |
| 103744 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105827 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103745 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 105828 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103746 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 105829 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 103747 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 105830 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103748 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105831 | .unused, |
| 103749 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, | 105832 | .unused, |
| 103750 | .unused, | 105833 | .unused, |
| 103751 | .unused, | 105834 | .unused, |
| 103752 | .unused, | 105835 | .unused, |
| ... | @@ -103756,31 +105839,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103756,31 +105839,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103756 | .dst_temps = .{ .mem, .unused }, | 105839 | .dst_temps = .{ .mem, .unused }, |
| 103757 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105840 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103758 | .each = .{ .once = &.{ | 105841 | .each = .{ .once = &.{ |
| 103759 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105842 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103760 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 105843 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103761 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 105844 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103762 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 105845 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103763 | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103764 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 103765 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 103766 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105846 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103767 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105847 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103768 | } }, | 105848 | } }, |
| 103769 | }, .{ | 105849 | }, .{ |
| 103770 | .required_features = .{ .@"64bit", .sse2, null, null }, | 105850 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103771 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105851 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103772 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 105852 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103773 | .patterns = &.{ | 105853 | .patterns = &.{ |
| 103774 | .{ .src = .{ .to_mem, .none, .none } }, | 105854 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103775 | }, | 105855 | }, |
| 103776 | .call_frame = .{ .alignment = .@"16" }, | 105856 | .call_frame = .{ .alignment = .@"16" }, |
| 103777 | .extra_temps = .{ | 105857 | .extra_temps = .{ |
| 103778 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105858 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103779 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 105859 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103780 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 105860 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 103781 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 105861 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 103782 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105862 | .unused, |
| 103783 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, | 105863 | .unused, |
| 103784 | .unused, | 105864 | .unused, |
| 103785 | .unused, | 105865 | .unused, |
| 103786 | .unused, | 105866 | .unused, |
| ... | @@ -103790,31 +105870,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103790,31 +105870,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103790 | .dst_temps = .{ .mem, .unused }, | 105870 | .dst_temps = .{ .mem, .unused }, |
| 103791 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105871 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103792 | .each = .{ .once = &.{ | 105872 | .each = .{ .once = &.{ |
| 103793 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105873 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103794 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 105874 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103795 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 105875 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103796 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 105876 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103797 | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103798 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 103799 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 103800 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105877 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103801 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105878 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103802 | } }, | 105879 | } }, |
| 103803 | }, .{ | 105880 | }, .{ |
| 103804 | .required_features = .{ .@"64bit", .sse2, null, null }, | 105881 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103805 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105882 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103806 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 105883 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103807 | .patterns = &.{ | 105884 | .patterns = &.{ |
| 103808 | .{ .src = .{ .to_mem, .none, .none } }, | 105885 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103809 | }, | 105886 | }, |
| 103810 | .call_frame = .{ .alignment = .@"16" }, | 105887 | .call_frame = .{ .alignment = .@"16" }, |
| 103811 | .extra_temps = .{ | 105888 | .extra_temps = .{ |
| 103812 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105889 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103813 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 105890 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103814 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 105891 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 103815 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 105892 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103816 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105893 | .unused, |
| 103817 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, | 105894 | .unused, |
| 103818 | .unused, | 105895 | .unused, |
| 103819 | .unused, | 105896 | .unused, |
| 103820 | .unused, | 105897 | .unused, |
| ... | @@ -103824,31 +105901,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103824,31 +105901,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103824 | .dst_temps = .{ .mem, .unused }, | 105901 | .dst_temps = .{ .mem, .unused }, |
| 103825 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105902 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103826 | .each = .{ .once = &.{ | 105903 | .each = .{ .once = &.{ |
| 103827 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105904 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103828 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 105905 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103829 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 105906 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103830 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 105907 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103831 | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103832 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 103833 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 103834 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105908 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103835 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105909 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103836 | } }, | 105910 | } }, |
| 103837 | }, .{ | 105911 | }, .{ |
| 103838 | .required_features = .{ .@"64bit", .sse, null, null }, | 105912 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103839 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105913 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103840 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 105914 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103841 | .patterns = &.{ | 105915 | .patterns = &.{ |
| 103842 | .{ .src = .{ .to_mem, .none, .none } }, | 105916 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103843 | }, | 105917 | }, |
| 103844 | .call_frame = .{ .alignment = .@"16" }, | 105918 | .call_frame = .{ .alignment = .@"16" }, |
| 103845 | .extra_temps = .{ | 105919 | .extra_temps = .{ |
| 103846 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105920 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103847 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 105921 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103848 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 105922 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 103849 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 105923 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 103850 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105924 | .unused, |
| 103851 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, | 105925 | .unused, |
| 103852 | .unused, | 105926 | .unused, |
| 103853 | .unused, | 105927 | .unused, |
| 103854 | .unused, | 105928 | .unused, |
| ... | @@ -103858,32 +105932,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103858,32 +105932,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103858 | .dst_temps = .{ .mem, .unused }, | 105932 | .dst_temps = .{ .mem, .unused }, |
| 103859 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105933 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103860 | .each = .{ .once = &.{ | 105934 | .each = .{ .once = &.{ |
| 103861 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105935 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103862 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 105936 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103863 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, | 105937 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103864 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 105938 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103865 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 103866 | .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103867 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 103868 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 103869 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105939 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103870 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105940 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103871 | } }, | 105941 | } }, |
| 103872 | }, .{ | 105942 | }, .{ |
| 103873 | .required_features = .{ .@"64bit", .sse, null, null }, | 105943 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103874 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, | 105944 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103875 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 105945 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103876 | .patterns = &.{ | 105946 | .patterns = &.{ |
| 103877 | .{ .src = .{ .to_mem, .none, .none } }, | 105947 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103878 | }, | 105948 | }, |
| 103879 | .call_frame = .{ .alignment = .@"16" }, | 105949 | .call_frame = .{ .alignment = .@"16" }, |
| 103880 | .extra_temps = .{ | 105950 | .extra_temps = .{ |
| 103881 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 105951 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103882 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 105952 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103883 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 105953 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 103884 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 105954 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103885 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 105955 | .unused, |
| 103886 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, | 105956 | .unused, |
| 103887 | .unused, | 105957 | .unused, |
| 103888 | .unused, | 105958 | .unused, |
| 103889 | .unused, | 105959 | .unused, |
| ... | @@ -103893,28 +105963,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103893,28 +105963,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103893 | .dst_temps = .{ .mem, .unused }, | 105963 | .dst_temps = .{ .mem, .unused }, |
| 103894 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 105964 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103895 | .each = .{ .once = &.{ | 105965 | .each = .{ .once = &.{ |
| 103896 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 105966 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103897 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 105967 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103898 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, | 105968 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103899 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 105969 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103900 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 103901 | .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 103902 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 103903 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 103904 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 105970 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103905 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 105971 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103906 | } }, | 105972 | } }, |
| 103907 | }, .{ | 105973 | }, .{ |
| 103908 | .required_features = .{ .x87, null, null, null }, | 105974 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103909 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 105975 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 103910 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, | 105976 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 103911 | .patterns = &.{ | 105977 | .patterns = &.{ |
| 103912 | .{ .src = .{ .mem, .none, .none } }, | 105978 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103913 | .{ .src = .{ .to_x87, .none, .none } }, | | |
| 103914 | }, | 105979 | }, |
| | 105980 | .call_frame = .{ .alignment = .@"16" }, |
| 103915 | .extra_temps = .{ | 105981 | .extra_temps = .{ |
| 103916 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 105982 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 103917 | .{ .type = .i16, .kind = .mem }, | 105983 | .unused, |
| 103918 | .unused, | 105984 | .unused, |
| 103919 | .unused, | 105985 | .unused, |
| 103920 | .unused, | 105986 | .unused, |
| ... | @@ -103925,23 +105991,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103925,23 +105991,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103925 | .unused, | 105991 | .unused, |
| 103926 | .unused, | 105992 | .unused, |
| 103927 | }, | 105993 | }, |
| 103928 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 105994 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| | 105995 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103929 | .each = .{ .once = &.{ | 105996 | .each = .{ .once = &.{ |
| 103930 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 105997 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103931 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, | | |
| 103932 | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, | | |
| 103933 | } }, | 105998 | } }, |
| 103934 | }, .{ | 105999 | }, .{ |
| 103935 | .required_features = .{ .x87, null, null, null }, | 106000 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103936 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106001 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 103937 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, | 106002 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 103938 | .patterns = &.{ | 106003 | .patterns = &.{ |
| 103939 | .{ .src = .{ .mem, .none, .none } }, | 106004 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103940 | .{ .src = .{ .to_x87, .none, .none } }, | | |
| 103941 | }, | 106005 | }, |
| | 106006 | .call_frame = .{ .alignment = .@"16" }, |
| 103942 | .extra_temps = .{ | 106007 | .extra_temps = .{ |
| 103943 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 106008 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 103944 | .{ .type = .i16, .kind = .mem }, | 106009 | .unused, |
| 103945 | .unused, | 106010 | .unused, |
| 103946 | .unused, | 106011 | .unused, |
| 103947 | .unused, | 106012 | .unused, |
| ... | @@ -103952,25 +106017,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103952,25 +106017,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103952 | .unused, | 106017 | .unused, |
| 103953 | .unused, | 106018 | .unused, |
| 103954 | }, | 106019 | }, |
| 103955 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | 106020 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| | 106021 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103956 | .each = .{ .once = &.{ | 106022 | .each = .{ .once = &.{ |
| 103957 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 106023 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103958 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, | | |
| 103959 | .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ }, | | |
| 103960 | } }, | 106024 | } }, |
| 103961 | }, .{ | 106025 | }, .{ |
| 103962 | .required_features = .{ .x87, .slow_incdec, null, null }, | 106026 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103963 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106027 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103964 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 106028 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 103965 | .patterns = &.{ | 106029 | .patterns = &.{ |
| 103966 | .{ .src = .{ .to_mem, .none, .none } }, | 106030 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103967 | }, | 106031 | }, |
| | 106032 | .call_frame = .{ .alignment = .@"16" }, |
| 103968 | .extra_temps = .{ | 106033 | .extra_temps = .{ |
| 103969 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 103970 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106034 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103971 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106035 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 103972 | .{ .type = .i16, .kind = .mem }, | 106036 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 103973 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 106037 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 106038 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 103974 | .unused, | 106039 | .unused, |
| 103975 | .unused, | 106040 | .unused, |
| 103976 | .unused, | 106041 | .unused, |
| ... | @@ -103979,31 +106044,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -103979,31 +106044,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103979 | .unused, | 106044 | .unused, |
| 103980 | }, | 106045 | }, |
| 103981 | .dst_temps = .{ .mem, .unused }, | 106046 | .dst_temps = .{ .mem, .unused }, |
| 103982 | .clobbers = .{ .eflags = true }, | 106047 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103983 | .each = .{ .once = &.{ | 106048 | .each = .{ .once = &.{ |
| 103984 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 106049 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103985 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106050 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103986 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, | 106051 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103987 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, | 106052 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103988 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, | 106053 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103989 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 106054 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103990 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 103991 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, | | |
| 103992 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106055 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103993 | } }, | 106056 | } }, |
| 103994 | }, .{ | 106057 | }, .{ |
| 103995 | .required_features = .{ .x87, null, null, null }, | 106058 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103996 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106059 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 103997 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, | 106060 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 103998 | .patterns = &.{ | 106061 | .patterns = &.{ |
| 103999 | .{ .src = .{ .to_mem, .none, .none } }, | 106062 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104000 | }, | 106063 | }, |
| | 106064 | .call_frame = .{ .alignment = .@"16" }, |
| 104001 | .extra_temps = .{ | 106065 | .extra_temps = .{ |
| 104002 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 104003 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106066 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104004 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106067 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104005 | .{ .type = .i16, .kind = .mem }, | 106068 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 104006 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 106069 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 106070 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104007 | .unused, | 106071 | .unused, |
| 104008 | .unused, | 106072 | .unused, |
| 104009 | .unused, | 106073 | .unused, |
| ... | @@ -104012,31 +106076,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104012,31 +106076,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104012 | .unused, | 106076 | .unused, |
| 104013 | }, | 106077 | }, |
| 104014 | .dst_temps = .{ .mem, .unused }, | 106078 | .dst_temps = .{ .mem, .unused }, |
| 104015 | .clobbers = .{ .eflags = true }, | 106079 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104016 | .each = .{ .once = &.{ | 106080 | .each = .{ .once = &.{ |
| 104017 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 106081 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104018 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106082 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104019 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, | 106083 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104020 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, | 106084 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104021 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, | 106085 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104022 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 106086 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104023 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | 106087 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104024 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | | |
| 104025 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 104026 | } }, | 106088 | } }, |
| 104027 | }, .{ | 106089 | }, .{ |
| 104028 | .required_features = .{ .x87, .slow_incdec, null, null }, | 106090 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104029 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106091 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104030 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 106092 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104031 | .patterns = &.{ | 106093 | .patterns = &.{ |
| 104032 | .{ .src = .{ .to_mem, .none, .none } }, | 106094 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104033 | }, | 106095 | }, |
| | 106096 | .call_frame = .{ .alignment = .@"16" }, |
| 104034 | .extra_temps = .{ | 106097 | .extra_temps = .{ |
| 104035 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 104036 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106098 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104037 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106099 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104038 | .{ .type = .i16, .kind = .mem }, | 106100 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 104039 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 106101 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 106102 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 104040 | .unused, | 106103 | .unused, |
| 104041 | .unused, | 106104 | .unused, |
| 104042 | .unused, | 106105 | .unused, |
| ... | @@ -104045,65 +106108,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104045,65 +106108,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104045 | .unused, | 106108 | .unused, |
| 104046 | }, | 106109 | }, |
| 104047 | .dst_temps = .{ .mem, .unused }, | 106110 | .dst_temps = .{ .mem, .unused }, |
| 104048 | .clobbers = .{ .eflags = true }, | 106111 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104049 | .each = .{ .once = &.{ | 106112 | .each = .{ .once = &.{ |
| 104050 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 106113 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104051 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106114 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104052 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, | 106115 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104053 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, | 106116 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104054 | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, | 106117 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104055 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 106118 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104056 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 104057 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, | | |
| 104058 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106119 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104059 | } }, | 106120 | } }, |
| 104060 | }, .{ | 106121 | }, .{ |
| 104061 | .required_features = .{ .x87, null, null, null }, | 106122 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104062 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106123 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104063 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, | 106124 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104064 | .patterns = &.{ | 106125 | .patterns = &.{ |
| 104065 | .{ .src = .{ .to_mem, .none, .none } }, | 106126 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104066 | }, | 106127 | }, |
| | 106128 | .call_frame = .{ .alignment = .@"16" }, |
| 104067 | .extra_temps = .{ | 106129 | .extra_temps = .{ |
| 104068 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 104069 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106130 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104070 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106131 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104071 | .{ .type = .i16, .kind = .mem }, | 106132 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 104072 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | 106133 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104073 | .unused, | 106134 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104074 | .unused, | | |
| 104075 | .unused, | | |
| 104076 | .unused, | | |
| 104077 | .unused, | | |
| 104078 | .unused, | | |
| 104079 | }, | | |
| 104080 | .dst_temps = .{ .mem, .unused }, | | |
| 104081 | .clobbers = .{ .eflags = true }, | | |
| 104082 | .each = .{ .once = &.{ | | |
| 104083 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 104084 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 104085 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, | | |
| 104086 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, | | |
| 104087 | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, | | |
| 104088 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | | |
| 104089 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 104090 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | | |
| 104091 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 104092 | } }, | | |
| 104093 | }, .{ | | |
| 104094 | .required_features = .{ .x87, null, null, null }, | | |
| 104095 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | | |
| 104096 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, | | |
| 104097 | .patterns = &.{ | | |
| 104098 | .{ .src = .{ .mem, .none, .none } }, | | |
| 104099 | .{ .src = .{ .to_x87, .none, .none } }, | | |
| 104100 | }, | | |
| 104101 | .extra_temps = .{ | | |
| 104102 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 104103 | .unused, | | |
| 104104 | .unused, | | |
| 104105 | .unused, | | |
| 104106 | .unused, | | |
| 104107 | .unused, | 106135 | .unused, |
| 104108 | .unused, | 106136 | .unused, |
| 104109 | .unused, | 106137 | .unused, |
| ... | @@ -104112,23 +106140,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104112,23 +106140,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104112 | .unused, | 106140 | .unused, |
| 104113 | }, | 106141 | }, |
| 104114 | .dst_temps = .{ .mem, .unused }, | 106142 | .dst_temps = .{ .mem, .unused }, |
| | 106143 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104115 | .each = .{ .once = &.{ | 106144 | .each = .{ .once = &.{ |
| 104116 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 106145 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104117 | .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, | 106146 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 106147 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 106148 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 106149 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 106150 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 106151 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104118 | } }, | 106152 | } }, |
| 104119 | }, .{ | 106153 | }, .{ |
| 104120 | .required_features = .{ .x87, null, null, null }, | 106154 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104121 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106155 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104122 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, | 106156 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104123 | .patterns = &.{ | 106157 | .patterns = &.{ |
| 104124 | .{ .src = .{ .to_mem, .none, .none } }, | 106158 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104125 | }, | 106159 | }, |
| | 106160 | .call_frame = .{ .alignment = .@"16" }, |
| 104126 | .extra_temps = .{ | 106161 | .extra_temps = .{ |
| 104127 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106162 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104128 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106163 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104129 | .unused, | 106164 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 104130 | .unused, | 106165 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104131 | .unused, | 106166 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 104132 | .unused, | 106167 | .unused, |
| 104133 | .unused, | 106168 | .unused, |
| 104134 | .unused, | 106169 | .unused, |
| ... | @@ -104137,27 +106172,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104137,27 +106172,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104137 | .unused, | 106172 | .unused, |
| 104138 | }, | 106173 | }, |
| 104139 | .dst_temps = .{ .mem, .unused }, | 106174 | .dst_temps = .{ .mem, .unused }, |
| 104140 | .clobbers = .{ .eflags = true }, | 106175 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104141 | .each = .{ .once = &.{ | 106176 | .each = .{ .once = &.{ |
| 104142 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106177 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104143 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 106178 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104144 | .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 106179 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104145 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 106180 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 106181 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| | 106182 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104146 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106183 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104147 | } }, | 106184 | } }, |
| 104148 | }, .{ | 106185 | }, .{ |
| 104149 | .required_features = .{ .x87, null, null, null }, | 106186 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104150 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106187 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104151 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, | 106188 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104152 | .patterns = &.{ | 106189 | .patterns = &.{ |
| 104153 | .{ .src = .{ .to_mem, .none, .none } }, | 106190 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104154 | }, | 106191 | }, |
| | 106192 | .call_frame = .{ .alignment = .@"16" }, |
| 104155 | .extra_temps = .{ | 106193 | .extra_temps = .{ |
| 104156 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106194 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104157 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106195 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104158 | .{ .type = .i32, .kind = .mem }, | 106196 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 104159 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, | 106197 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104160 | .unused, | 106198 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104161 | .unused, | 106199 | .unused, |
| 104162 | .unused, | 106200 | .unused, |
| 104163 | .unused, | 106201 | .unused, |
| ... | @@ -104166,28 +106204,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104166,28 +106204,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104166 | .unused, | 106204 | .unused, |
| 104167 | }, | 106205 | }, |
| 104168 | .dst_temps = .{ .mem, .unused }, | 106206 | .dst_temps = .{ .mem, .unused }, |
| 104169 | .clobbers = .{ .eflags = true }, | 106207 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104170 | .each = .{ .once = &.{ | 106208 | .each = .{ .once = &.{ |
| 104171 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106209 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104172 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 106210 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104173 | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, | 106211 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104174 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, | 106212 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104175 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 106213 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104176 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 106214 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104177 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106215 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104178 | } }, | 106216 | } }, |
| 104179 | }, .{ | 106217 | }, .{ |
| 104180 | .required_features = .{ .x87, null, null, null }, | 106218 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104181 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106219 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 104182 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, | 106220 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104183 | .patterns = &.{ | 106221 | .patterns = &.{ |
| 104184 | .{ .src = .{ .mem, .none, .none } }, | 106222 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 104185 | .{ .src = .{ .to_x87, .none, .none } }, | | |
| 104186 | }, | 106223 | }, |
| | 106224 | .call_frame = .{ .alignment = .@"16" }, |
| 104187 | .extra_temps = .{ | 106225 | .extra_temps = .{ |
| 104188 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106226 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104189 | .unused, | 106227 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104190 | .unused, | 106228 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104191 | .unused, | 106229 | .unused, |
| 104192 | .unused, | 106230 | .unused, |
| 104193 | .unused, | 106231 | .unused, |
| ... | @@ -104198,21 +106236,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104198,21 +106236,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104198 | .unused, | 106236 | .unused, |
| 104199 | }, | 106237 | }, |
| 104200 | .dst_temps = .{ .mem, .unused }, | 106238 | .dst_temps = .{ .mem, .unused }, |
| | 106239 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104201 | .each = .{ .once = &.{ | 106240 | .each = .{ .once = &.{ |
| 104202 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 106241 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104203 | .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, | 106242 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 106243 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104204 | } }, | 106244 | } }, |
| 104205 | }, .{ | 106245 | }, .{ |
| 104206 | .required_features = .{ .x87, null, null, null }, | 106246 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104207 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106247 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 104208 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 106248 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104209 | .patterns = &.{ | 106249 | .patterns = &.{ |
| 104210 | .{ .src = .{ .to_mem, .none, .none } }, | 106250 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 104211 | }, | 106251 | }, |
| | 106252 | .call_frame = .{ .alignment = .@"16" }, |
| 104212 | .extra_temps = .{ | 106253 | .extra_temps = .{ |
| 104213 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106254 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104214 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106255 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104215 | .unused, | 106256 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104216 | .unused, | 106257 | .unused, |
| 104217 | .unused, | 106258 | .unused, |
| 104218 | .unused, | 106259 | .unused, |
| ... | @@ -104223,60 +106264,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104223,60 +106264,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104223 | .unused, | 106264 | .unused, |
| 104224 | }, | 106265 | }, |
| 104225 | .dst_temps = .{ .mem, .unused }, | 106266 | .dst_temps = .{ .mem, .unused }, |
| 104226 | .clobbers = .{ .eflags = true }, | 106267 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104227 | .each = .{ .once = &.{ | 106268 | .each = .{ .once = &.{ |
| 104228 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106269 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104229 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 106270 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104230 | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 106271 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104231 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 104232 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 104233 | } }, | 106272 | } }, |
| 104234 | }, .{ | 106273 | }, .{ |
| 104235 | .required_features = .{ .x87, null, null, null }, | 106274 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104236 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106275 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104237 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 106276 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104238 | .patterns = &.{ | 106277 | .patterns = &.{ |
| 104239 | .{ .src = .{ .to_mem, .none, .none } }, | 106278 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104240 | }, | 106279 | }, |
| | 106280 | .call_frame = .{ .alignment = .@"16" }, |
| 104241 | .extra_temps = .{ | 106281 | .extra_temps = .{ |
| 104242 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104243 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106283 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104244 | .{ .type = .i64, .kind = .mem }, | 106284 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104245 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 106285 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104246 | .unused, | 106286 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104247 | .unused, | 106287 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104248 | .unused, | | |
| 104249 | .unused, | | |
| 104250 | .unused, | | |
| 104251 | .unused, | | |
| 104252 | .unused, | | |
| 104253 | }, | | |
| 104254 | .dst_temps = .{ .mem, .unused }, | | |
| 104255 | .clobbers = .{ .eflags = true }, | | |
| 104256 | .each = .{ .once = &.{ | | |
| 104257 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 104258 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | | |
| 104259 | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, | | |
| 104260 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, | | |
| 104261 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | | |
| 104262 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 104263 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 104264 | } }, | | |
| 104265 | }, .{ | | |
| 104266 | .required_features = .{ .x87, null, null, null }, | | |
| 104267 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | | |
| 104268 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, | | |
| 104269 | .patterns = &.{ | | |
| 104270 | .{ .src = .{ .mem, .none, .none } }, | | |
| 104271 | .{ .src = .{ .to_x87, .none, .none } }, | | |
| 104272 | }, | | |
| 104273 | .extra_temps = .{ | | |
| 104274 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | | |
| 104275 | .unused, | | |
| 104276 | .unused, | | |
| 104277 | .unused, | | |
| 104278 | .unused, | | |
| 104279 | .unused, | | |
| 104280 | .unused, | 106288 | .unused, |
| 104281 | .unused, | 106289 | .unused, |
| 104282 | .unused, | 106290 | .unused, |
| ... | @@ -104284,60 +106292,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104284,60 +106292,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104284 | .unused, | 106292 | .unused, |
| 104285 | }, | 106293 | }, |
| 104286 | .dst_temps = .{ .mem, .unused }, | 106294 | .dst_temps = .{ .mem, .unused }, |
| | 106295 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104287 | .each = .{ .once = &.{ | 106296 | .each = .{ .once = &.{ |
| 104288 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | 106297 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104289 | .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ }, | 106298 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 104290 | } }, | 106299 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104291 | }, .{ | 106300 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104292 | .required_features = .{ .@"64bit", .x87, null, null }, | 106301 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104293 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106302 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 104294 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, | 106303 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 104295 | .patterns = &.{ | 106304 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104296 | .{ .src = .{ .mem, .none, .none } }, | 106305 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104297 | .{ .src = .{ .to_x87, .none, .none } }, | | |
| 104298 | }, | | |
| 104299 | .extra_temps = .{ | | |
| 104300 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, | | |
| 104301 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, | | |
| 104302 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, | | |
| 104303 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 104304 | .{ .type = .i64, .kind = .mem }, | | |
| 104305 | .unused, | | |
| 104306 | .unused, | | |
| 104307 | .unused, | | |
| 104308 | .unused, | | |
| 104309 | .unused, | | |
| 104310 | .unused, | | |
| 104311 | }, | | |
| 104312 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, | | |
| 104313 | .clobbers = .{ .eflags = true }, | | |
| 104314 | .each = .{ .once = &.{ | | |
| 104315 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, | | |
| 104316 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, | | |
| 104317 | .{ ._, .f_, .ld, .tmp3t, ._, ._, ._ }, | | |
| 104318 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, | | |
| 104319 | .{ ._, ._, .mov, .dst0q, .tmp4q, ._, ._ }, | | |
| 104320 | .{ ._, .f_, .sub, .lea(.tmp0d), ._, ._, ._ }, | | |
| 104321 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | | |
| 104322 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, | | |
| 104323 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, | | |
| 104324 | .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ }, | | |
| 104325 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, | | |
| 104326 | } }, | 106306 | } }, |
| 104327 | }, .{ | 106307 | }, .{ |
| 104328 | .required_features = .{ .x87, null, null, null }, | 106308 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104329 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106309 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104330 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 106310 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104331 | .patterns = &.{ | 106311 | .patterns = &.{ |
| 104332 | .{ .src = .{ .to_mem, .none, .none } }, | 106312 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104333 | }, | 106313 | }, |
| | 106314 | .call_frame = .{ .alignment = .@"16" }, |
| 104334 | .extra_temps = .{ | 106315 | .extra_temps = .{ |
| 104335 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106316 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104336 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 106317 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104337 | .unused, | 106318 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104338 | .unused, | 106319 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104339 | .unused, | 106320 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104340 | .unused, | 106321 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104341 | .unused, | 106322 | .unused, |
| 104342 | .unused, | 106323 | .unused, |
| 104343 | .unused, | 106324 | .unused, |
| ... | @@ -104345,29 +106326,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104345,29 +106326,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104345 | .unused, | 106326 | .unused, |
| 104346 | }, | 106327 | }, |
| 104347 | .dst_temps = .{ .mem, .unused }, | 106328 | .dst_temps = .{ .mem, .unused }, |
| 104348 | .clobbers = .{ .eflags = true }, | 106329 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104349 | .each = .{ .once = &.{ | 106330 | .each = .{ .once = &.{ |
| 104350 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106331 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104351 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 106332 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 104352 | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 106333 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104353 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 106334 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 106335 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 106336 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 106337 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 106338 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104354 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106339 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104355 | } }, | 106340 | } }, |
| 104356 | }, .{ | 106341 | }, .{ |
| 104357 | .required_features = .{ .@"64bit", .avx, null, null }, | 106342 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104358 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106343 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104359 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 106344 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104360 | .patterns = &.{ | 106345 | .patterns = &.{ |
| 104361 | .{ .src = .{ .to_mem, .none, .none } }, | 106346 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104362 | }, | 106347 | }, |
| 104363 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106348 | .call_frame = .{ .alignment = .@"16" }, |
| 104364 | .extra_temps = .{ | 106349 | .extra_temps = .{ |
| 104365 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106350 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104366 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106351 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104367 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106352 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104368 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106353 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104369 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106354 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104370 | .unused, | 106355 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104371 | .unused, | 106356 | .unused, |
| 104372 | .unused, | 106357 | .unused, |
| 104373 | .unused, | 106358 | .unused, |
| ... | @@ -104377,29 +106362,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104377,29 +106362,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104377 | .dst_temps = .{ .mem, .unused }, | 106362 | .dst_temps = .{ .mem, .unused }, |
| 104378 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106363 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104379 | .each = .{ .once = &.{ | 106364 | .each = .{ .once = &.{ |
| 104380 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106365 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104381 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 106366 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 104382 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | 106367 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104383 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 106368 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104384 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | 106369 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104385 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 106370 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 106371 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 106372 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104386 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106373 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104387 | } }, | 106374 | } }, |
| 104388 | }, .{ | 106375 | }, .{ |
| 104389 | .required_features = .{ .@"64bit", .sse2, null, null }, | 106376 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104390 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106377 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104391 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 106378 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104392 | .patterns = &.{ | 106379 | .patterns = &.{ |
| 104393 | .{ .src = .{ .to_mem, .none, .none } }, | 106380 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104394 | }, | 106381 | }, |
| 104395 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106382 | .call_frame = .{ .alignment = .@"16" }, |
| 104396 | .extra_temps = .{ | 106383 | .extra_temps = .{ |
| 104397 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106384 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104398 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106385 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104399 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106386 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104400 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106387 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104401 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106388 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104402 | .unused, | 106389 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104403 | .unused, | 106390 | .unused, |
| 104404 | .unused, | 106391 | .unused, |
| 104405 | .unused, | 106392 | .unused, |
| ... | @@ -104409,29 +106396,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104409,29 +106396,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104409 | .dst_temps = .{ .mem, .unused }, | 106396 | .dst_temps = .{ .mem, .unused }, |
| 104410 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106397 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104411 | .each = .{ .once = &.{ | 106398 | .each = .{ .once = &.{ |
| 104412 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106399 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104413 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 106400 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 104414 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | 106401 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104415 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 106402 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104416 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | 106403 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104417 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 106404 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 106405 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 106406 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104418 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106407 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104419 | } }, | 106408 | } }, |
| 104420 | }, .{ | 106409 | }, .{ |
| 104421 | .required_features = .{ .@"64bit", .sse, null, null }, | 106410 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104422 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106411 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104423 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 106412 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104424 | .patterns = &.{ | 106413 | .patterns = &.{ |
| 104425 | .{ .src = .{ .to_mem, .none, .none } }, | 106414 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104426 | }, | 106415 | }, |
| 104427 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106416 | .call_frame = .{ .alignment = .@"16" }, |
| 104428 | .extra_temps = .{ | 106417 | .extra_temps = .{ |
| 104429 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106418 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104430 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106419 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104431 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106420 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104432 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106421 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104433 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106422 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104434 | .unused, | 106423 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104435 | .unused, | 106424 | .unused, |
| 104436 | .unused, | 106425 | .unused, |
| 104437 | .unused, | 106426 | .unused, |
| ... | @@ -104441,54 +106430,77 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104441,54 +106430,77 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104441 | .dst_temps = .{ .mem, .unused }, | 106430 | .dst_temps = .{ .mem, .unused }, |
| 104442 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106431 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104443 | .each = .{ .once = &.{ | 106432 | .each = .{ .once = &.{ |
| 104444 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 106433 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104445 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 106434 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 104446 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, | 106435 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104447 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 106436 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104448 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | 106437 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104449 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 106438 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 106439 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 106440 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104450 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106441 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104451 | } }, | 106442 | } }, |
| 104452 | }, .{ | 106443 | }, .{ |
| 104453 | .required_features = .{ .@"64bit", .avx, null, null }, | 106444 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104454 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106445 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 104455 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | 106446 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104456 | .patterns = &.{ | 106447 | .patterns = &.{ |
| 104457 | .{ .src = .{ .to_mem, .none, .none } }, | 106448 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104458 | }, | 106449 | }, |
| 104459 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106450 | .call_frame = .{ .alignment = .@"16" }, |
| 104460 | .extra_temps = .{ | 106451 | .extra_temps = .{ |
| 104461 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106452 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104462 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106453 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104463 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, | 106454 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104464 | .unused, | 106455 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104465 | .unused, | 106456 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 104466 | .unused, | 106457 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104467 | .unused, | 106458 | .unused, |
| 104468 | .unused, | 106459 | .unused, |
| 104469 | .unused, | 106460 | .unused, |
| 104470 | .unused, | 106461 | .unused, |
| 104471 | .unused, | 106462 | .unused, |
| 104472 | }, | 106463 | }, |
| 104473 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 106464 | .dst_temps = .{ .mem, .unused }, |
| 104474 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106465 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104475 | .each = .{ .once = &.{ | 106466 | .each = .{ .once = &.{ |
| 104476 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, | 106467 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104477 | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, | 106468 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 104478 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 106469 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| | 106470 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 106471 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 106472 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| | 106473 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| | 106474 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 106475 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104479 | } }, | 106476 | } }, |
| 104480 | }, .{ | 106477 | } }) catch |err| switch (err) { |
| 104481 | .required_features = .{ .@"64bit", .avx, null, null }, | 106478 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| 104482 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106479 | @tagName(air_tag), |
| 104483 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 106480 | ty_op.ty.toType().fmt(pt), |
| | 106481 | cg.typeOf(ty_op.operand).fmt(pt), |
| | 106482 | ops[0].tracking(cg), |
| | 106483 | }), |
| | 106484 | else => |e| return e, |
| | 106485 | }; |
| | 106486 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 106487 | }, |
| | 106488 | .float_from_int => |air_tag| if (use_old) try cg.airFloatFromInt(inst) else { |
| | 106489 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 106490 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 106491 | var res: [1]Temp = undefined; |
| | 106492 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| | 106493 | .required_features = .{ .f16c, null, null, null }, |
| | 106494 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| | 106495 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104484 | .patterns = &.{ | 106496 | .patterns = &.{ |
| 104485 | .{ .src = .{ .to_mem, .none, .none } }, | 106497 | .{ .src = .{ .mem, .none, .none } }, |
| | 106498 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104486 | }, | 106499 | }, |
| 104487 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 104488 | .extra_temps = .{ | 106500 | .extra_temps = .{ |
| 104489 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106501 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 104490 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106502 | .unused, |
| 104491 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106503 | .unused, |
| 104492 | .unused, | 106504 | .unused, |
| 104493 | .unused, | 106505 | .unused, |
| 104494 | .unused, | 106506 | .unused, |
| ... | @@ -104498,25 +106510,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104498,25 +106510,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104498 | .unused, | 106510 | .unused, |
| 104499 | .unused, | 106511 | .unused, |
| 104500 | }, | 106512 | }, |
| 104501 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 106513 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104502 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 104503 | .each = .{ .once = &.{ | 106514 | .each = .{ .once = &.{ |
| 104504 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, | 106515 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 104505 | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, | 106516 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 104506 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 106517 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| | 106518 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104507 | } }, | 106519 | } }, |
| 104508 | }, .{ | 106520 | }, .{ |
| 104509 | .required_features = .{ .@"64bit", .sse2, null, null }, | 106521 | .required_features = .{ .f16c, null, null, null }, |
| 104510 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106522 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 104511 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | 106523 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104512 | .patterns = &.{ | 106524 | .patterns = &.{ |
| 104513 | .{ .src = .{ .to_mem, .none, .none } }, | 106525 | .{ .src = .{ .mem, .none, .none } }, |
| | 106526 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104514 | }, | 106527 | }, |
| 104515 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 104516 | .extra_temps = .{ | 106528 | .extra_temps = .{ |
| 104517 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106529 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 104518 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106530 | .unused, |
| 104519 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, | 106531 | .unused, |
| 104520 | .unused, | 106532 | .unused, |
| 104521 | .unused, | 106533 | .unused, |
| 104522 | .unused, | 106534 | .unused, |
| ... | @@ -104526,25 +106538,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104526,25 +106538,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104526 | .unused, | 106538 | .unused, |
| 104527 | .unused, | 106539 | .unused, |
| 104528 | }, | 106540 | }, |
| 104529 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 106541 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104530 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 104531 | .each = .{ .once = &.{ | 106542 | .each = .{ .once = &.{ |
| 104532 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, | 106543 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 104533 | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, | 106544 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 104534 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 106545 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| | 106546 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104535 | } }, | 106547 | } }, |
| 104536 | }, .{ | 106548 | }, .{ |
| 104537 | .required_features = .{ .@"64bit", .sse2, null, null }, | 106549 | .required_features = .{ .f16c, null, null, null }, |
| 104538 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106550 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 104539 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 106551 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104540 | .patterns = &.{ | 106552 | .patterns = &.{ |
| 104541 | .{ .src = .{ .to_mem, .none, .none } }, | 106553 | .{ .src = .{ .mem, .none, .none } }, |
| | 106554 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104542 | }, | 106555 | }, |
| 104543 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 104544 | .extra_temps = .{ | 106556 | .extra_temps = .{ |
| 104545 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106557 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 104546 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106558 | .unused, |
| 104547 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106559 | .unused, |
| 104548 | .unused, | 106560 | .unused, |
| 104549 | .unused, | 106561 | .unused, |
| 104550 | .unused, | 106562 | .unused, |
| ... | @@ -104554,25 +106566,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104554,25 +106566,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104554 | .unused, | 106566 | .unused, |
| 104555 | .unused, | 106567 | .unused, |
| 104556 | }, | 106568 | }, |
| 104557 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 106569 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104558 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 104559 | .each = .{ .once = &.{ | 106570 | .each = .{ .once = &.{ |
| 104560 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, | 106571 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 104561 | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, | 106572 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 104562 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 106573 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| | 106574 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104563 | } }, | 106575 | } }, |
| 104564 | }, .{ | 106576 | }, .{ |
| 104565 | .required_features = .{ .@"64bit", .sse, null, null }, | 106577 | .required_features = .{ .f16c, null, null, null }, |
| 104566 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106578 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 104567 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | 106579 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104568 | .patterns = &.{ | 106580 | .patterns = &.{ |
| 104569 | .{ .src = .{ .to_mem, .none, .none } }, | 106581 | .{ .src = .{ .mem, .none, .none } }, |
| | 106582 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104570 | }, | 106583 | }, |
| 104571 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 104572 | .extra_temps = .{ | 106584 | .extra_temps = .{ |
| 104573 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106585 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 104574 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106586 | .unused, |
| 104575 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, | 106587 | .unused, |
| 104576 | .unused, | 106588 | .unused, |
| 104577 | .unused, | 106589 | .unused, |
| 104578 | .unused, | 106590 | .unused, |
| ... | @@ -104582,25 +106594,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104582,25 +106594,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104582 | .unused, | 106594 | .unused, |
| 104583 | .unused, | 106595 | .unused, |
| 104584 | }, | 106596 | }, |
| 104585 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 106597 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104586 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 104587 | .each = .{ .once = &.{ | 106598 | .each = .{ .once = &.{ |
| 104588 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, | 106599 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 104589 | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, | 106600 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 104590 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 106601 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| | 106602 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104591 | } }, | 106603 | } }, |
| 104592 | }, .{ | 106604 | }, .{ |
| 104593 | .required_features = .{ .@"64bit", .sse, null, null }, | 106605 | .required_features = .{ .f16c, null, null, null }, |
| 104594 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106606 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 104595 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 106607 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104596 | .patterns = &.{ | 106608 | .patterns = &.{ |
| 104597 | .{ .src = .{ .to_mem, .none, .none } }, | 106609 | .{ .src = .{ .mem, .none, .none } }, |
| | 106610 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 106611 | }, |
| | 106612 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 106613 | .each = .{ .once = &.{ |
| | 106614 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 106615 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, |
| | 106616 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 106617 | } }, |
| | 106618 | }, .{ |
| | 106619 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| | 106620 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| | 106621 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| | 106622 | .patterns = &.{ |
| | 106623 | .{ .src = .{ .mem, .none, .none } }, |
| | 106624 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104598 | }, | 106625 | }, |
| 104599 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 104600 | .extra_temps = .{ | 106626 | .extra_temps = .{ |
| 104601 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106627 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 104602 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106628 | .unused, |
| 104603 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106629 | .unused, |
| 104604 | .unused, | 106630 | .unused, |
| 104605 | .unused, | 106631 | .unused, |
| 104606 | .unused, | 106632 | .unused, |
| ... | @@ -104610,225 +106636,185 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104610,225 +106636,185 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104610 | .unused, | 106636 | .unused, |
| 104611 | .unused, | 106637 | .unused, |
| 104612 | }, | 106638 | }, |
| 104613 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 106639 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104614 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 104615 | .each = .{ .once = &.{ | 106640 | .each = .{ .once = &.{ |
| 104616 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, | 106641 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 104617 | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, | 106642 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 104618 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 106643 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, |
| | 106644 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104619 | } }, | 106645 | } }, |
| 104620 | }, .{ | 106646 | }, .{ |
| 104621 | .required_features = .{ .@"64bit", .avx, null, null }, | 106647 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 104622 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106648 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 104623 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 106649 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104624 | .patterns = &.{ | 106650 | .patterns = &.{ |
| 104625 | .{ .src = .{ .to_mem, .none, .none } }, | 106651 | .{ .src = .{ .mem, .none, .none } }, |
| 104626 | }, | 106652 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104627 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 104628 | .extra_temps = .{ | | |
| 104629 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 104630 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | | |
| 104631 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | | |
| 104632 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, | | |
| 104633 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | | |
| 104634 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | | |
| 104635 | .unused, | | |
| 104636 | .unused, | | |
| 104637 | .unused, | | |
| 104638 | .unused, | | |
| 104639 | .unused, | | |
| 104640 | }, | 106653 | }, |
| 104641 | .dst_temps = .{ .mem, .unused }, | 106654 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104642 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 104643 | .each = .{ .once = &.{ | 106655 | .each = .{ .once = &.{ |
| 104644 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 106656 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 104645 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 106657 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| 104646 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | 106658 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104647 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 104648 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | | |
| 104649 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | | |
| 104650 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 104651 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 104652 | } }, | 106659 | } }, |
| 104653 | }, .{ | 106660 | }, .{ |
| 104654 | .required_features = .{ .@"64bit", .avx, null, null }, | 106661 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 104655 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106662 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 104656 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 106663 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104657 | .patterns = &.{ | 106664 | .patterns = &.{ |
| 104658 | .{ .src = .{ .to_mem, .none, .none } }, | 106665 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 104659 | }, | 106666 | }, |
| 104660 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 104661 | .extra_temps = .{ | 106667 | .extra_temps = .{ |
| 104662 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106668 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 104663 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106669 | .unused, |
| 104664 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106670 | .unused, |
| 104665 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106671 | .unused, |
| 104666 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106672 | .unused, |
| 104667 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 106673 | .unused, |
| 104668 | .unused, | 106674 | .unused, |
| 104669 | .unused, | 106675 | .unused, |
| 104670 | .unused, | 106676 | .unused, |
| 104671 | .unused, | 106677 | .unused, |
| 104672 | .unused, | 106678 | .unused, |
| 104673 | }, | 106679 | }, |
| 104674 | .dst_temps = .{ .mem, .unused }, | 106680 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104675 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106681 | .clobbers = .{ .eflags = true }, |
| 104676 | .each = .{ .once = &.{ | 106682 | .each = .{ .once = &.{ |
| 104677 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 106683 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 104678 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 106684 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 104679 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | 106685 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 104680 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 106686 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 104681 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | 106687 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 104682 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | 106688 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| 104683 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 106689 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, |
| 104684 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 106690 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| | 106691 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .dst0d, ._ }, |
| | 106692 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 106693 | .{ .@"1:", .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| | 106694 | .{ .@"0:", .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104685 | } }, | 106695 | } }, |
| 104686 | }, .{ | 106696 | }, .{ |
| 104687 | .required_features = .{ .@"64bit", .sse2, null, null }, | 106697 | .required_features = .{ .sse, null, null, null }, |
| 104688 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106698 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 104689 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 106699 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104690 | .patterns = &.{ | 106700 | .patterns = &.{ |
| 104691 | .{ .src = .{ .to_mem, .none, .none } }, | 106701 | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, |
| 104692 | }, | 106702 | }, |
| 104693 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106703 | .call_frame = .{ .alignment = .@"16" }, |
| 104694 | .extra_temps = .{ | 106704 | .extra_temps = .{ |
| 104695 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106705 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 104696 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106706 | .unused, |
| 104697 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106707 | .unused, |
| 104698 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, | 106708 | .unused, |
| 104699 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106709 | .unused, |
| 104700 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 106710 | .unused, |
| 104701 | .unused, | 106711 | .unused, |
| 104702 | .unused, | 106712 | .unused, |
| 104703 | .unused, | 106713 | .unused, |
| 104704 | .unused, | 106714 | .unused, |
| 104705 | .unused, | 106715 | .unused, |
| 104706 | }, | 106716 | }, |
| 104707 | .dst_temps = .{ .mem, .unused }, | 106717 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104708 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106718 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104709 | .each = .{ .once = &.{ | 106719 | .each = .{ .once = &.{ |
| 104710 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 106720 | .{ ._, ._, .movsx, .src0d, .src0b, ._, ._ }, |
| 104711 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 106721 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104712 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | | |
| 104713 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 104714 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | | |
| 104715 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | | |
| 104716 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 104717 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 104718 | } }, | 106722 | } }, |
| 104719 | }, .{ | 106723 | }, .{ |
| 104720 | .required_features = .{ .@"64bit", .sse2, null, null }, | 106724 | .required_features = .{ .sse, null, null, null }, |
| 104721 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106725 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 104722 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 106726 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104723 | .patterns = &.{ | 106727 | .patterns = &.{ |
| 104724 | .{ .src = .{ .to_mem, .none, .none } }, | 106728 | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, |
| 104725 | }, | 106729 | }, |
| 104726 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106730 | .call_frame = .{ .alignment = .@"16" }, |
| 104727 | .extra_temps = .{ | 106731 | .extra_temps = .{ |
| 104728 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106732 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 104729 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106733 | .unused, |
| 104730 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106734 | .unused, |
| 104731 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106735 | .unused, |
| 104732 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106736 | .unused, |
| 104733 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 106737 | .unused, |
| 104734 | .unused, | 106738 | .unused, |
| 104735 | .unused, | 106739 | .unused, |
| 104736 | .unused, | 106740 | .unused, |
| 104737 | .unused, | 106741 | .unused, |
| 104738 | .unused, | 106742 | .unused, |
| 104739 | }, | 106743 | }, |
| 104740 | .dst_temps = .{ .mem, .unused }, | 106744 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104741 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106745 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104742 | .each = .{ .once = &.{ | 106746 | .each = .{ .once = &.{ |
| 104743 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 106747 | .{ ._, ._, .movzx, .src0d, .src0b, ._, ._ }, |
| 104744 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 106748 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104745 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, | | |
| 104746 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 104747 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | | |
| 104748 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | | |
| 104749 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 104750 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 104751 | } }, | 106749 | } }, |
| 104752 | }, .{ | 106750 | }, .{ |
| 104753 | .required_features = .{ .@"64bit", .sse, null, null }, | 106751 | .required_features = .{ .sse, null, null, null }, |
| 104754 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106752 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 104755 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 106753 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104756 | .patterns = &.{ | 106754 | .patterns = &.{ |
| 104757 | .{ .src = .{ .to_mem, .none, .none } }, | 106755 | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, |
| 104758 | }, | 106756 | }, |
| 104759 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106757 | .call_frame = .{ .alignment = .@"16" }, |
| 104760 | .extra_temps = .{ | 106758 | .extra_temps = .{ |
| 104761 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106759 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 104762 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106760 | .unused, |
| 104763 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106761 | .unused, |
| 104764 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, | 106762 | .unused, |
| 104765 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106763 | .unused, |
| 104766 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 106764 | .unused, |
| 104767 | .unused, | 106765 | .unused, |
| 104768 | .unused, | 106766 | .unused, |
| 104769 | .unused, | 106767 | .unused, |
| 104770 | .unused, | 106768 | .unused, |
| 104771 | .unused, | 106769 | .unused, |
| 104772 | }, | 106770 | }, |
| 104773 | .dst_temps = .{ .mem, .unused }, | 106771 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104774 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106772 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104775 | .each = .{ .once = &.{ | 106773 | .each = .{ .once = &.{ |
| 104776 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 106774 | .{ ._, ._, .movsx, .src0d, .src0w, ._, ._ }, |
| 104777 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 106775 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104778 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, | | |
| 104779 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 104780 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | | |
| 104781 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | | |
| 104782 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 104783 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 104784 | } }, | 106776 | } }, |
| 104785 | }, .{ | 106777 | }, .{ |
| 104786 | .required_features = .{ .@"64bit", .sse, null, null }, | 106778 | .required_features = .{ .sse, null, null, null }, |
| 104787 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106779 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 104788 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 106780 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104789 | .patterns = &.{ | 106781 | .patterns = &.{ |
| 104790 | .{ .src = .{ .to_mem, .none, .none } }, | 106782 | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, |
| 104791 | }, | 106783 | }, |
| 104792 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106784 | .call_frame = .{ .alignment = .@"16" }, |
| 104793 | .extra_temps = .{ | 106785 | .extra_temps = .{ |
| 104794 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 106786 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 104795 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106787 | .unused, |
| 104796 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106788 | .unused, |
| 104797 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, | 106789 | .unused, |
| 104798 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 106790 | .unused, |
| 104799 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 106791 | .unused, |
| 104800 | .unused, | 106792 | .unused, |
| 104801 | .unused, | 106793 | .unused, |
| 104802 | .unused, | 106794 | .unused, |
| 104803 | .unused, | 106795 | .unused, |
| 104804 | .unused, | 106796 | .unused, |
| 104805 | }, | 106797 | }, |
| 104806 | .dst_temps = .{ .mem, .unused }, | 106798 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104807 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106799 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104808 | .each = .{ .once = &.{ | 106800 | .each = .{ .once = &.{ |
| 104809 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 106801 | .{ ._, ._, .movzx, .src0d, .src0w, ._, ._ }, |
| 104810 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 106802 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104811 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, | | |
| 104812 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 104813 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, | | |
| 104814 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, | | |
| 104815 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 104816 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 104817 | } }, | 106803 | } }, |
| 104818 | }, .{ | 106804 | }, .{ |
| 104819 | .required_features = .{ .@"64bit", .avx, null, null }, | 106805 | .required_features = .{ .sse, null, null, null }, |
| 104820 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106806 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 104821 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 106807 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104822 | .patterns = &.{ | 106808 | .patterns = &.{ |
| 104823 | .{ .src = .{ .to_mem, .none, .none } }, | 106809 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 104824 | }, | 106810 | }, |
| 104825 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106811 | .call_frame = .{ .alignment = .@"16" }, |
| 104826 | .extra_temps = .{ | 106812 | .extra_temps = .{ |
| 104827 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106813 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 104828 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106814 | .unused, |
| 104829 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106815 | .unused, |
| 104830 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106816 | .unused, |
| 104831 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, | 106817 | .unused, |
| 104832 | .unused, | 106818 | .unused, |
| 104833 | .unused, | 106819 | .unused, |
| 104834 | .unused, | 106820 | .unused, |
| ... | @@ -104836,29 +106822,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104836,29 +106822,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104836 | .unused, | 106822 | .unused, |
| 104837 | .unused, | 106823 | .unused, |
| 104838 | }, | 106824 | }, |
| 104839 | .dst_temps = .{ .mem, .unused }, | 106825 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104840 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106826 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104841 | .each = .{ .once = &.{ | 106827 | .each = .{ .once = &.{ |
| 104842 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 106828 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104843 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 104844 | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, | | |
| 104845 | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | | |
| 104846 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 104847 | } }, | 106829 | } }, |
| 104848 | }, .{ | 106830 | }, .{ |
| 104849 | .required_features = .{ .@"64bit", .avx, null, null }, | 106831 | .required_features = .{ .sse, null, null, null }, |
| 104850 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106832 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 104851 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 106833 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104852 | .patterns = &.{ | 106834 | .patterns = &.{ |
| 104853 | .{ .src = .{ .to_mem, .none, .none } }, | 106835 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 104854 | }, | 106836 | }, |
| 104855 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106837 | .call_frame = .{ .alignment = .@"16" }, |
| 104856 | .extra_temps = .{ | 106838 | .extra_temps = .{ |
| 104857 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106839 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 104858 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106840 | .unused, |
| 104859 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106841 | .unused, |
| 104860 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106842 | .unused, |
| 104861 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, | 106843 | .unused, |
| 104862 | .unused, | 106844 | .unused, |
| 104863 | .unused, | 106845 | .unused, |
| 104864 | .unused, | 106846 | .unused, |
| ... | @@ -104866,29 +106848,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104866,29 +106848,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104866 | .unused, | 106848 | .unused, |
| 104867 | .unused, | 106849 | .unused, |
| 104868 | }, | 106850 | }, |
| 104869 | .dst_temps = .{ .mem, .unused }, | 106851 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104870 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106852 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104871 | .each = .{ .once = &.{ | 106853 | .each = .{ .once = &.{ |
| 104872 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 106854 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104873 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 104874 | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, | | |
| 104875 | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | | |
| 104876 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 104877 | } }, | 106855 | } }, |
| 104878 | }, .{ | 106856 | }, .{ |
| 104879 | .required_features = .{ .@"64bit", .sse2, null, null }, | 106857 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104880 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106858 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 104881 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 106859 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104882 | .patterns = &.{ | 106860 | .patterns = &.{ |
| 104883 | .{ .src = .{ .to_mem, .none, .none } }, | 106861 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 104884 | }, | 106862 | }, |
| 104885 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106863 | .call_frame = .{ .alignment = .@"16" }, |
| 104886 | .extra_temps = .{ | 106864 | .extra_temps = .{ |
| 104887 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106865 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 104888 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106866 | .unused, |
| 104889 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106867 | .unused, |
| 104890 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106868 | .unused, |
| 104891 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, | 106869 | .unused, |
| 104892 | .unused, | 106870 | .unused, |
| 104893 | .unused, | 106871 | .unused, |
| 104894 | .unused, | 106872 | .unused, |
| ... | @@ -104896,29 +106874,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104896,29 +106874,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104896 | .unused, | 106874 | .unused, |
| 104897 | .unused, | 106875 | .unused, |
| 104898 | }, | 106876 | }, |
| 104899 | .dst_temps = .{ .mem, .unused }, | 106877 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104900 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106878 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104901 | .each = .{ .once = &.{ | 106879 | .each = .{ .once = &.{ |
| 104902 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 106880 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104903 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 104904 | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, | | |
| 104905 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | | |
| 104906 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 104907 | } }, | 106881 | } }, |
| 104908 | }, .{ | 106882 | }, .{ |
| 104909 | .required_features = .{ .@"64bit", .sse2, null, null }, | 106883 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104910 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106884 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 104911 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 106885 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104912 | .patterns = &.{ | 106886 | .patterns = &.{ |
| 104913 | .{ .src = .{ .to_mem, .none, .none } }, | 106887 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 104914 | }, | 106888 | }, |
| 104915 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106889 | .call_frame = .{ .alignment = .@"16" }, |
| 104916 | .extra_temps = .{ | 106890 | .extra_temps = .{ |
| 104917 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106891 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 104918 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106892 | .unused, |
| 104919 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106893 | .unused, |
| 104920 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106894 | .unused, |
| 104921 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, | 106895 | .unused, |
| 104922 | .unused, | 106896 | .unused, |
| 104923 | .unused, | 106897 | .unused, |
| 104924 | .unused, | 106898 | .unused, |
| ... | @@ -104926,29 +106900,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104926,29 +106900,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104926 | .unused, | 106900 | .unused, |
| 104927 | .unused, | 106901 | .unused, |
| 104928 | }, | 106902 | }, |
| 104929 | .dst_temps = .{ .mem, .unused }, | 106903 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104930 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106904 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104931 | .each = .{ .once = &.{ | 106905 | .each = .{ .once = &.{ |
| 104932 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 106906 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104933 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 104934 | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, | | |
| 104935 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, | | |
| 104936 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 104937 | } }, | 106907 | } }, |
| 104938 | }, .{ | 106908 | }, .{ |
| 104939 | .required_features = .{ .@"64bit", .sse, null, null }, | 106909 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104940 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106910 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 104941 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 106911 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104942 | .patterns = &.{ | 106912 | .patterns = &.{ |
| 104943 | .{ .src = .{ .to_mem, .none, .none } }, | 106913 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 104944 | }, | 106914 | }, |
| 104945 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106915 | .call_frame = .{ .alignment = .@"16" }, |
| 104946 | .extra_temps = .{ | 106916 | .extra_temps = .{ |
| 104947 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106917 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 104948 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106918 | .unused, |
| 104949 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106919 | .unused, |
| 104950 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106920 | .unused, |
| 104951 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, | 106921 | .unused, |
| 104952 | .unused, | 106922 | .unused, |
| 104953 | .unused, | 106923 | .unused, |
| 104954 | .unused, | 106924 | .unused, |
| ... | @@ -104956,29 +106926,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104956,29 +106926,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104956 | .unused, | 106926 | .unused, |
| 104957 | .unused, | 106927 | .unused, |
| 104958 | }, | 106928 | }, |
| 104959 | .dst_temps = .{ .mem, .unused }, | 106929 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104960 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106930 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104961 | .each = .{ .once = &.{ | 106931 | .each = .{ .once = &.{ |
| 104962 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 106932 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104963 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 104964 | .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ }, | | |
| 104965 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | | |
| 104966 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 104967 | } }, | 106933 | } }, |
| 104968 | }, .{ | 106934 | }, .{ |
| 104969 | .required_features = .{ .@"64bit", .sse, null, null }, | 106935 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104970 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, | 106936 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 104971 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 106937 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104972 | .patterns = &.{ | 106938 | .patterns = &.{ |
| 104973 | .{ .src = .{ .to_mem, .none, .none } }, | 106939 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 104974 | }, | 106940 | }, |
| 104975 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106941 | .call_frame = .{ .alignment = .@"16" }, |
| 104976 | .extra_temps = .{ | 106942 | .extra_temps = .{ |
| 104977 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106943 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 104978 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106944 | .unused, |
| 104979 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106945 | .unused, |
| 104980 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106946 | .unused, |
| 104981 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, | 106947 | .unused, |
| 104982 | .unused, | 106948 | .unused, |
| 104983 | .unused, | 106949 | .unused, |
| 104984 | .unused, | 106950 | .unused, |
| ... | @@ -104986,239 +106952,196 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -104986,239 +106952,196 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104986 | .unused, | 106952 | .unused, |
| 104987 | .unused, | 106953 | .unused, |
| 104988 | }, | 106954 | }, |
| 104989 | .dst_temps = .{ .mem, .unused }, | 106955 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104990 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106956 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104991 | .each = .{ .once = &.{ | 106957 | .each = .{ .once = &.{ |
| 104992 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 106958 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104993 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 104994 | .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ }, | | |
| 104995 | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, | | |
| 104996 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 104997 | } }, | 106959 | } }, |
| 104998 | }, .{ | 106960 | }, .{ |
| 104999 | .required_features = .{ .@"64bit", .avx, null, null }, | 106961 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105000 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106962 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 105001 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 106963 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 105002 | .patterns = &.{ | 106964 | .patterns = &.{ |
| 105003 | .{ .src = .{ .to_mem, .none, .none } }, | 106965 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105004 | }, | 106966 | }, |
| 105005 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106967 | .call_frame = .{ .alignment = .@"16" }, |
| 105006 | .extra_temps = .{ | 106968 | .extra_temps = .{ |
| 105007 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 105008 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105009 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106969 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105010 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106970 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105011 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106971 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 105012 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 106972 | .unused, |
| 105013 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, | 106973 | .unused, |
| | 106974 | .unused, |
| | 106975 | .unused, |
| 105014 | .unused, | 106976 | .unused, |
| 105015 | .unused, | 106977 | .unused, |
| 105016 | .unused, | 106978 | .unused, |
| 105017 | .unused, | 106979 | .unused, |
| 105018 | }, | 106980 | }, |
| 105019 | .dst_temps = .{ .mem, .unused }, | 106981 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 105020 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 106982 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105021 | .each = .{ .once = &.{ | 106983 | .each = .{ .once = &.{ |
| 105022 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 106984 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105023 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 106985 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 105024 | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 106986 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105025 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 105026 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 105027 | .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, | | |
| 105028 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 105029 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 105030 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 105031 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 105032 | } }, | 106987 | } }, |
| 105033 | }, .{ | 106988 | }, .{ |
| 105034 | .required_features = .{ .@"64bit", .avx, null, null }, | 106989 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105035 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 106990 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 105036 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 106991 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 105037 | .patterns = &.{ | 106992 | .patterns = &.{ |
| 105038 | .{ .src = .{ .to_mem, .none, .none } }, | 106993 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105039 | }, | 106994 | }, |
| 105040 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 106995 | .call_frame = .{ .alignment = .@"16" }, |
| 105041 | .extra_temps = .{ | 106996 | .extra_temps = .{ |
| 105042 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 105043 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105044 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 106997 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105045 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 106998 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105046 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 106999 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 105047 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 107000 | .unused, |
| 105048 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, | 107001 | .unused, |
| | 107002 | .unused, |
| | 107003 | .unused, |
| 105049 | .unused, | 107004 | .unused, |
| 105050 | .unused, | 107005 | .unused, |
| 105051 | .unused, | 107006 | .unused, |
| 105052 | .unused, | 107007 | .unused, |
| 105053 | }, | 107008 | }, |
| 105054 | .dst_temps = .{ .mem, .unused }, | 107009 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 105055 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107010 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105056 | .each = .{ .once = &.{ | 107011 | .each = .{ .once = &.{ |
| 105057 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 107012 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105058 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 107013 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 105059 | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 107014 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105060 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 105061 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 105062 | .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, | | |
| 105063 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 105064 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 105065 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 105066 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 105067 | } }, | 107015 | } }, |
| 105068 | }, .{ | 107016 | }, .{ |
| 105069 | .required_features = .{ .@"64bit", .sse2, null, null }, | 107017 | .required_features = .{ .f16c, null, null, null }, |
| 105070 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 107018 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 105071 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 107019 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105072 | .patterns = &.{ | 107020 | .patterns = &.{ |
| 105073 | .{ .src = .{ .to_mem, .none, .none } }, | 107021 | .{ .src = .{ .mem, .none, .none } }, |
| | 107022 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105074 | }, | 107023 | }, |
| 105075 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 107024 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105076 | .extra_temps = .{ | 107025 | .each = .{ .once = &.{ |
| 105077 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107026 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 105078 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 107027 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 105079 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 107028 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 105080 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 107029 | } }, |
| 105081 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 107030 | }, .{ |
| 105082 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 107031 | .required_features = .{ .f16c, .avx2, null, null }, |
| 105083 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, | 107032 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 105084 | .unused, | 107033 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105085 | .unused, | 107034 | .patterns = &.{ |
| 105086 | .unused, | 107035 | .{ .src = .{ .mem, .none, .none } }, |
| 105087 | .unused, | 107036 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105088 | }, | 107037 | }, |
| 105089 | .dst_temps = .{ .mem, .unused }, | 107038 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105090 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 105091 | .each = .{ .once = &.{ | 107039 | .each = .{ .once = &.{ |
| 105092 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 107040 | .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, |
| 105093 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 107041 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 105094 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 107042 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 105095 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 105096 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 105097 | .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, | | |
| 105098 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 105099 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 105100 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 105101 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 105102 | } }, | 107043 | } }, |
| 105103 | }, .{ | 107044 | }, .{ |
| 105104 | .required_features = .{ .@"64bit", .sse2, null, null }, | 107045 | .required_features = .{ .f16c, null, null, null }, |
| 105105 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 107046 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 105106 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 107047 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105107 | .patterns = &.{ | 107048 | .patterns = &.{ |
| 105108 | .{ .src = .{ .to_mem, .none, .none } }, | 107049 | .{ .src = .{ .mem, .none, .none } }, |
| | 107050 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105109 | }, | 107051 | }, |
| 105110 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | 107052 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105111 | .extra_temps = .{ | 107053 | .each = .{ .once = &.{ |
| 105112 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107054 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 105113 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 107055 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 105114 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 107056 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 105115 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 107057 | } }, |
| 105116 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 107058 | }, .{ |
| 105117 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 107059 | .required_features = .{ .f16c, .avx2, null, null }, |
| 105118 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, | 107060 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 105119 | .unused, | 107061 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105120 | .unused, | 107062 | .patterns = &.{ |
| 105121 | .unused, | 107063 | .{ .src = .{ .mem, .none, .none } }, |
| 105122 | .unused, | 107064 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105123 | }, | 107065 | }, |
| 105124 | .dst_temps = .{ .mem, .unused }, | 107066 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105125 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 105126 | .each = .{ .once = &.{ | 107067 | .each = .{ .once = &.{ |
| 105127 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 107068 | .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, |
| 105128 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 107069 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 105129 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 107070 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 105130 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | | |
| 105131 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 105132 | .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, | | |
| 105133 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 105134 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 105135 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 105136 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 105137 | } }, | 107071 | } }, |
| 105138 | }, .{ | 107072 | }, .{ |
| 105139 | .required_features = .{ .@"64bit", .sse, null, null }, | 107073 | .required_features = .{ .f16c, .avx2, null, null }, |
| 105140 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 107074 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 105141 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 107075 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105142 | .patterns = &.{ | 107076 | .patterns = &.{ |
| 105143 | .{ .src = .{ .to_mem, .none, .none } }, | 107077 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105144 | }, | 107078 | }, |
| 105145 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 105146 | .extra_temps = .{ | 107079 | .extra_temps = .{ |
| 105147 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107080 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105148 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 107081 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 105149 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 107082 | .unused, |
| 105150 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 107083 | .unused, |
| 105151 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 107084 | .unused, |
| 105152 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 107085 | .unused, |
| 105153 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, | 107086 | .unused, |
| 105154 | .unused, | 107087 | .unused, |
| 105155 | .unused, | 107088 | .unused, |
| 105156 | .unused, | 107089 | .unused, |
| 105157 | .unused, | 107090 | .unused, |
| 105158 | }, | 107091 | }, |
| 105159 | .dst_temps = .{ .mem, .unused }, | 107092 | .dst_temps = .{ .mem, .unused }, |
| 105160 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107093 | .clobbers = .{ .eflags = true }, |
| 105161 | .each = .{ .once = &.{ | 107094 | .each = .{ .once = &.{ |
| 105162 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 107095 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105163 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 107096 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105164 | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 107097 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 105165 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 107098 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 105166 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 107099 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105167 | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, | | |
| 105168 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 105169 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 105170 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 105171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107100 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105172 | } }, | 107101 | } }, |
| 105173 | }, .{ | 107102 | }, .{ |
| 105174 | .required_features = .{ .@"64bit", .sse, null, null }, | 107103 | .required_features = .{ .f16c, null, null, null }, |
| 105175 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, | 107104 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 105176 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 107105 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105177 | .patterns = &.{ | 107106 | .patterns = &.{ |
| 105178 | .{ .src = .{ .to_mem, .none, .none } }, | 107107 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105179 | }, | 107108 | }, |
| 105180 | .call_frame = .{ .size = 16, .alignment = .@"16" }, | | |
| 105181 | .extra_temps = .{ | 107109 | .extra_temps = .{ |
| 105182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107110 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105183 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 107111 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 105184 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 107112 | .unused, |
| 105185 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 107113 | .unused, |
| 105186 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, | 107114 | .unused, |
| 105187 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, | 107115 | .unused, |
| 105188 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, | 107116 | .unused, |
| 105189 | .unused, | 107117 | .unused, |
| 105190 | .unused, | 107118 | .unused, |
| 105191 | .unused, | 107119 | .unused, |
| 105192 | .unused, | 107120 | .unused, |
| 105193 | }, | 107121 | }, |
| 105194 | .dst_temps = .{ .mem, .unused }, | 107122 | .dst_temps = .{ .mem, .unused }, |
| 105195 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107123 | .clobbers = .{ .eflags = true }, |
| 105196 | .each = .{ .once = &.{ | 107124 | .each = .{ .once = &.{ |
| 105197 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 107125 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105198 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 107126 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105199 | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 107127 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 105200 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 107128 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 105201 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 107129 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105202 | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, | | |
| 105203 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, | | |
| 105204 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 105205 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 105206 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107130 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105207 | } }, | 107131 | } }, |
| 105208 | }, .{ | 107132 | }, .{ |
| 105209 | .required_features = .{ .avx, .slow_incdec, null, null }, | 107133 | .required_features = .{ .f16c, .avx2, null, null }, |
| 105210 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107134 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 105211 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 107135 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105212 | .patterns = &.{ | 107136 | .patterns = &.{ |
| 105213 | .{ .src = .{ .to_mem, .none, .none } }, | 107137 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105214 | }, | 107138 | }, |
| 105215 | .call_frame = .{ .alignment = .@"16" }, | | |
| 105216 | .extra_temps = .{ | 107139 | .extra_temps = .{ |
| 105217 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105218 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107140 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105219 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107141 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 105220 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107142 | .unused, |
| 105221 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107143 | .unused, |
| | 107144 | .unused, |
| 105222 | .unused, | 107145 | .unused, |
| 105223 | .unused, | 107146 | .unused, |
| 105224 | .unused, | 107147 | .unused, |
| ... | @@ -105227,31 +107150,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105227,31 +107150,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105227 | .unused, | 107150 | .unused, |
| 105228 | }, | 107151 | }, |
| 105229 | .dst_temps = .{ .mem, .unused }, | 107152 | .dst_temps = .{ .mem, .unused }, |
| 105230 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107153 | .clobbers = .{ .eflags = true }, |
| 105231 | .each = .{ .once = &.{ | 107154 | .each = .{ .once = &.{ |
| 105232 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 107155 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105233 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107156 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105234 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 107157 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 105235 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 107158 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 105236 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 107159 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105237 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 105238 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, | | |
| 105239 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107160 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105240 | } }, | 107161 | } }, |
| 105241 | }, .{ | 107162 | }, .{ |
| 105242 | .required_features = .{ .avx, null, null, null }, | 107163 | .required_features = .{ .f16c, null, null, null }, |
| 105243 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107164 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 105244 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 107165 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105245 | .patterns = &.{ | 107166 | .patterns = &.{ |
| 105246 | .{ .src = .{ .to_mem, .none, .none } }, | 107167 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105247 | }, | 107168 | }, |
| 105248 | .call_frame = .{ .alignment = .@"16" }, | | |
| 105249 | .extra_temps = .{ | 107169 | .extra_temps = .{ |
| 105250 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105251 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107170 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105252 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107171 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 105253 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107172 | .unused, |
| 105254 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107173 | .unused, |
| | 107174 | .unused, |
| 105255 | .unused, | 107175 | .unused, |
| 105256 | .unused, | 107176 | .unused, |
| 105257 | .unused, | 107177 | .unused, |
| ... | @@ -105260,31 +107180,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105260,31 +107180,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105260 | .unused, | 107180 | .unused, |
| 105261 | }, | 107181 | }, |
| 105262 | .dst_temps = .{ .mem, .unused }, | 107182 | .dst_temps = .{ .mem, .unused }, |
| 105263 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107183 | .clobbers = .{ .eflags = true }, |
| 105264 | .each = .{ .once = &.{ | 107184 | .each = .{ .once = &.{ |
| 105265 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 107185 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105266 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107186 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105267 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 107187 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 105268 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 107188 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 105269 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 107189 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105270 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | 107190 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105271 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | | |
| 105272 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 105273 | } }, | 107191 | } }, |
| 105274 | }, .{ | 107192 | }, .{ |
| 105275 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 107193 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 105276 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107194 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105277 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 107195 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105278 | .patterns = &.{ | 107196 | .patterns = &.{ |
| 105279 | .{ .src = .{ .to_mem, .none, .none } }, | 107197 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105280 | }, | 107198 | }, |
| 105281 | .call_frame = .{ .alignment = .@"16" }, | 107199 | .call_frame = .{ .alignment = .@"16" }, |
| 105282 | .extra_temps = .{ | 107200 | .extra_temps = .{ |
| 105283 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105284 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107201 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105285 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107202 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105286 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107203 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105287 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107204 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 107205 | .unused, |
| 105288 | .unused, | 107206 | .unused, |
| 105289 | .unused, | 107207 | .unused, |
| 105290 | .unused, | 107208 | .unused, |
| ... | @@ -105295,29 +107213,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105295,29 +107213,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105295 | .dst_temps = .{ .mem, .unused }, | 107213 | .dst_temps = .{ .mem, .unused }, |
| 105296 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107214 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105297 | .each = .{ .once = &.{ | 107215 | .each = .{ .once = &.{ |
| 105298 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 107216 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105299 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107217 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105300 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 107218 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105301 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 107219 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105302 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 107220 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105303 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 105304 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, | | |
| 105305 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107221 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105306 | } }, | 107222 | } }, |
| 105307 | }, .{ | 107223 | }, .{ |
| 105308 | .required_features = .{ .sse2, null, null, null }, | 107224 | .required_features = .{ .avx, null, null, null }, |
| 105309 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107225 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105310 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 107226 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105311 | .patterns = &.{ | 107227 | .patterns = &.{ |
| 105312 | .{ .src = .{ .to_mem, .none, .none } }, | 107228 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105313 | }, | 107229 | }, |
| 105314 | .call_frame = .{ .alignment = .@"16" }, | 107230 | .call_frame = .{ .alignment = .@"16" }, |
| 105315 | .extra_temps = .{ | 107231 | .extra_temps = .{ |
| 105316 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105317 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107232 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105318 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107233 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105319 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107234 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105320 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107235 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 107236 | .unused, |
| 105321 | .unused, | 107237 | .unused, |
| 105322 | .unused, | 107238 | .unused, |
| 105323 | .unused, | 107239 | .unused, |
| ... | @@ -105328,29 +107244,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105328,29 +107244,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105328 | .dst_temps = .{ .mem, .unused }, | 107244 | .dst_temps = .{ .mem, .unused }, |
| 105329 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107245 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105330 | .each = .{ .once = &.{ | 107246 | .each = .{ .once = &.{ |
| 105331 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 107247 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105332 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107248 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105333 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, | 107249 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105334 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 107250 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105335 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 107251 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 105336 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 105337 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | | |
| 105338 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 107252 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105339 | } }, | 107253 | } }, |
| 105340 | }, .{ | 107254 | }, .{ |
| 105341 | .required_features = .{ .sse, .slow_incdec, null, null }, | 107255 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| 105342 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107256 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105343 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 107257 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105344 | .patterns = &.{ | 107258 | .patterns = &.{ |
| 105345 | .{ .src = .{ .to_mem, .none, .none } }, | 107259 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105346 | }, | 107260 | }, |
| 105347 | .call_frame = .{ .alignment = .@"16" }, | 107261 | .call_frame = .{ .alignment = .@"16" }, |
| 105348 | .extra_temps = .{ | 107262 | .extra_temps = .{ |
| 105349 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105350 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107263 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105351 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107264 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105352 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107265 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105353 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107266 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 107267 | .unused, |
| 105354 | .unused, | 107268 | .unused, |
| 105355 | .unused, | 107269 | .unused, |
| 105356 | .unused, | 107270 | .unused, |
| ... | @@ -105361,29 +107275,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105361,29 +107275,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105361 | .dst_temps = .{ .mem, .unused }, | 107275 | .dst_temps = .{ .mem, .unused }, |
| 105362 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107276 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105363 | .each = .{ .once = &.{ | 107277 | .each = .{ .once = &.{ |
| 105364 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 107278 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105365 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107279 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105366 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, | 107280 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105367 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 107281 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105368 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 107282 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105369 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 105370 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, | | |
| 105371 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107283 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105372 | } }, | 107284 | } }, |
| 105373 | }, .{ | 107285 | }, .{ |
| 105374 | .required_features = .{ .sse, null, null, null }, | 107286 | .required_features = .{ .sse4_1, null, null, null }, |
| 105375 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107287 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105376 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, | 107288 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105377 | .patterns = &.{ | 107289 | .patterns = &.{ |
| 105378 | .{ .src = .{ .to_mem, .none, .none } }, | 107290 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105379 | }, | 107291 | }, |
| 105380 | .call_frame = .{ .alignment = .@"16" }, | 107292 | .call_frame = .{ .alignment = .@"16" }, |
| 105381 | .extra_temps = .{ | 107293 | .extra_temps = .{ |
| 105382 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 105383 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107294 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105384 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107295 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105385 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107296 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105386 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107297 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 107298 | .unused, |
| 105387 | .unused, | 107299 | .unused, |
| 105388 | .unused, | 107300 | .unused, |
| 105389 | .unused, | 107301 | .unused, |
| ... | @@ -105394,28 +107306,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105394,28 +107306,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105394 | .dst_temps = .{ .mem, .unused }, | 107306 | .dst_temps = .{ .mem, .unused }, |
| 105395 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107307 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105396 | .each = .{ .once = &.{ | 107308 | .each = .{ .once = &.{ |
| 105397 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 107309 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105398 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107310 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105399 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, | 107311 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105400 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 107312 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105401 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, | 107313 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 105402 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, | | |
| 105403 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, | | |
| 105404 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 107314 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105405 | } }, | 107315 | } }, |
| 105406 | }, .{ | 107316 | }, .{ |
| 105407 | .required_features = .{ .avx, null, null, null }, | 107317 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 105408 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107318 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105409 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 107319 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105410 | .patterns = &.{ | 107320 | .patterns = &.{ |
| 105411 | .{ .src = .{ .to_mem, .none, .none } }, | 107321 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105412 | }, | 107322 | }, |
| 105413 | .call_frame = .{ .alignment = .@"16" }, | 107323 | .call_frame = .{ .alignment = .@"16" }, |
| 105414 | .extra_temps = .{ | 107324 | .extra_temps = .{ |
| 105415 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107325 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105416 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107326 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105417 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107327 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105418 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107328 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105419 | .unused, | 107329 | .unused, |
| 105420 | .unused, | 107330 | .unused, |
| 105421 | .unused, | 107331 | .unused, |
| ... | @@ -105427,26 +107337,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105427,26 +107337,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105427 | .dst_temps = .{ .mem, .unused }, | 107337 | .dst_temps = .{ .mem, .unused }, |
| 105428 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107338 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105429 | .each = .{ .once = &.{ | 107339 | .each = .{ .once = &.{ |
| 105430 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107340 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105431 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 107341 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105432 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107342 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105433 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 107343 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 105434 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 107344 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 107345 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105435 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107346 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105436 | } }, | 107347 | } }, |
| 105437 | }, .{ | 107348 | }, .{ |
| 105438 | .required_features = .{ .sse2, null, null, null }, | 107349 | .required_features = .{ .sse2, null, null, null }, |
| 105439 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107350 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105440 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 107351 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105441 | .patterns = &.{ | 107352 | .patterns = &.{ |
| 105442 | .{ .src = .{ .to_mem, .none, .none } }, | 107353 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105443 | }, | 107354 | }, |
| 105444 | .call_frame = .{ .alignment = .@"16" }, | 107355 | .call_frame = .{ .alignment = .@"16" }, |
| 105445 | .extra_temps = .{ | 107356 | .extra_temps = .{ |
| 105446 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107357 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105447 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107358 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105448 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107359 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105449 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107360 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105450 | .unused, | 107361 | .unused, |
| 105451 | .unused, | 107362 | .unused, |
| 105452 | .unused, | 107363 | .unused, |
| ... | @@ -105458,27 +107369,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105458,27 +107369,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105458 | .dst_temps = .{ .mem, .unused }, | 107369 | .dst_temps = .{ .mem, .unused }, |
| 105459 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107370 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105460 | .each = .{ .once = &.{ | 107371 | .each = .{ .once = &.{ |
| 105461 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107372 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105462 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 107373 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105463 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107374 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105464 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 107375 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 105465 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 107376 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 105466 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107377 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 107378 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105467 | } }, | 107379 | } }, |
| 105468 | }, .{ | 107380 | }, .{ |
| 105469 | .required_features = .{ .sse, null, null, null }, | 107381 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 105470 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107382 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105471 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, | 107383 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105472 | .patterns = &.{ | 107384 | .patterns = &.{ |
| 105473 | .{ .src = .{ .to_mem, .none, .none } }, | 107385 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105474 | }, | 107386 | }, |
| 105475 | .call_frame = .{ .alignment = .@"16" }, | 107387 | .call_frame = .{ .alignment = .@"16" }, |
| 105476 | .extra_temps = .{ | 107388 | .extra_temps = .{ |
| 105477 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107389 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105478 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107390 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105479 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107391 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105480 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107392 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105481 | .unused, | 107393 | .{ .type = .f32, .kind = .mem }, |
| 105482 | .unused, | 107394 | .unused, |
| 105483 | .unused, | 107395 | .unused, |
| 105484 | .unused, | 107396 | .unused, |
| ... | @@ -105489,27 +107401,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105489,27 +107401,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105489 | .dst_temps = .{ .mem, .unused }, | 107401 | .dst_temps = .{ .mem, .unused }, |
| 105490 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107402 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105491 | .each = .{ .once = &.{ | 107403 | .each = .{ .once = &.{ |
| 105492 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107404 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105493 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 107405 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105494 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107406 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105495 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, | 107407 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 105496 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 107408 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| | 107409 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 107410 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105497 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107411 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105498 | } }, | 107412 | } }, |
| 105499 | }, .{ | 107413 | }, .{ |
| 105500 | .required_features = .{ .sse, null, null, null }, | 107414 | .required_features = .{ .sse, null, null, null }, |
| 105501 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 107415 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105502 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, | 107416 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105503 | .patterns = &.{ | 107417 | .patterns = &.{ |
| 105504 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 107418 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105505 | }, | 107419 | }, |
| 105506 | .call_frame = .{ .alignment = .@"16" }, | 107420 | .call_frame = .{ .alignment = .@"16" }, |
| 105507 | .extra_temps = .{ | 107421 | .extra_temps = .{ |
| 105508 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107422 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105509 | .unused, | 107423 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105510 | .unused, | 107424 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105511 | .unused, | 107425 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105512 | .unused, | 107426 | .{ .type = .f32, .kind = .mem }, |
| 105513 | .unused, | 107427 | .unused, |
| 105514 | .unused, | 107428 | .unused, |
| 105515 | .unused, | 107429 | .unused, |
| ... | @@ -105517,24 +107431,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105517,24 +107431,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105517 | .unused, | 107431 | .unused, |
| 105518 | .unused, | 107432 | .unused, |
| 105519 | }, | 107433 | }, |
| 105520 | .dst_temps = .{ .{ .reg = .eax }, .unused }, | 107434 | .dst_temps = .{ .mem, .unused }, |
| 105521 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107435 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105522 | .each = .{ .once = &.{ | 107436 | .each = .{ .once = &.{ |
| 105523 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 107437 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 107438 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 107439 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 107440 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| | 107441 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| | 107442 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 107443 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 107444 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105524 | } }, | 107445 | } }, |
| 105525 | }, .{ | 107446 | }, .{ |
| 105526 | .required_features = .{ .sse, null, null, null }, | 107447 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 105527 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 107448 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105528 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, | 107449 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105529 | .patterns = &.{ | 107450 | .patterns = &.{ |
| 105530 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 107451 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105531 | }, | 107452 | }, |
| 105532 | .call_frame = .{ .alignment = .@"16" }, | 107453 | .call_frame = .{ .alignment = .@"16" }, |
| 105533 | .extra_temps = .{ | 107454 | .extra_temps = .{ |
| 105534 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, | 107455 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105535 | .unused, | 107456 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105536 | .unused, | 107457 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105537 | .unused, | 107458 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105538 | .unused, | 107459 | .unused, |
| 105539 | .unused, | 107460 | .unused, |
| 105540 | .unused, | 107461 | .unused, |
| ... | @@ -105543,24 +107464,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105543,24 +107464,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105543 | .unused, | 107464 | .unused, |
| 105544 | .unused, | 107465 | .unused, |
| 105545 | }, | 107466 | }, |
| 105546 | .dst_temps = .{ .{ .reg = .eax }, .unused }, | 107467 | .dst_temps = .{ .mem, .unused }, |
| 105547 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107468 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105548 | .each = .{ .once = &.{ | 107469 | .each = .{ .once = &.{ |
| 105549 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 107470 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 107471 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 107472 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 107473 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| | 107474 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 107475 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105550 | } }, | 107476 | } }, |
| 105551 | }, .{ | 107477 | }, .{ |
| 105552 | .required_features = .{ .avx, null, null, null }, | 107478 | .required_features = .{ .avx, null, null, null }, |
| 105553 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107479 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105554 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 107480 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105555 | .patterns = &.{ | 107481 | .patterns = &.{ |
| 105556 | .{ .src = .{ .to_mem, .none, .none } }, | 107482 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105557 | }, | 107483 | }, |
| 105558 | .call_frame = .{ .alignment = .@"16" }, | 107484 | .call_frame = .{ .alignment = .@"16" }, |
| 105559 | .extra_temps = .{ | 107485 | .extra_temps = .{ |
| 105560 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107486 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105561 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107487 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105562 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107488 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105563 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107489 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105564 | .unused, | 107490 | .unused, |
| 105565 | .unused, | 107491 | .unused, |
| 105566 | .unused, | 107492 | .unused, |
| ... | @@ -105572,26 +107498,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105572,26 +107498,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105572 | .dst_temps = .{ .mem, .unused }, | 107498 | .dst_temps = .{ .mem, .unused }, |
| 105573 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107499 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105574 | .each = .{ .once = &.{ | 107500 | .each = .{ .once = &.{ |
| 105575 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107501 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105576 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 107502 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105577 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107503 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105578 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 107504 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105579 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 107505 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 105580 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107506 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105581 | } }, | 107507 | } }, |
| 105582 | }, .{ | 107508 | }, .{ |
| 105583 | .required_features = .{ .avx, null, null, null }, | 107509 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| 105584 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107510 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105585 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 107511 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105586 | .patterns = &.{ | 107512 | .patterns = &.{ |
| 105587 | .{ .src = .{ .to_mem, .none, .none } }, | 107513 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105588 | }, | 107514 | }, |
| 105589 | .call_frame = .{ .alignment = .@"16" }, | 107515 | .call_frame = .{ .alignment = .@"16" }, |
| 105590 | .extra_temps = .{ | 107516 | .extra_temps = .{ |
| 105591 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107517 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105592 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107518 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105593 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, | 107519 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105594 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 107520 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105595 | .unused, | 107521 | .unused, |
| 105596 | .unused, | 107522 | .unused, |
| 105597 | .unused, | 107523 | .unused, |
| ... | @@ -105603,26 +107529,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105603,26 +107529,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105603 | .dst_temps = .{ .mem, .unused }, | 107529 | .dst_temps = .{ .mem, .unused }, |
| 105604 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107530 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105605 | .each = .{ .once = &.{ | 107531 | .each = .{ .once = &.{ |
| 105606 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107532 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105607 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 107533 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105608 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107534 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105609 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 107535 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105610 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 107536 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105611 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107537 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105612 | } }, | 107538 | } }, |
| 105613 | }, .{ | 107539 | }, .{ |
| 105614 | .required_features = .{ .sse2, null, null, null }, | 107540 | .required_features = .{ .sse4_1, null, null, null }, |
| 105615 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107541 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105616 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 107542 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105617 | .patterns = &.{ | 107543 | .patterns = &.{ |
| 105618 | .{ .src = .{ .to_mem, .none, .none } }, | 107544 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105619 | }, | 107545 | }, |
| 105620 | .call_frame = .{ .alignment = .@"16" }, | 107546 | .call_frame = .{ .alignment = .@"16" }, |
| 105621 | .extra_temps = .{ | 107547 | .extra_temps = .{ |
| 105622 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107548 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105623 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107549 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105624 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107550 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105625 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107551 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105626 | .unused, | 107552 | .unused, |
| 105627 | .unused, | 107553 | .unused, |
| 105628 | .unused, | 107554 | .unused, |
| ... | @@ -105634,26 +107560,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105634,26 +107560,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105634 | .dst_temps = .{ .mem, .unused }, | 107560 | .dst_temps = .{ .mem, .unused }, |
| 105635 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107561 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105636 | .each = .{ .once = &.{ | 107562 | .each = .{ .once = &.{ |
| 105637 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107563 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105638 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 107564 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105639 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107565 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105640 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 107566 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105641 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 107567 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 105642 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107568 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105643 | } }, | 107569 | } }, |
| 105644 | }, .{ | 107570 | }, .{ |
| 105645 | .required_features = .{ .sse2, null, null, null }, | 107571 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 105646 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107572 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105647 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 107573 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105648 | .patterns = &.{ | 107574 | .patterns = &.{ |
| 105649 | .{ .src = .{ .to_mem, .none, .none } }, | 107575 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105650 | }, | 107576 | }, |
| 105651 | .call_frame = .{ .alignment = .@"16" }, | 107577 | .call_frame = .{ .alignment = .@"16" }, |
| 105652 | .extra_temps = .{ | 107578 | .extra_temps = .{ |
| 105653 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107579 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105654 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107580 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105655 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, | 107581 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105656 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 107582 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105657 | .unused, | 107583 | .unused, |
| 105658 | .unused, | 107584 | .unused, |
| 105659 | .unused, | 107585 | .unused, |
| ... | @@ -105665,26 +107591,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105665,26 +107591,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105665 | .dst_temps = .{ .mem, .unused }, | 107591 | .dst_temps = .{ .mem, .unused }, |
| 105666 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107592 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105667 | .each = .{ .once = &.{ | 107593 | .each = .{ .once = &.{ |
| 105668 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107594 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105669 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 107595 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105670 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107596 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105671 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 107597 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 105672 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 107598 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 107599 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105673 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107600 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105674 | } }, | 107601 | } }, |
| 105675 | }, .{ | 107602 | }, .{ |
| 105676 | .required_features = .{ .sse, null, null, null }, | 107603 | .required_features = .{ .sse2, null, null, null }, |
| 105677 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107604 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105678 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 107605 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105679 | .patterns = &.{ | 107606 | .patterns = &.{ |
| 105680 | .{ .src = .{ .to_mem, .none, .none } }, | 107607 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105681 | }, | 107608 | }, |
| 105682 | .call_frame = .{ .alignment = .@"16" }, | 107609 | .call_frame = .{ .alignment = .@"16" }, |
| 105683 | .extra_temps = .{ | 107610 | .extra_temps = .{ |
| 105684 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107611 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105685 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107612 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105686 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, | 107613 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105687 | .{ .type = .i32, .kind = .{ .reg = .eax } }, | 107614 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105688 | .unused, | 107615 | .unused, |
| 105689 | .unused, | 107616 | .unused, |
| 105690 | .unused, | 107617 | .unused, |
| ... | @@ -105696,27 +107623,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105696,27 +107623,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105696 | .dst_temps = .{ .mem, .unused }, | 107623 | .dst_temps = .{ .mem, .unused }, |
| 105697 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107624 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105698 | .each = .{ .once = &.{ | 107625 | .each = .{ .once = &.{ |
| 105699 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107626 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105700 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 107627 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105701 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107628 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105702 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 107629 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 105703 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 107630 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 105704 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107631 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 107632 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105705 | } }, | 107633 | } }, |
| 105706 | }, .{ | 107634 | }, .{ |
| 105707 | .required_features = .{ .sse, null, null, null }, | 107635 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 105708 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107636 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105709 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 107637 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105710 | .patterns = &.{ | 107638 | .patterns = &.{ |
| 105711 | .{ .src = .{ .to_mem, .none, .none } }, | 107639 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105712 | }, | 107640 | }, |
| 105713 | .call_frame = .{ .alignment = .@"16" }, | 107641 | .call_frame = .{ .alignment = .@"16" }, |
| 105714 | .extra_temps = .{ | 107642 | .extra_temps = .{ |
| 105715 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107643 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105716 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107644 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105717 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, | 107645 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105718 | .{ .type = .u32, .kind = .{ .reg = .eax } }, | 107646 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105719 | .unused, | 107647 | .{ .type = .f32, .kind = .mem }, |
| 105720 | .unused, | 107648 | .unused, |
| 105721 | .unused, | 107649 | .unused, |
| 105722 | .unused, | 107650 | .unused, |
| ... | @@ -105727,27 +107655,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105727,27 +107655,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105727 | .dst_temps = .{ .mem, .unused }, | 107655 | .dst_temps = .{ .mem, .unused }, |
| 105728 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107656 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105729 | .each = .{ .once = &.{ | 107657 | .each = .{ .once = &.{ |
| 105730 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107658 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105731 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 107659 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105732 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107660 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105733 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, | 107661 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 105734 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 107662 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| | 107663 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 107664 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105735 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107665 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105736 | } }, | 107666 | } }, |
| 105737 | }, .{ | 107667 | }, .{ |
| 105738 | .required_features = .{ .@"64bit", .sse, null, null }, | 107668 | .required_features = .{ .sse, null, null, null }, |
| 105739 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 107669 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 105740 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, | 107670 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105741 | .patterns = &.{ | 107671 | .patterns = &.{ |
| 105742 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 107672 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105743 | }, | 107673 | }, |
| 105744 | .call_frame = .{ .alignment = .@"16" }, | 107674 | .call_frame = .{ .alignment = .@"16" }, |
| 105745 | .extra_temps = .{ | 107675 | .extra_temps = .{ |
| 105746 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, | 107676 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105747 | .unused, | 107677 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 105748 | .unused, | 107678 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 105749 | .unused, | 107679 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105750 | .unused, | 107680 | .{ .type = .f32, .kind = .mem }, |
| 105751 | .unused, | 107681 | .unused, |
| 105752 | .unused, | 107682 | .unused, |
| 105753 | .unused, | 107683 | .unused, |
| ... | @@ -105755,50 +107685,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105755,50 +107685,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105755 | .unused, | 107685 | .unused, |
| 105756 | .unused, | 107686 | .unused, |
| 105757 | }, | 107687 | }, |
| 105758 | .dst_temps = .{ .{ .reg = .rax }, .unused }, | 107688 | .dst_temps = .{ .mem, .unused }, |
| 105759 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107689 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105760 | .each = .{ .once = &.{ | 107690 | .each = .{ .once = &.{ |
| 105761 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 107691 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 107692 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 107693 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 107694 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| | 107695 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| | 107696 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 107697 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 107698 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105762 | } }, | 107699 | } }, |
| 105763 | }, .{ | 107700 | }, .{ |
| 105764 | .required_features = .{ .@"64bit", .sse, null, null }, | 107701 | .required_features = .{ .f16c, null, null, null }, |
| 105765 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 107702 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 105766 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, | 107703 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105767 | .patterns = &.{ | 107704 | .patterns = &.{ |
| 105768 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 107705 | .{ .src = .{ .mem, .none, .none } }, |
| | 107706 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105769 | }, | 107707 | }, |
| 105770 | .call_frame = .{ .alignment = .@"16" }, | 107708 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105771 | .extra_temps = .{ | 107709 | .each = .{ .once = &.{ |
| 105772 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, | 107710 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 105773 | .unused, | 107711 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 105774 | .unused, | 107712 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 105775 | .unused, | 107713 | } }, |
| 105776 | .unused, | 107714 | }, .{ |
| 105777 | .unused, | 107715 | .required_features = .{ .f16c, .avx2, null, null }, |
| 105778 | .unused, | 107716 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 105779 | .unused, | 107717 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105780 | .unused, | 107718 | .patterns = &.{ |
| 105781 | .unused, | 107719 | .{ .src = .{ .mem, .none, .none } }, |
| 105782 | .unused, | 107720 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105783 | }, | 107721 | }, |
| 105784 | .dst_temps = .{ .{ .reg = .rax }, .unused }, | 107722 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105785 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 105786 | .each = .{ .once = &.{ | 107723 | .each = .{ .once = &.{ |
| 105787 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 107724 | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, |
| | 107725 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| | 107726 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 105788 | } }, | 107727 | } }, |
| 105789 | }, .{ | 107728 | }, .{ |
| 105790 | .required_features = .{ .@"64bit", .avx, null, null }, | 107729 | .required_features = .{ .f16c, null, null, null }, |
| 105791 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107730 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 105792 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 107731 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| | 107732 | .patterns = &.{ |
| | 107733 | .{ .src = .{ .mem, .none, .none } }, |
| | 107734 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 107735 | }, |
| | 107736 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 107737 | .each = .{ .once = &.{ |
| | 107738 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| | 107739 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| | 107740 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 107741 | } }, |
| | 107742 | }, .{ |
| | 107743 | .required_features = .{ .f16c, .avx2, null, null }, |
| | 107744 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 107745 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| | 107746 | .patterns = &.{ |
| | 107747 | .{ .src = .{ .mem, .none, .none } }, |
| | 107748 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 107749 | }, |
| | 107750 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 107751 | .each = .{ .once = &.{ |
| | 107752 | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, |
| | 107753 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| | 107754 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| | 107755 | } }, |
| | 107756 | }, .{ |
| | 107757 | .required_features = .{ .f16c, .avx2, null, null }, |
| | 107758 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 107759 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105793 | .patterns = &.{ | 107760 | .patterns = &.{ |
| 105794 | .{ .src = .{ .to_mem, .none, .none } }, | 107761 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105795 | }, | 107762 | }, |
| 105796 | .call_frame = .{ .alignment = .@"16" }, | | |
| 105797 | .extra_temps = .{ | 107763 | .extra_temps = .{ |
| 105798 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107764 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105799 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107765 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 105800 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, | 107766 | .unused, |
| 105801 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 107767 | .unused, |
| 105802 | .unused, | 107768 | .unused, |
| 105803 | .unused, | 107769 | .unused, |
| 105804 | .unused, | 107770 | .unused, |
| ... | @@ -105808,28 +107774,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105808,28 +107774,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105808 | .unused, | 107774 | .unused, |
| 105809 | }, | 107775 | }, |
| 105810 | .dst_temps = .{ .mem, .unused }, | 107776 | .dst_temps = .{ .mem, .unused }, |
| 105811 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107777 | .clobbers = .{ .eflags = true }, |
| 105812 | .each = .{ .once = &.{ | 107778 | .each = .{ .once = &.{ |
| 105813 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107779 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105814 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 107780 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105815 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107781 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 105816 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 107782 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 105817 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 107783 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 105818 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107784 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105819 | } }, | 107785 | } }, |
| 105820 | }, .{ | 107786 | }, .{ |
| 105821 | .required_features = .{ .@"64bit", .avx, null, null }, | 107787 | .required_features = .{ .f16c, null, null, null }, |
| 105822 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107788 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 105823 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 107789 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105824 | .patterns = &.{ | 107790 | .patterns = &.{ |
| 105825 | .{ .src = .{ .to_mem, .none, .none } }, | 107791 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105826 | }, | 107792 | }, |
| 105827 | .call_frame = .{ .alignment = .@"16" }, | | |
| 105828 | .extra_temps = .{ | 107793 | .extra_temps = .{ |
| 105829 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107794 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105830 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107795 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 105831 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, | 107796 | .unused, |
| 105832 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 107797 | .unused, |
| 105833 | .unused, | 107798 | .unused, |
| 105834 | .unused, | 107799 | .unused, |
| 105835 | .unused, | 107800 | .unused, |
| ... | @@ -105839,28 +107804,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105839,28 +107804,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105839 | .unused, | 107804 | .unused, |
| 105840 | }, | 107805 | }, |
| 105841 | .dst_temps = .{ .mem, .unused }, | 107806 | .dst_temps = .{ .mem, .unused }, |
| 105842 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107807 | .clobbers = .{ .eflags = true }, |
| 105843 | .each = .{ .once = &.{ | 107808 | .each = .{ .once = &.{ |
| 105844 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107809 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105845 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 107810 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105846 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107811 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 105847 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 107812 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 105848 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 107813 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105849 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107814 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105850 | } }, | 107815 | } }, |
| 105851 | }, .{ | 107816 | }, .{ |
| 105852 | .required_features = .{ .@"64bit", .sse2, null, null }, | 107817 | .required_features = .{ .f16c, .avx2, null, null }, |
| 105853 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107818 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 105854 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 107819 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105855 | .patterns = &.{ | 107820 | .patterns = &.{ |
| 105856 | .{ .src = .{ .to_mem, .none, .none } }, | 107821 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105857 | }, | 107822 | }, |
| 105858 | .call_frame = .{ .alignment = .@"16" }, | | |
| 105859 | .extra_temps = .{ | 107823 | .extra_temps = .{ |
| 105860 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107824 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105861 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107825 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 105862 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, | 107826 | .unused, |
| 105863 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 107827 | .unused, |
| 105864 | .unused, | 107828 | .unused, |
| 105865 | .unused, | 107829 | .unused, |
| 105866 | .unused, | 107830 | .unused, |
| ... | @@ -105870,28 +107834,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105870,28 +107834,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105870 | .unused, | 107834 | .unused, |
| 105871 | }, | 107835 | }, |
| 105872 | .dst_temps = .{ .mem, .unused }, | 107836 | .dst_temps = .{ .mem, .unused }, |
| 105873 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107837 | .clobbers = .{ .eflags = true }, |
| 105874 | .each = .{ .once = &.{ | 107838 | .each = .{ .once = &.{ |
| 105875 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107839 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105876 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 107840 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105877 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107841 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 105878 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 107842 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 105879 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 107843 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 105880 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107844 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105881 | } }, | 107845 | } }, |
| 105882 | }, .{ | 107846 | }, .{ |
| 105883 | .required_features = .{ .@"64bit", .sse2, null, null }, | 107847 | .required_features = .{ .f16c, null, null, null }, |
| 105884 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107848 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 105885 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 107849 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105886 | .patterns = &.{ | 107850 | .patterns = &.{ |
| 105887 | .{ .src = .{ .to_mem, .none, .none } }, | 107851 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105888 | }, | 107852 | }, |
| 105889 | .call_frame = .{ .alignment = .@"16" }, | | |
| 105890 | .extra_temps = .{ | 107853 | .extra_temps = .{ |
| 105891 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107854 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105892 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107855 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 105893 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, | 107856 | .unused, |
| 105894 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 107857 | .unused, |
| 105895 | .unused, | 107858 | .unused, |
| 105896 | .unused, | 107859 | .unused, |
| 105897 | .unused, | 107860 | .unused, |
| ... | @@ -105901,28 +107864,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105901,28 +107864,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105901 | .unused, | 107864 | .unused, |
| 105902 | }, | 107865 | }, |
| 105903 | .dst_temps = .{ .mem, .unused }, | 107866 | .dst_temps = .{ .mem, .unused }, |
| 105904 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107867 | .clobbers = .{ .eflags = true }, |
| 105905 | .each = .{ .once = &.{ | 107868 | .each = .{ .once = &.{ |
| 105906 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107869 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105907 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 107870 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105908 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107871 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 105909 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 107872 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 105910 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 107873 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105911 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107874 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105912 | } }, | 107875 | } }, |
| 105913 | }, .{ | 107876 | }, .{ |
| 105914 | .required_features = .{ .@"64bit", .sse, null, null }, | 107877 | .required_features = .{ .avx, null, null, null }, |
| 105915 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107878 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 105916 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, | 107879 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105917 | .patterns = &.{ | 107880 | .patterns = &.{ |
| 105918 | .{ .src = .{ .to_mem, .none, .none } }, | 107881 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105919 | }, | 107882 | }, |
| 105920 | .call_frame = .{ .alignment = .@"16" }, | 107883 | .call_frame = .{ .alignment = .@"16" }, |
| 105921 | .extra_temps = .{ | 107884 | .extra_temps = .{ |
| 105922 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107885 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105923 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107886 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105924 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, | 107887 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105925 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 107888 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105926 | .unused, | 107889 | .unused, |
| 105927 | .unused, | 107890 | .unused, |
| 105928 | .unused, | 107891 | .unused, |
| ... | @@ -105934,26 +107897,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105934,26 +107897,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105934 | .dst_temps = .{ .mem, .unused }, | 107897 | .dst_temps = .{ .mem, .unused }, |
| 105935 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105936 | .each = .{ .once = &.{ | 107899 | .each = .{ .once = &.{ |
| 105937 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107900 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105938 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 107901 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105939 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107902 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105940 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 107903 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105941 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 107904 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105942 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107905 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105943 | } }, | 107906 | } }, |
| 105944 | }, .{ | 107907 | }, .{ |
| 105945 | .required_features = .{ .@"64bit", .sse, null, null }, | 107908 | .required_features = .{ .sse4_1, null, null, null }, |
| 105946 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 107909 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 105947 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, | 107910 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105948 | .patterns = &.{ | 107911 | .patterns = &.{ |
| 105949 | .{ .src = .{ .to_mem, .none, .none } }, | 107912 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105950 | }, | 107913 | }, |
| 105951 | .call_frame = .{ .alignment = .@"16" }, | 107914 | .call_frame = .{ .alignment = .@"16" }, |
| 105952 | .extra_temps = .{ | 107915 | .extra_temps = .{ |
| 105953 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 107916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105954 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 107917 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105955 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, | 107918 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105956 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 107919 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105957 | .unused, | 107920 | .unused, |
| 105958 | .unused, | 107921 | .unused, |
| 105959 | .unused, | 107922 | .unused, |
| ... | @@ -105965,26 +107928,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105965,26 +107928,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105965 | .dst_temps = .{ .mem, .unused }, | 107928 | .dst_temps = .{ .mem, .unused }, |
| 105966 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107929 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105967 | .each = .{ .once = &.{ | 107930 | .each = .{ .once = &.{ |
| 105968 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 107931 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105969 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 107932 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105970 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 107933 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105971 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 107934 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 105972 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 107935 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105973 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 107936 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105974 | } }, | 107937 | } }, |
| 105975 | }, .{ | 107938 | }, .{ |
| 105976 | .required_features = .{ .@"64bit", .sse, null, null }, | 107939 | .required_features = .{ .sse2, null, null, null }, |
| 105977 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 107940 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 105978 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, | 107941 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105979 | .patterns = &.{ | 107942 | .patterns = &.{ |
| 105980 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 107943 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105981 | }, | 107944 | }, |
| 105982 | .call_frame = .{ .alignment = .@"16" }, | 107945 | .call_frame = .{ .alignment = .@"16" }, |
| 105983 | .extra_temps = .{ | 107946 | .extra_temps = .{ |
| 105984 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, | 107947 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105985 | .unused, | 107948 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 105986 | .unused, | 107949 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 105987 | .unused, | 107950 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105988 | .unused, | 107951 | .unused, |
| 105989 | .unused, | 107952 | .unused, |
| 105990 | .unused, | 107953 | .unused, |
| ... | @@ -105993,25 +107956,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -105993,25 +107956,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105993 | .unused, | 107956 | .unused, |
| 105994 | .unused, | 107957 | .unused, |
| 105995 | }, | 107958 | }, |
| 105996 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 107959 | .dst_temps = .{ .mem, .unused }, |
| 105997 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107960 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105998 | .each = .{ .once = &.{ | 107961 | .each = .{ .once = &.{ |
| 105999 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 107962 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 107963 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 107964 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 107965 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| | 107966 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 107967 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 107968 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106000 | } }, | 107969 | } }, |
| 106001 | }, .{ | 107970 | }, .{ |
| 106002 | .required_features = .{ .@"64bit", .sse, null, null }, | 107971 | .required_features = .{ .sse, null, null, null }, |
| 106003 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 107972 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 106004 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, | 107973 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106005 | .patterns = &.{ | 107974 | .patterns = &.{ |
| 106006 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 107975 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106007 | }, | 107976 | }, |
| 106008 | .call_frame = .{ .alignment = .@"16" }, | 107977 | .call_frame = .{ .alignment = .@"16" }, |
| 106009 | .extra_temps = .{ | 107978 | .extra_temps = .{ |
| 106010 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, | 107979 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106011 | .unused, | 107980 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 106012 | .unused, | 107981 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106013 | .unused, | 107982 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106014 | .unused, | 107983 | .{ .type = .f32, .kind = .mem }, |
| 106015 | .unused, | 107984 | .unused, |
| 106016 | .unused, | 107985 | .unused, |
| 106017 | .unused, | 107986 | .unused, |
| ... | @@ -106019,25 +107988,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106019,25 +107988,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106019 | .unused, | 107988 | .unused, |
| 106020 | .unused, | 107989 | .unused, |
| 106021 | }, | 107990 | }, |
| 106022 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, | 107991 | .dst_temps = .{ .mem, .unused }, |
| 106023 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 107992 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106024 | .each = .{ .once = &.{ | 107993 | .each = .{ .once = &.{ |
| 106025 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 107994 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 107995 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 107996 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 107997 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| | 107998 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| | 107999 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108000 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108001 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106026 | } }, | 108002 | } }, |
| 106027 | }, .{ | 108003 | }, .{ |
| 106028 | .required_features = .{ .@"64bit", .avx, null, null }, | 108004 | .required_features = .{ .avx, null, null, null }, |
| 106029 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108005 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 106030 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 108006 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106031 | .patterns = &.{ | 108007 | .patterns = &.{ |
| 106032 | .{ .src = .{ .to_mem, .none, .none } }, | 108008 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106033 | }, | 108009 | }, |
| 106034 | .call_frame = .{ .alignment = .@"16" }, | 108010 | .call_frame = .{ .alignment = .@"16" }, |
| 106035 | .extra_temps = .{ | 108011 | .extra_temps = .{ |
| 106036 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108012 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106037 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108013 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106038 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, | 108014 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106039 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 108015 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106040 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 108016 | .unused, |
| 106041 | .unused, | 108017 | .unused, |
| 106042 | .unused, | 108018 | .unused, |
| 106043 | .unused, | 108019 | .unused, |
| ... | @@ -106049,27 +108025,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106049,27 +108025,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106049 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108025 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106050 | .each = .{ .once = &.{ | 108026 | .each = .{ .once = &.{ |
| 106051 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108027 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106052 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108028 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106053 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108029 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106054 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 108030 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 106055 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 108031 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106056 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106057 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108032 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106058 | } }, | 108033 | } }, |
| 106059 | }, .{ | 108034 | }, .{ |
| 106060 | .required_features = .{ .@"64bit", .avx, null, null }, | 108035 | .required_features = .{ .sse4_1, null, null, null }, |
| 106061 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108036 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 106062 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 108037 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106063 | .patterns = &.{ | 108038 | .patterns = &.{ |
| 106064 | .{ .src = .{ .to_mem, .none, .none } }, | 108039 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106065 | }, | 108040 | }, |
| 106066 | .call_frame = .{ .alignment = .@"16" }, | 108041 | .call_frame = .{ .alignment = .@"16" }, |
| 106067 | .extra_temps = .{ | 108042 | .extra_temps = .{ |
| 106068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108043 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106069 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108044 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106070 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, | 108045 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106071 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 108046 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106072 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 108047 | .unused, |
| 106073 | .unused, | 108048 | .unused, |
| 106074 | .unused, | 108049 | .unused, |
| 106075 | .unused, | 108050 | .unused, |
| ... | @@ -106081,27 +108056,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106081,27 +108056,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106081 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108056 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106082 | .each = .{ .once = &.{ | 108057 | .each = .{ .once = &.{ |
| 106083 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108058 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106084 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108059 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106085 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108060 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106086 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 108061 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 106087 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 108062 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106088 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106089 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106090 | } }, | 108064 | } }, |
| 106091 | }, .{ | 108065 | }, .{ |
| 106092 | .required_features = .{ .@"64bit", .sse2, null, null }, | 108066 | .required_features = .{ .sse2, null, null, null }, |
| 106093 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108067 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 106094 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 108068 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106095 | .patterns = &.{ | 108069 | .patterns = &.{ |
| 106096 | .{ .src = .{ .to_mem, .none, .none } }, | 108070 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106097 | }, | 108071 | }, |
| 106098 | .call_frame = .{ .alignment = .@"16" }, | 108072 | .call_frame = .{ .alignment = .@"16" }, |
| 106099 | .extra_temps = .{ | 108073 | .extra_temps = .{ |
| 106100 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108074 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106101 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108075 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106102 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, | 108076 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106103 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 108077 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106104 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 108078 | .unused, |
| 106105 | .unused, | 108079 | .unused, |
| 106106 | .unused, | 108080 | .unused, |
| 106107 | .unused, | 108081 | .unused, |
| ... | @@ -106113,27 +108087,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106113,27 +108087,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106113 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108087 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106114 | .each = .{ .once = &.{ | 108088 | .each = .{ .once = &.{ |
| 106115 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108089 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106116 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108090 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106117 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108091 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106118 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 108092 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 106119 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 108093 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 106120 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 108094 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106121 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108095 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106122 | } }, | 108096 | } }, |
| 106123 | }, .{ | 108097 | }, .{ |
| 106124 | .required_features = .{ .@"64bit", .sse2, null, null }, | 108098 | .required_features = .{ .sse, null, null, null }, |
| 106125 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108099 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 106126 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 108100 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106127 | .patterns = &.{ | 108101 | .patterns = &.{ |
| 106128 | .{ .src = .{ .to_mem, .none, .none } }, | 108102 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106129 | }, | 108103 | }, |
| 106130 | .call_frame = .{ .alignment = .@"16" }, | 108104 | .call_frame = .{ .alignment = .@"16" }, |
| 106131 | .extra_temps = .{ | 108105 | .extra_temps = .{ |
| 106132 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108106 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106133 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108107 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106134 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, | 108108 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106135 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 108109 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106136 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 108110 | .{ .type = .f32, .kind = .mem }, |
| 106137 | .unused, | 108111 | .unused, |
| 106138 | .unused, | 108112 | .unused, |
| 106139 | .unused, | 108113 | .unused, |
| ... | @@ -106145,27 +108119,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106145,27 +108119,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106145 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108119 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106146 | .each = .{ .once = &.{ | 108120 | .each = .{ .once = &.{ |
| 106147 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108121 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106148 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108122 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106149 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108123 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106150 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 108124 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 106151 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | 108125 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 106152 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 108126 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108127 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106153 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108128 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106154 | } }, | 108129 | } }, |
| 106155 | }, .{ | 108130 | }, .{ |
| 106156 | .required_features = .{ .@"64bit", .sse, null, null }, | 108131 | .required_features = .{ .f16c, null, null, null }, |
| 106157 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108132 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 106158 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, | 108133 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| | 108134 | .patterns = &.{ |
| | 108135 | .{ .src = .{ .mem, .none, .none } }, |
| | 108136 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 108137 | }, |
| | 108138 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 108139 | .each = .{ .once = &.{ |
| | 108140 | .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, |
| | 108141 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| | 108142 | } }, |
| | 108143 | }, .{ |
| | 108144 | .required_features = .{ .f16c, .avx2, null, null }, |
| | 108145 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 108146 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| | 108147 | .patterns = &.{ |
| | 108148 | .{ .src = .{ .mem, .none, .none } }, |
| | 108149 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 108150 | }, |
| | 108151 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 108152 | .each = .{ .once = &.{ |
| | 108153 | .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, |
| | 108154 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| | 108155 | } }, |
| | 108156 | }, .{ |
| | 108157 | .required_features = .{ .f16c, .avx2, null, null }, |
| | 108158 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| | 108159 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 106159 | .patterns = &.{ | 108160 | .patterns = &.{ |
| 106160 | .{ .src = .{ .to_mem, .none, .none } }, | 108161 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106161 | }, | 108162 | }, |
| 106162 | .call_frame = .{ .alignment = .@"16" }, | | |
| 106163 | .extra_temps = .{ | 108163 | .extra_temps = .{ |
| 106164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106165 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108165 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 106166 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, | 108166 | .unused, |
| 106167 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 108167 | .unused, |
| 106168 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, | 108168 | .unused, |
| 106169 | .unused, | 108169 | .unused, |
| 106170 | .unused, | 108170 | .unused, |
| 106171 | .unused, | 108171 | .unused, |
| ... | @@ -106174,30 +108174,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106174,30 +108174,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106174 | .unused, | 108174 | .unused, |
| 106175 | }, | 108175 | }, |
| 106176 | .dst_temps = .{ .mem, .unused }, | 108176 | .dst_temps = .{ .mem, .unused }, |
| 106177 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108177 | .clobbers = .{ .eflags = true }, |
| 106178 | .each = .{ .once = &.{ | 108178 | .each = .{ .once = &.{ |
| 106179 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108179 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106180 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108180 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106181 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108181 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 106182 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | | |
| 106183 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | | |
| 106184 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 108182 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106185 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108183 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106186 | } }, | 108184 | } }, |
| 106187 | }, .{ | 108185 | }, .{ |
| 106188 | .required_features = .{ .@"64bit", .sse, null, null }, | 108186 | .required_features = .{ .f16c, null, null, null }, |
| 106189 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108187 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 106190 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, | 108188 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 106191 | .patterns = &.{ | 108189 | .patterns = &.{ |
| 106192 | .{ .src = .{ .to_mem, .none, .none } }, | 108190 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106193 | }, | 108191 | }, |
| 106194 | .call_frame = .{ .alignment = .@"16" }, | | |
| 106195 | .extra_temps = .{ | 108192 | .extra_temps = .{ |
| 106196 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108193 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106197 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108194 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 106198 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, | 108195 | .unused, |
| 106199 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 108196 | .unused, |
| 106200 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 108197 | .unused, |
| 106201 | .unused, | 108198 | .unused, |
| 106202 | .unused, | 108199 | .unused, |
| 106203 | .unused, | 108200 | .unused, |
| ... | @@ -106206,29 +108203,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106206,29 +108203,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106206 | .unused, | 108203 | .unused, |
| 106207 | }, | 108204 | }, |
| 106208 | .dst_temps = .{ .mem, .unused }, | 108205 | .dst_temps = .{ .mem, .unused }, |
| 106209 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108206 | .clobbers = .{ .eflags = true }, |
| 106210 | .each = .{ .once = &.{ | 108207 | .each = .{ .once = &.{ |
| 106211 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108208 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106212 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108209 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106213 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108210 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 106214 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, | 108211 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 106215 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, | | |
| 106216 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106217 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108212 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106218 | } }, | 108213 | } }, |
| 106219 | }, .{ | 108214 | }, .{ |
| 106220 | .required_features = .{ .@"64bit", .sse, null, null }, | 108215 | .required_features = .{ .avx, null, null, null }, |
| 106221 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 108216 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106222 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 108217 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106223 | .patterns = &.{ | 108218 | .patterns = &.{ |
| 106224 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 108219 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106225 | }, | 108220 | }, |
| 106226 | .call_frame = .{ .alignment = .@"16" }, | 108221 | .call_frame = .{ .alignment = .@"16" }, |
| 106227 | .extra_temps = .{ | 108222 | .extra_temps = .{ |
| 106228 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108223 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106229 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108224 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 106230 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, | 108225 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106231 | .unused, | 108226 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106232 | .unused, | 108227 | .unused, |
| 106233 | .unused, | 108228 | .unused, |
| 106234 | .unused, | 108229 | .unused, |
| ... | @@ -106240,23 +108235,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106240,23 +108235,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106240 | .dst_temps = .{ .mem, .unused }, | 108235 | .dst_temps = .{ .mem, .unused }, |
| 106241 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108236 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106242 | .each = .{ .once = &.{ | 108237 | .each = .{ .once = &.{ |
| 106243 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 108238 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106244 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108239 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106245 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108240 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 108241 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| | 108242 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108243 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106246 | } }, | 108244 | } }, |
| 106247 | }, .{ | 108245 | }, .{ |
| 106248 | .required_features = .{ .@"64bit", .sse, null, null }, | 108246 | .required_features = .{ .sse4_1, null, null, null }, |
| 106249 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, | 108247 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106250 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 108248 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106251 | .patterns = &.{ | 108249 | .patterns = &.{ |
| 106252 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, | 108250 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106253 | }, | 108251 | }, |
| 106254 | .call_frame = .{ .alignment = .@"16" }, | 108252 | .call_frame = .{ .alignment = .@"16" }, |
| 106255 | .extra_temps = .{ | 108253 | .extra_temps = .{ |
| 106256 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108254 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106257 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108255 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 106258 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, | 108256 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106259 | .unused, | 108257 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106260 | .unused, | 108258 | .unused, |
| 106261 | .unused, | 108259 | .unused, |
| 106262 | .unused, | 108260 | .unused, |
| ... | @@ -106268,25 +108266,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106268,25 +108266,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106268 | .dst_temps = .{ .mem, .unused }, | 108266 | .dst_temps = .{ .mem, .unused }, |
| 106269 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108267 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106270 | .each = .{ .once = &.{ | 108268 | .each = .{ .once = &.{ |
| 106271 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, | 108269 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106272 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108270 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106273 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 108271 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 108272 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| | 108273 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108274 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106274 | } }, | 108275 | } }, |
| 106275 | }, .{ | 108276 | }, .{ |
| 106276 | .required_features = .{ .@"64bit", .avx, null, null }, | 108277 | .required_features = .{ .sse2, null, null, null }, |
| 106277 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108278 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106278 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 108279 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106279 | .patterns = &.{ | 108280 | .patterns = &.{ |
| 106280 | .{ .src = .{ .to_mem, .none, .none } }, | 108281 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106281 | }, | 108282 | }, |
| 106282 | .call_frame = .{ .alignment = .@"16" }, | 108283 | .call_frame = .{ .alignment = .@"16" }, |
| 106283 | .extra_temps = .{ | 108284 | .extra_temps = .{ |
| 106284 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108285 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106285 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 108286 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 106286 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108287 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106287 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108288 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106288 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108289 | .unused, |
| 106289 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, | 108290 | .unused, |
| 106290 | .unused, | 108291 | .unused, |
| 106291 | .unused, | 108292 | .unused, |
| 106292 | .unused, | 108293 | .unused, |
| ... | @@ -106296,31 +108297,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106296,31 +108297,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106296 | .dst_temps = .{ .mem, .unused }, | 108297 | .dst_temps = .{ .mem, .unused }, |
| 106297 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108298 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106298 | .each = .{ .once = &.{ | 108299 | .each = .{ .once = &.{ |
| 106299 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108300 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106300 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 108301 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106301 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 108302 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106302 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108303 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 106303 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108304 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 106304 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 108305 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106305 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 106306 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106307 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108306 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106308 | } }, | 108307 | } }, |
| 106309 | }, .{ | 108308 | }, .{ |
| 106310 | .required_features = .{ .@"64bit", .avx, null, null }, | 108309 | .required_features = .{ .sse, null, null, null }, |
| 106311 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108310 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106312 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 108311 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106313 | .patterns = &.{ | 108312 | .patterns = &.{ |
| 106314 | .{ .src = .{ .to_mem, .none, .none } }, | 108313 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106315 | }, | 108314 | }, |
| 106316 | .call_frame = .{ .alignment = .@"16" }, | 108315 | .call_frame = .{ .alignment = .@"16" }, |
| 106317 | .extra_temps = .{ | 108316 | .extra_temps = .{ |
| 106318 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108317 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106319 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 108318 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 106320 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108319 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106321 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108320 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106322 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108321 | .{ .type = .f32, .kind = .mem }, |
| 106323 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, | 108322 | .unused, |
| 106324 | .unused, | 108323 | .unused, |
| 106325 | .unused, | 108324 | .unused, |
| 106326 | .unused, | 108325 | .unused, |
| ... | @@ -106330,31 +108329,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106330,31 +108329,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106330 | .dst_temps = .{ .mem, .unused }, | 108329 | .dst_temps = .{ .mem, .unused }, |
| 106331 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108330 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106332 | .each = .{ .once = &.{ | 108331 | .each = .{ .once = &.{ |
| 106333 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108332 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106334 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 108333 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106335 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 108334 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106336 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108335 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 106337 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108336 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 106338 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 108337 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 106339 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 108338 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106340 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106341 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108339 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106342 | } }, | 108340 | } }, |
| 106343 | }, .{ | 108341 | }, .{ |
| 106344 | .required_features = .{ .@"64bit", .sse2, null, null }, | 108342 | .required_features = .{ .avx, null, null, null }, |
| 106345 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108343 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106346 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 108344 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106347 | .patterns = &.{ | 108345 | .patterns = &.{ |
| 106348 | .{ .src = .{ .to_mem, .none, .none } }, | 108346 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106349 | }, | 108347 | }, |
| 106350 | .call_frame = .{ .alignment = .@"16" }, | 108348 | .call_frame = .{ .alignment = .@"16" }, |
| 106351 | .extra_temps = .{ | 108349 | .extra_temps = .{ |
| 106352 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108350 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106353 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 108351 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106354 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108352 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106355 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108353 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106356 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108354 | .unused, |
| 106357 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, | 108355 | .unused, |
| 106358 | .unused, | 108356 | .unused, |
| 106359 | .unused, | 108357 | .unused, |
| 106360 | .unused, | 108358 | .unused, |
| ... | @@ -106364,31 +108362,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106364,31 +108362,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106364 | .dst_temps = .{ .mem, .unused }, | 108362 | .dst_temps = .{ .mem, .unused }, |
| 106365 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108363 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106366 | .each = .{ .once = &.{ | 108364 | .each = .{ .once = &.{ |
| 106367 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108365 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106368 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 108366 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106369 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 108367 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106370 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108368 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 106371 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108369 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106372 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 106373 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 106374 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106375 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108370 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106376 | } }, | 108371 | } }, |
| 106377 | }, .{ | 108372 | }, .{ |
| 106378 | .required_features = .{ .@"64bit", .sse2, null, null }, | 108373 | .required_features = .{ .sse4_1, null, null, null }, |
| 106379 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108374 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106380 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 108375 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106381 | .patterns = &.{ | 108376 | .patterns = &.{ |
| 106382 | .{ .src = .{ .to_mem, .none, .none } }, | 108377 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106383 | }, | 108378 | }, |
| 106384 | .call_frame = .{ .alignment = .@"16" }, | 108379 | .call_frame = .{ .alignment = .@"16" }, |
| 106385 | .extra_temps = .{ | 108380 | .extra_temps = .{ |
| 106386 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106387 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 108382 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106388 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108383 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106389 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108384 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106390 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108385 | .unused, |
| 106391 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, | 108386 | .unused, |
| 106392 | .unused, | 108387 | .unused, |
| 106393 | .unused, | 108388 | .unused, |
| 106394 | .unused, | 108389 | .unused, |
| ... | @@ -106398,31 +108393,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106398,31 +108393,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106398 | .dst_temps = .{ .mem, .unused }, | 108393 | .dst_temps = .{ .mem, .unused }, |
| 106399 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108394 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106400 | .each = .{ .once = &.{ | 108395 | .each = .{ .once = &.{ |
| 106401 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108396 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106402 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 108397 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106403 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 108398 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106404 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108399 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 106405 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108400 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106406 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | | |
| 106407 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 106408 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106409 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108401 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106410 | } }, | 108402 | } }, |
| 106411 | }, .{ | 108403 | }, .{ |
| 106412 | .required_features = .{ .@"64bit", .sse, null, null }, | 108404 | .required_features = .{ .sse2, null, null, null }, |
| 106413 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108405 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106414 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, | 108406 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106415 | .patterns = &.{ | 108407 | .patterns = &.{ |
| 106416 | .{ .src = .{ .to_mem, .none, .none } }, | 108408 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106417 | }, | 108409 | }, |
| 106418 | .call_frame = .{ .alignment = .@"16" }, | 108410 | .call_frame = .{ .alignment = .@"16" }, |
| 106419 | .extra_temps = .{ | 108411 | .extra_temps = .{ |
| 106420 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108412 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106421 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 108413 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106422 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108414 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106423 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108415 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106424 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108416 | .unused, |
| 106425 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, | 108417 | .unused, |
| 106426 | .unused, | 108418 | .unused, |
| 106427 | .unused, | 108419 | .unused, |
| 106428 | .unused, | 108420 | .unused, |
| ... | @@ -106432,31 +108424,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106432,31 +108424,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106432 | .dst_temps = .{ .mem, .unused }, | 108424 | .dst_temps = .{ .mem, .unused }, |
| 106433 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108425 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106434 | .each = .{ .once = &.{ | 108426 | .each = .{ .once = &.{ |
| 106435 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108427 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106436 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 108428 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106437 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 108429 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106438 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108430 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 106439 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108431 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 106440 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 108432 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106441 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | | |
| 106442 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106443 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108433 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106444 | } }, | 108434 | } }, |
| 106445 | }, .{ | 108435 | }, .{ |
| 106446 | .required_features = .{ .@"64bit", .sse, null, null }, | 108436 | .required_features = .{ .sse, null, null, null }, |
| 106447 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, | 108437 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106448 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, | 108438 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106449 | .patterns = &.{ | 108439 | .patterns = &.{ |
| 106450 | .{ .src = .{ .to_mem, .none, .none } }, | 108440 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106451 | }, | 108441 | }, |
| 106452 | .call_frame = .{ .alignment = .@"16" }, | 108442 | .call_frame = .{ .alignment = .@"16" }, |
| 106453 | .extra_temps = .{ | 108443 | .extra_temps = .{ |
| 106454 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 108444 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106455 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 108445 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 106456 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 108446 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106457 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 108447 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106458 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 108448 | .{ .type = .f32, .kind = .mem }, |
| 106459 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, | 108449 | .unused, |
| 106460 | .unused, | 108450 | .unused, |
| 106461 | .unused, | 108451 | .unused, |
| 106462 | .unused, | 108452 | .unused, |
| ... | @@ -106466,42 +108456,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106466,42 +108456,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106466 | .dst_temps = .{ .mem, .unused }, | 108456 | .dst_temps = .{ .mem, .unused }, |
| 106467 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108457 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106468 | .each = .{ .once = &.{ | 108458 | .each = .{ .once = &.{ |
| 106469 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 108459 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106470 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 108460 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106471 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, | 108461 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106472 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, | 108462 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 106473 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 108463 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 106474 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, | 108464 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 106475 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, | 108465 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106476 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 106477 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 108466 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106478 | } }, | 108467 | } }, |
| 106479 | } }) catch |err| switch (err) { | 108468 | }, .{ |
| 106480 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 108469 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 106481 | @tagName(air_tag), | 108470 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106482 | ty_op.ty.toType().fmt(pt), | 108471 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106483 | cg.typeOf(ty_op.operand).fmt(pt), | | |
| 106484 | ops[0].tracking(cg), | | |
| 106485 | }), | | |
| 106486 | else => |e| return e, | | |
| 106487 | }; | | |
| 106488 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 106489 | }, | | |
| 106490 | .float_from_int => |air_tag| if (use_old) try cg.airFloatFromInt(inst) else { | | |
| 106491 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 106492 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 106493 | var res: [1]Temp = undefined; | | |
| 106494 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ | | |
| 106495 | .required_features = .{ .f16c, null, null, null }, | | |
| 106496 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | | |
| 106497 | .dst_constraints = .{ .{ .float = .word }, .any }, | | |
| 106498 | .patterns = &.{ | 108472 | .patterns = &.{ |
| 106499 | .{ .src = .{ .mem, .none, .none } }, | 108473 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106500 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 106501 | }, | 108474 | }, |
| 106502 | .extra_temps = .{ | 108475 | .extra_temps = .{ |
| 106503 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 108476 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106504 | .unused, | 108477 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 106505 | .unused, | 108478 | .unused, |
| 106506 | .unused, | 108479 | .unused, |
| 106507 | .unused, | 108480 | .unused, |
| ... | @@ -106512,26 +108485,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106512,26 +108485,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106512 | .unused, | 108485 | .unused, |
| 106513 | .unused, | 108486 | .unused, |
| 106514 | }, | 108487 | }, |
| 106515 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 108488 | .dst_temps = .{ .mem, .unused }, |
| | 108489 | .clobbers = .{ .eflags = true }, |
| 106516 | .each = .{ .once = &.{ | 108490 | .each = .{ .once = &.{ |
| 106517 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 108491 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106518 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 108492 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 106519 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 108493 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._ }, |
| 106520 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 108494 | .{ ._, .v_, .cvtps2ph, .tmp1q, .tmp1x, .rm(.{}), ._ }, |
| | 108495 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| | 108496 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108497 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106521 | } }, | 108498 | } }, |
| 106522 | }, .{ | 108499 | }, .{ |
| 106523 | .required_features = .{ .f16c, null, null, null }, | 108500 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106524 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 108501 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106525 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108502 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106526 | .patterns = &.{ | 108503 | .patterns = &.{ |
| 106527 | .{ .src = .{ .mem, .none, .none } }, | 108504 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106528 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 106529 | }, | 108505 | }, |
| | 108506 | .call_frame = .{ .alignment = .@"16" }, |
| 106530 | .extra_temps = .{ | 108507 | .extra_temps = .{ |
| 106531 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 108508 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106532 | .unused, | 108509 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 106533 | .unused, | 108510 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 106534 | .unused, | 108511 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106535 | .unused, | 108512 | .unused, |
| 106536 | .unused, | 108513 | .unused, |
| 106537 | .unused, | 108514 | .unused, |
| ... | @@ -106540,26 +108517,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106540,26 +108517,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106540 | .unused, | 108517 | .unused, |
| 106541 | .unused, | 108518 | .unused, |
| 106542 | }, | 108519 | }, |
| 106543 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 108520 | .dst_temps = .{ .mem, .unused }, |
| | 108521 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106544 | .each = .{ .once = &.{ | 108522 | .each = .{ .once = &.{ |
| 106545 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 108523 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106546 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 108524 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106547 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 108525 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106548 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 108526 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| | 108527 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108528 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106549 | } }, | 108529 | } }, |
| 106550 | }, .{ | 108530 | }, .{ |
| 106551 | .required_features = .{ .f16c, null, null, null }, | 108531 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 106552 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, | 108532 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106553 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108533 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106554 | .patterns = &.{ | 108534 | .patterns = &.{ |
| 106555 | .{ .src = .{ .mem, .none, .none } }, | 108535 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106556 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 106557 | }, | 108536 | }, |
| | 108537 | .call_frame = .{ .alignment = .@"16" }, |
| 106558 | .extra_temps = .{ | 108538 | .extra_temps = .{ |
| 106559 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 108539 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106560 | .unused, | 108540 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 106561 | .unused, | 108541 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 106562 | .unused, | 108542 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106563 | .unused, | 108543 | .unused, |
| 106564 | .unused, | 108544 | .unused, |
| 106565 | .unused, | 108545 | .unused, |
| ... | @@ -106568,26 +108548,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106568,26 +108548,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106568 | .unused, | 108548 | .unused, |
| 106569 | .unused, | 108549 | .unused, |
| 106570 | }, | 108550 | }, |
| 106571 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 108551 | .dst_temps = .{ .mem, .unused }, |
| | 108552 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106572 | .each = .{ .once = &.{ | 108553 | .each = .{ .once = &.{ |
| 106573 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, | 108554 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106574 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 108555 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106575 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 108556 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106576 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 108557 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| | 108558 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108559 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106577 | } }, | 108560 | } }, |
| 106578 | }, .{ | 108561 | }, .{ |
| 106579 | .required_features = .{ .f16c, null, null, null }, | 108562 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106580 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, | 108563 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106581 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108564 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106582 | .patterns = &.{ | 108565 | .patterns = &.{ |
| 106583 | .{ .src = .{ .mem, .none, .none } }, | 108566 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106584 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 106585 | }, | 108567 | }, |
| | 108568 | .call_frame = .{ .alignment = .@"16" }, |
| 106586 | .extra_temps = .{ | 108569 | .extra_temps = .{ |
| 106587 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 108570 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106588 | .unused, | 108571 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 106589 | .unused, | 108572 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 106590 | .unused, | 108573 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106591 | .unused, | 108574 | .unused, |
| 106592 | .unused, | 108575 | .unused, |
| 106593 | .unused, | 108576 | .unused, |
| ... | @@ -106596,41 +108579,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106596,41 +108579,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106596 | .unused, | 108579 | .unused, |
| 106597 | .unused, | 108580 | .unused, |
| 106598 | }, | 108581 | }, |
| 106599 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 108582 | .dst_temps = .{ .mem, .unused }, |
| 106600 | .each = .{ .once = &.{ | 108583 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106601 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | | |
| 106602 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 106603 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | | |
| 106604 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | | |
| 106605 | } }, | | |
| 106606 | }, .{ | | |
| 106607 | .required_features = .{ .f16c, null, null, null }, | | |
| 106608 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, | | |
| 106609 | .dst_constraints = .{ .{ .float = .word }, .any }, | | |
| 106610 | .patterns = &.{ | | |
| 106611 | .{ .src = .{ .mem, .none, .none } }, | | |
| 106612 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 106613 | }, | | |
| 106614 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 106615 | .each = .{ .once = &.{ | 108584 | .each = .{ .once = &.{ |
| 106616 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 108585 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106617 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, | 108586 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106618 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 108587 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 108588 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| | 108589 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108590 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108591 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106619 | } }, | 108592 | } }, |
| 106620 | }, .{ | 108593 | }, .{ |
| 106621 | .required_features = .{ .@"64bit", .f16c, null, null }, | 108594 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106622 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, | 108595 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106623 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108596 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106624 | .patterns = &.{ | 108597 | .patterns = &.{ |
| 106625 | .{ .src = .{ .mem, .none, .none } }, | 108598 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106626 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 106627 | }, | 108599 | }, |
| | 108600 | .call_frame = .{ .alignment = .@"16" }, |
| 106628 | .extra_temps = .{ | 108601 | .extra_temps = .{ |
| 106629 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 108602 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106630 | .unused, | 108603 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 106631 | .unused, | 108604 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 106632 | .unused, | 108605 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106633 | .unused, | 108606 | .{ .type = .f32, .kind = .mem }, |
| 106634 | .unused, | 108607 | .unused, |
| 106635 | .unused, | 108608 | .unused, |
| 106636 | .unused, | 108609 | .unused, |
| ... | @@ -106638,39 +108611,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106638,39 +108611,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106638 | .unused, | 108611 | .unused, |
| 106639 | .unused, | 108612 | .unused, |
| 106640 | }, | 108613 | }, |
| 106641 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 108614 | .dst_temps = .{ .mem, .unused }, |
| 106642 | .each = .{ .once = &.{ | 108615 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106643 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | | |
| 106644 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 106645 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, | | |
| 106646 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | | |
| 106647 | } }, | | |
| 106648 | }, .{ | | |
| 106649 | .required_features = .{ .@"64bit", .f16c, null, null }, | | |
| 106650 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, | | |
| 106651 | .dst_constraints = .{ .{ .float = .word }, .any }, | | |
| 106652 | .patterns = &.{ | | |
| 106653 | .{ .src = .{ .mem, .none, .none } }, | | |
| 106654 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 106655 | }, | | |
| 106656 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 106657 | .each = .{ .once = &.{ | 108616 | .each = .{ .once = &.{ |
| 106658 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 108617 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106659 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, | 108618 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106660 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 108619 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 108620 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| | 108621 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| | 108622 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108623 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108624 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106661 | } }, | 108625 | } }, |
| 106662 | }, .{ | 108626 | }, .{ |
| 106663 | .required_features = .{ .@"64bit", .f16c, null, null }, | 108627 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106664 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, | 108628 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106665 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108629 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106666 | .patterns = &.{ | 108630 | .patterns = &.{ |
| 106667 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | 108631 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106668 | }, | 108632 | }, |
| | 108633 | .call_frame = .{ .alignment = .@"16" }, |
| 106669 | .extra_temps = .{ | 108634 | .extra_temps = .{ |
| 106670 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, | 108635 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106671 | .unused, | 108636 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106672 | .unused, | 108637 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 106673 | .unused, | 108638 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106674 | .unused, | 108639 | .unused, |
| 106675 | .unused, | 108640 | .unused, |
| 106676 | .unused, | 108641 | .unused, |
| ... | @@ -106679,35 +108644,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106679,35 +108644,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106679 | .unused, | 108644 | .unused, |
| 106680 | .unused, | 108645 | .unused, |
| 106681 | }, | 108646 | }, |
| 106682 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 108647 | .dst_temps = .{ .mem, .unused }, |
| 106683 | .clobbers = .{ .eflags = true }, | 108648 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106684 | .each = .{ .once = &.{ | 108649 | .each = .{ .once = &.{ |
| 106685 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 108650 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106686 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, | 108651 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106687 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, | 108652 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106688 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | 108653 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 106689 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, | 108654 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106690 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, | 108655 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106691 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, | | |
| 106692 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, | | |
| 106693 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .dst0d, ._ }, | | |
| 106694 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, | | |
| 106695 | .{ .@"1:", .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, | | |
| 106696 | .{ .@"0:", .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | | |
| 106697 | } }, | 108656 | } }, |
| 106698 | }, .{ | 108657 | }, .{ |
| 106699 | .required_features = .{ .sse, null, null, null }, | 108658 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 106700 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | 108659 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106701 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108660 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106702 | .patterns = &.{ | 108661 | .patterns = &.{ |
| 106703 | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, | 108662 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106704 | }, | 108663 | }, |
| 106705 | .call_frame = .{ .alignment = .@"16" }, | 108664 | .call_frame = .{ .alignment = .@"16" }, |
| 106706 | .extra_temps = .{ | 108665 | .extra_temps = .{ |
| 106707 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 108666 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106708 | .unused, | 108667 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106709 | .unused, | 108668 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 106710 | .unused, | 108669 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106711 | .unused, | 108670 | .unused, |
| 106712 | .unused, | 108671 | .unused, |
| 106713 | .unused, | 108672 | .unused, |
| ... | @@ -106716,25 +108675,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106716,25 +108675,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106716 | .unused, | 108675 | .unused, |
| 106717 | .unused, | 108676 | .unused, |
| 106718 | }, | 108677 | }, |
| 106719 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108678 | .dst_temps = .{ .mem, .unused }, |
| 106720 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108679 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106721 | .each = .{ .once = &.{ | 108680 | .each = .{ .once = &.{ |
| 106722 | .{ ._, ._, .movsx, .src0d, .src0b, ._, ._ }, | 108681 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106723 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108682 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108683 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 108684 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| | 108685 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108686 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106724 | } }, | 108687 | } }, |
| 106725 | }, .{ | 108688 | }, .{ |
| 106726 | .required_features = .{ .sse, null, null, null }, | 108689 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106727 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 108690 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106728 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108691 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106729 | .patterns = &.{ | 108692 | .patterns = &.{ |
| 106730 | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, | 108693 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106731 | }, | 108694 | }, |
| 106732 | .call_frame = .{ .alignment = .@"16" }, | 108695 | .call_frame = .{ .alignment = .@"16" }, |
| 106733 | .extra_temps = .{ | 108696 | .extra_temps = .{ |
| 106734 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 108697 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106735 | .unused, | 108698 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106736 | .unused, | 108699 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 106737 | .unused, | 108700 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106738 | .unused, | 108701 | .unused, |
| 106739 | .unused, | 108702 | .unused, |
| 106740 | .unused, | 108703 | .unused, |
| ... | @@ -106743,26 +108706,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106743,26 +108706,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106743 | .unused, | 108706 | .unused, |
| 106744 | .unused, | 108707 | .unused, |
| 106745 | }, | 108708 | }, |
| 106746 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108709 | .dst_temps = .{ .mem, .unused }, |
| 106747 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108710 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106748 | .each = .{ .once = &.{ | 108711 | .each = .{ .once = &.{ |
| 106749 | .{ ._, ._, .movzx, .src0d, .src0b, ._, ._ }, | 108712 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106750 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108713 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108714 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 108715 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| | 108716 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108717 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108718 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106751 | } }, | 108719 | } }, |
| 106752 | }, .{ | 108720 | }, .{ |
| 106753 | .required_features = .{ .sse, null, null, null }, | 108721 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106754 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, | 108722 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 106755 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108723 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106756 | .patterns = &.{ | 108724 | .patterns = &.{ |
| 106757 | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, | 108725 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106758 | }, | 108726 | }, |
| 106759 | .call_frame = .{ .alignment = .@"16" }, | 108727 | .call_frame = .{ .alignment = .@"16" }, |
| 106760 | .extra_temps = .{ | 108728 | .extra_temps = .{ |
| 106761 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 108729 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106762 | .unused, | 108730 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106763 | .unused, | 108731 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 106764 | .unused, | 108732 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106765 | .unused, | 108733 | .{ .type = .f32, .kind = .mem }, |
| 106766 | .unused, | 108734 | .unused, |
| 106767 | .unused, | 108735 | .unused, |
| 106768 | .unused, | 108736 | .unused, |
| ... | @@ -106770,26 +108738,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106770,26 +108738,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106770 | .unused, | 108738 | .unused, |
| 106771 | .unused, | 108739 | .unused, |
| 106772 | }, | 108740 | }, |
| 106773 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108741 | .dst_temps = .{ .mem, .unused }, |
| 106774 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108742 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106775 | .each = .{ .once = &.{ | 108743 | .each = .{ .once = &.{ |
| 106776 | .{ ._, ._, .movsx, .src0d, .src0w, ._, ._ }, | 108744 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106777 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108745 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108746 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 108747 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| | 108748 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| | 108749 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108750 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108751 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106778 | } }, | 108752 | } }, |
| 106779 | }, .{ | 108753 | }, .{ |
| 106780 | .required_features = .{ .sse, null, null, null }, | 108754 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106781 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, | 108755 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106782 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108756 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106783 | .patterns = &.{ | 108757 | .patterns = &.{ |
| 106784 | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, | 108758 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106785 | }, | 108759 | }, |
| 106786 | .call_frame = .{ .alignment = .@"16" }, | 108760 | .call_frame = .{ .alignment = .@"16" }, |
| 106787 | .extra_temps = .{ | 108761 | .extra_temps = .{ |
| 106788 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 108762 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106789 | .unused, | 108763 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106790 | .unused, | 108764 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 106791 | .unused, | 108765 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 106792 | .unused, | 108766 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106793 | .unused, | 108767 | .unused, |
| 106794 | .unused, | 108768 | .unused, |
| 106795 | .unused, | 108769 | .unused, |
| ... | @@ -106797,26 +108771,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106797,26 +108771,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106797 | .unused, | 108771 | .unused, |
| 106798 | .unused, | 108772 | .unused, |
| 106799 | }, | 108773 | }, |
| 106800 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108774 | .dst_temps = .{ .mem, .unused }, |
| 106801 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108775 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106802 | .each = .{ .once = &.{ | 108776 | .each = .{ .once = &.{ |
| 106803 | .{ ._, ._, .movzx, .src0d, .src0w, ._, ._ }, | 108777 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106804 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108778 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108779 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 108780 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 108781 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| | 108782 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108783 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106805 | } }, | 108784 | } }, |
| 106806 | }, .{ | 108785 | }, .{ |
| 106807 | .required_features = .{ .sse, null, null, null }, | 108786 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 106808 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, | 108787 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106809 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108788 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106810 | .patterns = &.{ | 108789 | .patterns = &.{ |
| 106811 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, | 108790 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106812 | }, | 108791 | }, |
| 106813 | .call_frame = .{ .alignment = .@"16" }, | 108792 | .call_frame = .{ .alignment = .@"16" }, |
| 106814 | .extra_temps = .{ | 108793 | .extra_temps = .{ |
| 106815 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 108794 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106816 | .unused, | 108795 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106817 | .unused, | 108796 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 106818 | .unused, | 108797 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 106819 | .unused, | 108798 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106820 | .unused, | 108799 | .unused, |
| 106821 | .unused, | 108800 | .unused, |
| 106822 | .unused, | 108801 | .unused, |
| ... | @@ -106824,25 +108803,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106824,25 +108803,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106824 | .unused, | 108803 | .unused, |
| 106825 | .unused, | 108804 | .unused, |
| 106826 | }, | 108805 | }, |
| 106827 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108806 | .dst_temps = .{ .mem, .unused }, |
| 106828 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108807 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106829 | .each = .{ .once = &.{ | 108808 | .each = .{ .once = &.{ |
| 106830 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108809 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 108810 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108811 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 108812 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 108813 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| | 108814 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108815 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106831 | } }, | 108816 | } }, |
| 106832 | }, .{ | 108817 | }, .{ |
| 106833 | .required_features = .{ .sse, null, null, null }, | 108818 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106834 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, | 108819 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106835 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108820 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106836 | .patterns = &.{ | 108821 | .patterns = &.{ |
| 106837 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, | 108822 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106838 | }, | 108823 | }, |
| 106839 | .call_frame = .{ .alignment = .@"16" }, | 108824 | .call_frame = .{ .alignment = .@"16" }, |
| 106840 | .extra_temps = .{ | 108825 | .extra_temps = .{ |
| 106841 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 108826 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106842 | .unused, | 108827 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106843 | .unused, | 108828 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 106844 | .unused, | 108829 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 106845 | .unused, | 108830 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106846 | .unused, | 108831 | .unused, |
| 106847 | .unused, | 108832 | .unused, |
| 106848 | .unused, | 108833 | .unused, |
| ... | @@ -106850,51 +108835,98 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106850,51 +108835,98 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106850 | .unused, | 108835 | .unused, |
| 106851 | .unused, | 108836 | .unused, |
| 106852 | }, | 108837 | }, |
| 106853 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108838 | .dst_temps = .{ .mem, .unused }, |
| 106854 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108839 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106855 | .each = .{ .once = &.{ | 108840 | .each = .{ .once = &.{ |
| 106856 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108841 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 108842 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108843 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 108844 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 108845 | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, |
| | 108846 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108847 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108848 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106857 | } }, | 108849 | } }, |
| 106858 | }, .{ | 108850 | }, .{ |
| 106859 | .required_features = .{ .@"64bit", .sse, null, null }, | 108851 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106860 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, | 108852 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106861 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108853 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106862 | .patterns = &.{ | 108854 | .patterns = &.{ |
| 106863 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, | 108855 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106864 | }, | 108856 | }, |
| 106865 | .call_frame = .{ .alignment = .@"16" }, | 108857 | .call_frame = .{ .alignment = .@"16" }, |
| 106866 | .extra_temps = .{ | 108858 | .extra_temps = .{ |
| 106867 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, | 108859 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 108860 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| | 108861 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| | 108862 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| | 108863 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 108864 | .{ .type = .f32, .kind = .mem }, |
| 106868 | .unused, | 108865 | .unused, |
| 106869 | .unused, | 108866 | .unused, |
| 106870 | .unused, | 108867 | .unused, |
| 106871 | .unused, | 108868 | .unused, |
| 106872 | .unused, | 108869 | .unused, |
| | 108870 | }, |
| | 108871 | .dst_temps = .{ .mem, .unused }, |
| | 108872 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| | 108873 | .each = .{ .once = &.{ |
| | 108874 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 108875 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108876 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 108877 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 108878 | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, |
| | 108879 | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, |
| | 108880 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108881 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108882 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 108883 | } }, |
| | 108884 | }, .{ |
| | 108885 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 108886 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| | 108887 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| | 108888 | .patterns = &.{ |
| | 108889 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 108890 | }, |
| | 108891 | .call_frame = .{ .alignment = .@"16" }, |
| | 108892 | .extra_temps = .{ |
| | 108893 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 108894 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| | 108895 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| | 108896 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| | 108897 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| | 108898 | .unused, |
| 106873 | .unused, | 108899 | .unused, |
| 106874 | .unused, | 108900 | .unused, |
| 106875 | .unused, | 108901 | .unused, |
| 106876 | .unused, | 108902 | .unused, |
| 106877 | .unused, | 108903 | .unused, |
| 106878 | }, | 108904 | }, |
| 106879 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108905 | .dst_temps = .{ .mem, .unused }, |
| 106880 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108906 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106881 | .each = .{ .once = &.{ | 108907 | .each = .{ .once = &.{ |
| 106882 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108908 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 108909 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108910 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 108911 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 108912 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| | 108913 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108914 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106883 | } }, | 108915 | } }, |
| 106884 | }, .{ | 108916 | }, .{ |
| 106885 | .required_features = .{ .@"64bit", .sse, null, null }, | 108917 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 106886 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, | 108918 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106887 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108919 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106888 | .patterns = &.{ | 108920 | .patterns = &.{ |
| 106889 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, | 108921 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106890 | }, | 108922 | }, |
| 106891 | .call_frame = .{ .alignment = .@"16" }, | 108923 | .call_frame = .{ .alignment = .@"16" }, |
| 106892 | .extra_temps = .{ | 108924 | .extra_temps = .{ |
| 106893 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, | 108925 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106894 | .unused, | 108926 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106895 | .unused, | 108927 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 106896 | .unused, | 108928 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 106897 | .unused, | 108929 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106898 | .unused, | 108930 | .unused, |
| 106899 | .unused, | 108931 | .unused, |
| 106900 | .unused, | 108932 | .unused, |
| ... | @@ -106902,25 +108934,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106902,25 +108934,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106902 | .unused, | 108934 | .unused, |
| 106903 | .unused, | 108935 | .unused, |
| 106904 | }, | 108936 | }, |
| 106905 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108937 | .dst_temps = .{ .mem, .unused }, |
| 106906 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108938 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106907 | .each = .{ .once = &.{ | 108939 | .each = .{ .once = &.{ |
| 106908 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108940 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 108941 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108942 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 108943 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 108944 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| | 108945 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108946 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106909 | } }, | 108947 | } }, |
| 106910 | }, .{ | 108948 | }, .{ |
| 106911 | .required_features = .{ .@"64bit", .sse, null, null }, | 108949 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106912 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, | 108950 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106913 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108951 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106914 | .patterns = &.{ | 108952 | .patterns = &.{ |
| 106915 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 108953 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106916 | }, | 108954 | }, |
| 106917 | .call_frame = .{ .alignment = .@"16" }, | 108955 | .call_frame = .{ .alignment = .@"16" }, |
| 106918 | .extra_temps = .{ | 108956 | .extra_temps = .{ |
| 106919 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, | 108957 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106920 | .unused, | 108958 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 106921 | .unused, | 108959 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 106922 | .unused, | 108960 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 106923 | .unused, | 108961 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106924 | .unused, | 108962 | .unused, |
| 106925 | .unused, | 108963 | .unused, |
| 106926 | .unused, | 108964 | .unused, |
| ... | @@ -106928,193 +108966,206 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -106928,193 +108966,206 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106928 | .unused, | 108966 | .unused, |
| 106929 | .unused, | 108967 | .unused, |
| 106930 | }, | 108968 | }, |
| 106931 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 108969 | .dst_temps = .{ .mem, .unused }, |
| 106932 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 108970 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106933 | .each = .{ .once = &.{ | 108971 | .each = .{ .once = &.{ |
| 106934 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 108972 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 108973 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 108974 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 108975 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 108976 | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, |
| | 108977 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 108978 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 108979 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106935 | } }, | 108980 | } }, |
| 106936 | }, .{ | 108981 | }, .{ |
| 106937 | .required_features = .{ .@"64bit", .sse, null, null }, | 108982 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106938 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, | 108983 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106939 | .dst_constraints = .{ .{ .float = .word }, .any }, | 108984 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106940 | .patterns = &.{ | 108985 | .patterns = &.{ |
| 106941 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 108986 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106942 | }, | 108987 | }, |
| 106943 | .call_frame = .{ .alignment = .@"16" }, | 108988 | .call_frame = .{ .alignment = .@"16" }, |
| 106944 | .extra_temps = .{ | 108989 | .extra_temps = .{ |
| | 108990 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 108991 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| | 108992 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 106945 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, | 108993 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 106946 | .unused, | 108994 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106947 | .unused, | 108995 | .{ .type = .f32, .kind = .mem }, |
| 106948 | .unused, | | |
| 106949 | .unused, | | |
| 106950 | .unused, | | |
| 106951 | .unused, | 108996 | .unused, |
| 106952 | .unused, | 108997 | .unused, |
| 106953 | .unused, | 108998 | .unused, |
| 106954 | .unused, | 108999 | .unused, |
| 106955 | .unused, | 109000 | .unused, |
| 106956 | }, | 109001 | }, |
| 106957 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 109002 | .dst_temps = .{ .mem, .unused }, |
| 106958 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109003 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106959 | .each = .{ .once = &.{ | 109004 | .each = .{ .once = &.{ |
| 106960 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 109005 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 109006 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 109007 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| | 109008 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 109009 | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, |
| | 109010 | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, |
| | 109011 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 109012 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 109013 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106961 | } }, | 109014 | } }, |
| 106962 | }, .{ | 109015 | }, .{ |
| 106963 | .required_features = .{ .@"64bit", .sse, null, null }, | 109016 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106964 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 109017 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106965 | .dst_constraints = .{ .{ .float = .word }, .any }, | 109018 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106966 | .patterns = &.{ | 109019 | .patterns = &.{ |
| 106967 | .{ .src = .{ .to_mem, .none, .none } }, | 109020 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106968 | }, | 109021 | }, |
| 106969 | .call_frame = .{ .alignment = .@"16" }, | 109022 | .call_frame = .{ .alignment = .@"16" }, |
| 106970 | .extra_temps = .{ | 109023 | .extra_temps = .{ |
| | 109024 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 109025 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106971 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 109026 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106972 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 109027 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106973 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, | 109028 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 106974 | .unused, | 109029 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106975 | .unused, | | |
| 106976 | .unused, | | |
| 106977 | .unused, | 109030 | .unused, |
| 106978 | .unused, | 109031 | .unused, |
| 106979 | .unused, | 109032 | .unused, |
| 106980 | .unused, | 109033 | .unused, |
| 106981 | .unused, | 109034 | .unused, |
| 106982 | }, | 109035 | }, |
| 106983 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 109036 | .dst_temps = .{ .mem, .unused }, |
| 106984 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109037 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106985 | .each = .{ .once = &.{ | 109038 | .each = .{ .once = &.{ |
| 106986 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 109039 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106987 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 109040 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106988 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109041 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| | 109042 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| | 109043 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 109044 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| | 109045 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 109046 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| | 109047 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106989 | } }, | 109048 | } }, |
| 106990 | }, .{ | 109049 | }, .{ |
| 106991 | .required_features = .{ .@"64bit", .sse, null, null }, | 109050 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 106992 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 109051 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106993 | .dst_constraints = .{ .{ .float = .word }, .any }, | 109052 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106994 | .patterns = &.{ | 109053 | .patterns = &.{ |
| 106995 | .{ .src = .{ .to_mem, .none, .none } }, | 109054 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106996 | }, | 109055 | }, |
| 106997 | .call_frame = .{ .alignment = .@"16" }, | 109056 | .call_frame = .{ .alignment = .@"16" }, |
| 106998 | .extra_temps = .{ | 109057 | .extra_temps = .{ |
| | 109058 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 109059 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106999 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 109060 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107000 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 109061 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107001 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, | 109062 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 107002 | .unused, | 109063 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107003 | .unused, | | |
| 107004 | .unused, | | |
| 107005 | .unused, | 109064 | .unused, |
| 107006 | .unused, | 109065 | .unused, |
| 107007 | .unused, | 109066 | .unused, |
| 107008 | .unused, | 109067 | .unused, |
| 107009 | .unused, | 109068 | .unused, |
| 107010 | }, | 109069 | }, |
| 107011 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 109070 | .dst_temps = .{ .mem, .unused }, |
| 107012 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109071 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107013 | .each = .{ .once = &.{ | 109072 | .each = .{ .once = &.{ |
| 107014 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 109073 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107015 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 109074 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107016 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109075 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 107017 | } }, | 109076 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107018 | }, .{ | 109077 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 107019 | .required_features = .{ .f16c, null, null, null }, | 109078 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 107020 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 109079 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 107021 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109080 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 107022 | .patterns = &.{ | 109081 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107023 | .{ .src = .{ .mem, .none, .none } }, | | |
| 107024 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 107025 | }, | | |
| 107026 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 107027 | .each = .{ .once = &.{ | | |
| 107028 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, | | |
| 107029 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | | |
| 107030 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | | |
| 107031 | } }, | | |
| 107032 | }, .{ | | |
| 107033 | .required_features = .{ .f16c, .avx2, null, null }, | | |
| 107034 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | | |
| 107035 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, | | |
| 107036 | .patterns = &.{ | | |
| 107037 | .{ .src = .{ .mem, .none, .none } }, | | |
| 107038 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 107039 | }, | | |
| 107040 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 107041 | .each = .{ .once = &.{ | | |
| 107042 | .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, | | |
| 107043 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | | |
| 107044 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, | | |
| 107045 | } }, | 109082 | } }, |
| 107046 | }, .{ | 109083 | }, .{ |
| 107047 | .required_features = .{ .f16c, null, null, null }, | 109084 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 107048 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 109085 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107049 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109086 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107050 | .patterns = &.{ | 109087 | .patterns = &.{ |
| 107051 | .{ .src = .{ .mem, .none, .none } }, | 109088 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107052 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 107053 | }, | 109089 | }, |
| 107054 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 109090 | .call_frame = .{ .alignment = .@"16" }, |
| 107055 | .each = .{ .once = &.{ | 109091 | .extra_temps = .{ |
| 107056 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, | 109092 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107057 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 109093 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107058 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 109094 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107059 | } }, | 109095 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107060 | }, .{ | 109096 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 107061 | .required_features = .{ .f16c, .avx2, null, null }, | 109097 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107062 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | 109098 | .unused, |
| 107063 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 109099 | .unused, |
| 107064 | .patterns = &.{ | 109100 | .unused, |
| 107065 | .{ .src = .{ .mem, .none, .none } }, | 109101 | .unused, |
| 107066 | .{ .src = .{ .to_sse, .none, .none } }, | 109102 | .unused, |
| 107067 | }, | 109103 | }, |
| 107068 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 109104 | .dst_temps = .{ .mem, .unused }, |
| | 109105 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107069 | .each = .{ .once = &.{ | 109106 | .each = .{ .once = &.{ |
| 107070 | .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, | 109107 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107071 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | 109108 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107072 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, | 109109 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| | 109110 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| | 109111 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 109112 | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, |
| | 109113 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 109114 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 109115 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| | 109116 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107073 | } }, | 109117 | } }, |
| 107074 | }, .{ | 109118 | }, .{ |
| 107075 | .required_features = .{ .f16c, .avx2, null, null }, | 109119 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107076 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | 109120 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107077 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 109121 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107078 | .patterns = &.{ | 109122 | .patterns = &.{ |
| 107079 | .{ .src = .{ .to_mem, .none, .none } }, | 109123 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107080 | }, | 109124 | }, |
| | 109125 | .call_frame = .{ .alignment = .@"16" }, |
| 107081 | .extra_temps = .{ | 109126 | .extra_temps = .{ |
| | 109127 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107082 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109128 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107083 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 109129 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107084 | .unused, | 109130 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107085 | .unused, | 109131 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 107086 | .unused, | 109132 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107087 | .unused, | 109133 | .{ .type = .f32, .kind = .mem }, |
| 107088 | .unused, | | |
| 107089 | .unused, | 109134 | .unused, |
| 107090 | .unused, | 109135 | .unused, |
| 107091 | .unused, | 109136 | .unused, |
| 107092 | .unused, | 109137 | .unused, |
| 107093 | }, | 109138 | }, |
| 107094 | .dst_temps = .{ .mem, .unused }, | 109139 | .dst_temps = .{ .mem, .unused }, |
| 107095 | .clobbers = .{ .eflags = true }, | 109140 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107096 | .each = .{ .once = &.{ | 109141 | .each = .{ .once = &.{ |
| 107097 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109142 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107098 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 109143 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107099 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 109144 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 107100 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, | 109145 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107101 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 109146 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 109147 | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, |
| | 109148 | .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ }, |
| | 109149 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 109150 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 109151 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 107102 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109152 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107103 | } }, | 109153 | } }, |
| 107104 | }, .{ | 109154 | }, .{ |
| 107105 | .required_features = .{ .f16c, null, null, null }, | 109155 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 107106 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 109156 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107107 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109157 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107108 | .patterns = &.{ | 109158 | .patterns = &.{ |
| 107109 | .{ .src = .{ .to_mem, .none, .none } }, | 109159 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107110 | }, | 109160 | }, |
| | 109161 | .call_frame = .{ .alignment = .@"16" }, |
| 107111 | .extra_temps = .{ | 109162 | .extra_temps = .{ |
| | 109163 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107112 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107113 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 109165 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107114 | .unused, | 109166 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107115 | .unused, | 109167 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 107116 | .unused, | 109168 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107117 | .unused, | | |
| 107118 | .unused, | 109169 | .unused, |
| 107119 | .unused, | 109170 | .unused, |
| 107120 | .unused, | 109171 | .unused, |
| ... | @@ -107122,29 +109173,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107122,29 +109173,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107122 | .unused, | 109173 | .unused, |
| 107123 | }, | 109174 | }, |
| 107124 | .dst_temps = .{ .mem, .unused }, | 109175 | .dst_temps = .{ .mem, .unused }, |
| 107125 | .clobbers = .{ .eflags = true }, | 109176 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107126 | .each = .{ .once = &.{ | 109177 | .each = .{ .once = &.{ |
| 107127 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109178 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107128 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 109179 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107129 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 109180 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 107130 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, | 109181 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107131 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 109182 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 109183 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| | 109184 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 109185 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 107132 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109186 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107133 | } }, | 109187 | } }, |
| 107134 | }, .{ | 109188 | }, .{ |
| 107135 | .required_features = .{ .f16c, .avx2, null, null }, | 109189 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 107136 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | 109190 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107137 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 109191 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107138 | .patterns = &.{ | 109192 | .patterns = &.{ |
| 107139 | .{ .src = .{ .to_mem, .none, .none } }, | 109193 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107140 | }, | 109194 | }, |
| | 109195 | .call_frame = .{ .alignment = .@"16" }, |
| 107141 | .extra_temps = .{ | 109196 | .extra_temps = .{ |
| | 109197 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107142 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109198 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107143 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 109199 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107144 | .unused, | 109200 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107145 | .unused, | 109201 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 107146 | .unused, | 109202 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107147 | .unused, | | |
| 107148 | .unused, | 109203 | .unused, |
| 107149 | .unused, | 109204 | .unused, |
| 107150 | .unused, | 109205 | .unused, |
| ... | @@ -107152,29 +109207,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107152,29 +109207,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107152 | .unused, | 109207 | .unused, |
| 107153 | }, | 109208 | }, |
| 107154 | .dst_temps = .{ .mem, .unused }, | 109209 | .dst_temps = .{ .mem, .unused }, |
| 107155 | .clobbers = .{ .eflags = true }, | 109210 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107156 | .each = .{ .once = &.{ | 109211 | .each = .{ .once = &.{ |
| 107157 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109212 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107158 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 109213 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107159 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 109214 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 107160 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, | 109215 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107161 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 109216 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 109217 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| | 109218 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 109219 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 107162 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109220 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107163 | } }, | 109221 | } }, |
| 107164 | }, .{ | 109222 | }, .{ |
| 107165 | .required_features = .{ .f16c, null, null, null }, | 109223 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 107166 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 109224 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107167 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109225 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107168 | .patterns = &.{ | 109226 | .patterns = &.{ |
| 107169 | .{ .src = .{ .to_mem, .none, .none } }, | 109227 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107170 | }, | 109228 | }, |
| | 109229 | .call_frame = .{ .alignment = .@"16" }, |
| 107171 | .extra_temps = .{ | 109230 | .extra_temps = .{ |
| | 109231 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107172 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109232 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107173 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 109233 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107174 | .unused, | 109234 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107175 | .unused, | 109235 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 107176 | .unused, | 109236 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107177 | .unused, | | |
| 107178 | .unused, | 109237 | .unused, |
| 107179 | .unused, | 109238 | .unused, |
| 107180 | .unused, | 109239 | .unused, |
| ... | @@ -107182,31 +109241,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107182,31 +109241,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107182 | .unused, | 109241 | .unused, |
| 107183 | }, | 109242 | }, |
| 107184 | .dst_temps = .{ .mem, .unused }, | 109243 | .dst_temps = .{ .mem, .unused }, |
| 107185 | .clobbers = .{ .eflags = true }, | 109244 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107186 | .each = .{ .once = &.{ | 109245 | .each = .{ .once = &.{ |
| 107187 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109246 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107188 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 109247 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107189 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 109248 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 107190 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, | 109249 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107191 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 109250 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 109251 | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, |
| | 109252 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 109253 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 109254 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 107192 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109255 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107193 | } }, | 109256 | } }, |
| 107194 | }, .{ | 109257 | }, .{ |
| 107195 | .required_features = .{ .avx, .slow_incdec, null, null }, | 109258 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107196 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109259 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107197 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109260 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107198 | .patterns = &.{ | 109261 | .patterns = &.{ |
| 107199 | .{ .src = .{ .to_mem, .none, .none } }, | 109262 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107200 | }, | 109263 | }, |
| 107201 | .call_frame = .{ .alignment = .@"16" }, | 109264 | .call_frame = .{ .alignment = .@"16" }, |
| 107202 | .extra_temps = .{ | 109265 | .extra_temps = .{ |
| | 109266 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107203 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109267 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107204 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109268 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107205 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109269 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 109270 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 107206 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109271 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107207 | .unused, | 109272 | .{ .type = .f32, .kind = .mem }, |
| 107208 | .unused, | | |
| 107209 | .unused, | | |
| 107210 | .unused, | 109273 | .unused, |
| 107211 | .unused, | 109274 | .unused, |
| 107212 | .unused, | 109275 | .unused, |
| ... | @@ -107215,26 +109278,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107215,26 +109278,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107215 | .dst_temps = .{ .mem, .unused }, | 109278 | .dst_temps = .{ .mem, .unused }, |
| 107216 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109279 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107217 | .each = .{ .once = &.{ | 109280 | .each = .{ .once = &.{ |
| 107218 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109281 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107219 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109282 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107220 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109283 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 107221 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 109284 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107222 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 109285 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 109286 | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, |
| | 109287 | .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ }, |
| | 109288 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 109289 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 109290 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 107223 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109291 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107224 | } }, | 109292 | } }, |
| 107225 | }, .{ | 109293 | }, .{ |
| 107226 | .required_features = .{ .avx, null, null, null }, | 109294 | .required_features = .{ .avx, null, null, null }, |
| 107227 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109295 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 107228 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109296 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107229 | .patterns = &.{ | 109297 | .patterns = &.{ |
| 107230 | .{ .src = .{ .to_mem, .none, .none } }, | 109298 | .{ .src = .{ .mem, .none, .none } }, |
| | 109299 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107231 | }, | 109300 | }, |
| 107232 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107233 | .extra_temps = .{ | 109301 | .extra_temps = .{ |
| 107234 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109302 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107235 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109303 | .unused, |
| 107236 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109304 | .unused, |
| 107237 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109305 | .unused, |
| 107238 | .unused, | 109306 | .unused, |
| 107239 | .unused, | 109307 | .unused, |
| 107240 | .unused, | 109308 | .unused, |
| ... | @@ -107243,29 +109311,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107243,29 +109311,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107243 | .unused, | 109311 | .unused, |
| 107244 | .unused, | 109312 | .unused, |
| 107245 | }, | 109313 | }, |
| 107246 | .dst_temps = .{ .mem, .unused }, | 109314 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107247 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107248 | .each = .{ .once = &.{ | 109315 | .each = .{ .once = &.{ |
| 107249 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109316 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 107250 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109317 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 107251 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109318 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 107252 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | | |
| 107253 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 107254 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 107255 | } }, | 109319 | } }, |
| 107256 | }, .{ | 109320 | }, .{ |
| 107257 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, | 109321 | .required_features = .{ .sse, null, null, null }, |
| 107258 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109322 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 107259 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109323 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107260 | .patterns = &.{ | 109324 | .patterns = &.{ |
| 107261 | .{ .src = .{ .to_mem, .none, .none } }, | 109325 | .{ .src = .{ .mem, .none, .none } }, |
| | 109326 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107262 | }, | 109327 | }, |
| 107263 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107264 | .extra_temps = .{ | 109328 | .extra_temps = .{ |
| 107265 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109329 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107266 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109330 | .unused, |
| 107267 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109331 | .unused, |
| 107268 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109332 | .unused, |
| 107269 | .unused, | 109333 | .unused, |
| 107270 | .unused, | 109334 | .unused, |
| 107271 | .unused, | 109335 | .unused, |
| ... | @@ -107274,29 +109338,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107274,29 +109338,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107274 | .unused, | 109338 | .unused, |
| 107275 | .unused, | 109339 | .unused, |
| 107276 | }, | 109340 | }, |
| 107277 | .dst_temps = .{ .mem, .unused }, | 109341 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107278 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107279 | .each = .{ .once = &.{ | 109342 | .each = .{ .once = &.{ |
| 107280 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109343 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 107281 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109344 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 107282 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109345 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 107283 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | | |
| 107284 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 107285 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 107286 | } }, | 109346 | } }, |
| 107287 | }, .{ | 109347 | }, .{ |
| 107288 | .required_features = .{ .sse4_1, null, null, null }, | 109348 | .required_features = .{ .avx, null, null, null }, |
| 107289 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109349 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 107290 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109350 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107291 | .patterns = &.{ | 109351 | .patterns = &.{ |
| 107292 | .{ .src = .{ .to_mem, .none, .none } }, | 109352 | .{ .src = .{ .mem, .none, .none } }, |
| | 109353 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107293 | }, | 109354 | }, |
| 107294 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107295 | .extra_temps = .{ | 109355 | .extra_temps = .{ |
| 107296 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109356 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107297 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109357 | .unused, |
| 107298 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109358 | .unused, |
| 107299 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109359 | .unused, |
| 107300 | .unused, | 109360 | .unused, |
| 107301 | .unused, | 109361 | .unused, |
| 107302 | .unused, | 109362 | .unused, |
| ... | @@ -107305,29 +109365,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107305,29 +109365,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107305 | .unused, | 109365 | .unused, |
| 107306 | .unused, | 109366 | .unused, |
| 107307 | }, | 109367 | }, |
| 107308 | .dst_temps = .{ .mem, .unused }, | 109368 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107309 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107310 | .each = .{ .once = &.{ | 109369 | .each = .{ .once = &.{ |
| 107311 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109370 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 107312 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109371 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 107313 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109372 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 107314 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | | |
| 107315 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 107316 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 107317 | } }, | 109373 | } }, |
| 107318 | }, .{ | 109374 | }, .{ |
| 107319 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 109375 | .required_features = .{ .sse, null, null, null }, |
| 107320 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109376 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 107321 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109377 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107322 | .patterns = &.{ | 109378 | .patterns = &.{ |
| 107323 | .{ .src = .{ .to_mem, .none, .none } }, | 109379 | .{ .src = .{ .mem, .none, .none } }, |
| | 109380 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107324 | }, | 109381 | }, |
| 107325 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107326 | .extra_temps = .{ | 109382 | .extra_temps = .{ |
| 107327 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109383 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107328 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109384 | .unused, |
| 107329 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109385 | .unused, |
| 107330 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109386 | .unused, |
| 107331 | .unused, | 109387 | .unused, |
| 107332 | .unused, | 109388 | .unused, |
| 107333 | .unused, | 109389 | .unused, |
| ... | @@ -107336,30 +109392,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107336,30 +109392,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107336 | .unused, | 109392 | .unused, |
| 107337 | .unused, | 109393 | .unused, |
| 107338 | }, | 109394 | }, |
| 107339 | .dst_temps = .{ .mem, .unused }, | 109395 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107340 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107341 | .each = .{ .once = &.{ | 109396 | .each = .{ .once = &.{ |
| 107342 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109397 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 107343 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109398 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 107344 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109399 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 107345 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | | |
| 107346 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 107347 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 107348 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 107349 | } }, | 109400 | } }, |
| 107350 | }, .{ | 109401 | }, .{ |
| 107351 | .required_features = .{ .sse2, null, null, null }, | 109402 | .required_features = .{ .avx, null, null, null }, |
| 107352 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109403 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 107353 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109404 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107354 | .patterns = &.{ | 109405 | .patterns = &.{ |
| 107355 | .{ .src = .{ .to_mem, .none, .none } }, | 109406 | .{ .src = .{ .mem, .none, .none } }, |
| | 109407 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107356 | }, | 109408 | }, |
| 107357 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107358 | .extra_temps = .{ | 109409 | .extra_temps = .{ |
| 107359 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109410 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107360 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109411 | .unused, |
| 107361 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109412 | .unused, |
| 107362 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109413 | .unused, |
| 107363 | .unused, | 109414 | .unused, |
| 107364 | .unused, | 109415 | .unused, |
| 107365 | .unused, | 109416 | .unused, |
| ... | @@ -107368,31 +109419,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107368,31 +109419,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107368 | .unused, | 109419 | .unused, |
| 107369 | .unused, | 109420 | .unused, |
| 107370 | }, | 109421 | }, |
| 107371 | .dst_temps = .{ .mem, .unused }, | 109422 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107372 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107373 | .each = .{ .once = &.{ | 109423 | .each = .{ .once = &.{ |
| 107374 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109424 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 107375 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109425 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 107376 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109426 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 107377 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | | |
| 107378 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 107379 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 107380 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 107381 | } }, | 109427 | } }, |
| 107382 | }, .{ | 109428 | }, .{ |
| 107383 | .required_features = .{ .sse, .slow_incdec, null, null }, | 109429 | .required_features = .{ .sse, null, null, null }, |
| 107384 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109430 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 107385 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109431 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107386 | .patterns = &.{ | 109432 | .patterns = &.{ |
| 107387 | .{ .src = .{ .to_mem, .none, .none } }, | 109433 | .{ .src = .{ .mem, .none, .none } }, |
| | 109434 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107388 | }, | 109435 | }, |
| 107389 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107390 | .extra_temps = .{ | 109436 | .extra_temps = .{ |
| 107391 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109437 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107392 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109438 | .unused, |
| 107393 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109439 | .unused, |
| 107394 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109440 | .unused, |
| 107395 | .{ .type = .f32, .kind = .mem }, | 109441 | .unused, |
| 107396 | .unused, | 109442 | .unused, |
| 107397 | .unused, | 109443 | .unused, |
| 107398 | .unused, | 109444 | .unused, |
| ... | @@ -107400,32 +109446,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107400,32 +109446,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107400 | .unused, | 109446 | .unused, |
| 107401 | .unused, | 109447 | .unused, |
| 107402 | }, | 109448 | }, |
| 107403 | .dst_temps = .{ .mem, .unused }, | 109449 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107404 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107405 | .each = .{ .once = &.{ | 109450 | .each = .{ .once = &.{ |
| 107406 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109451 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 107407 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109452 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 107408 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109453 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 107409 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | 109454 | } }, |
| 107410 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | 109455 | }, .{ |
| 107411 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 109456 | .required_features = .{ .avx, null, null, null }, |
| 107412 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 109457 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 107413 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109458 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 109459 | .patterns = &.{ |
| | 109460 | .{ .src = .{ .mem, .none, .none } }, |
| | 109461 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 109462 | }, |
| | 109463 | .extra_temps = .{ |
| | 109464 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| | 109465 | .unused, |
| | 109466 | .unused, |
| | 109467 | .unused, |
| | 109468 | .unused, |
| | 109469 | .unused, |
| | 109470 | .unused, |
| | 109471 | .unused, |
| | 109472 | .unused, |
| | 109473 | .unused, |
| | 109474 | .unused, |
| | 109475 | }, |
| | 109476 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 109477 | .each = .{ .once = &.{ |
| | 109478 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| | 109479 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 109480 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 107414 | } }, | 109481 | } }, |
| 107415 | }, .{ | 109482 | }, .{ |
| 107416 | .required_features = .{ .sse, null, null, null }, | 109483 | .required_features = .{ .sse, null, null, null }, |
| 107417 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109484 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 107418 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109485 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107419 | .patterns = &.{ | 109486 | .patterns = &.{ |
| 107420 | .{ .src = .{ .to_mem, .none, .none } }, | 109487 | .{ .src = .{ .mem, .none, .none } }, |
| | 109488 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107421 | }, | 109489 | }, |
| 107422 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107423 | .extra_temps = .{ | 109490 | .extra_temps = .{ |
| 107424 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109491 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107425 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 109492 | .unused, |
| 107426 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 109493 | .unused, |
| 107427 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109494 | .unused, |
| 107428 | .{ .type = .f32, .kind = .mem }, | 109495 | .unused, |
| 107429 | .unused, | 109496 | .unused, |
| 107430 | .unused, | 109497 | .unused, |
| 107431 | .unused, | 109498 | .unused, |
| ... | @@ -107433,31 +109500,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107433,31 +109500,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107433 | .unused, | 109500 | .unused, |
| 107434 | .unused, | 109501 | .unused, |
| 107435 | }, | 109502 | }, |
| 107436 | .dst_temps = .{ .mem, .unused }, | 109503 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107437 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107438 | .each = .{ .once = &.{ | 109504 | .each = .{ .once = &.{ |
| 107439 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109505 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 107440 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109506 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 107441 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109507 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 107442 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | | |
| 107443 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | | |
| 107444 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 107445 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 107446 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 107447 | } }, | 109508 | } }, |
| 107448 | }, .{ | 109509 | }, .{ |
| 107449 | .required_features = .{ .avx, .slow_incdec, null, null }, | 109510 | .required_features = .{ .avx, null, null, null }, |
| 107450 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109511 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 107451 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109512 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107452 | .patterns = &.{ | 109513 | .patterns = &.{ |
| 107453 | .{ .src = .{ .to_mem, .none, .none } }, | 109514 | .{ .src = .{ .mem, .none, .none } }, |
| | 109515 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 109516 | }, |
| | 109517 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 109518 | .each = .{ .once = &.{ |
| | 109519 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 109520 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, |
| | 109521 | } }, |
| | 109522 | }, .{ |
| | 109523 | .required_features = .{ .sse, null, null, null }, |
| | 109524 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| | 109525 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 109526 | .patterns = &.{ |
| | 109527 | .{ .src = .{ .mem, .none, .none } }, |
| | 109528 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 109529 | }, |
| | 109530 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 109531 | .each = .{ .once = &.{ |
| | 109532 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| | 109533 | .{ ._, ._ss, .cvtsi2, .dst0x, .src0d, ._, ._ }, |
| | 109534 | } }, |
| | 109535 | }, .{ |
| | 109536 | .required_features = .{ .avx, null, null, null }, |
| | 109537 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| | 109538 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 109539 | .patterns = &.{ |
| | 109540 | .{ .src = .{ .mem, .none, .none } }, |
| | 109541 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107454 | }, | 109542 | }, |
| 107455 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107456 | .extra_temps = .{ | 109543 | .extra_temps = .{ |
| 107457 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109544 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107458 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109545 | .unused, |
| 107459 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109546 | .unused, |
| 107460 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109547 | .unused, |
| 107461 | .unused, | 109548 | .unused, |
| 107462 | .unused, | 109549 | .unused, |
| 107463 | .unused, | 109550 | .unused, |
| ... | @@ -107466,29 +109553,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107466,29 +109553,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107466 | .unused, | 109553 | .unused, |
| 107467 | .unused, | 109554 | .unused, |
| 107468 | }, | 109555 | }, |
| 107469 | .dst_temps = .{ .mem, .unused }, | 109556 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107470 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107471 | .each = .{ .once = &.{ | 109557 | .each = .{ .once = &.{ |
| 107472 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109558 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 107473 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109559 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 107474 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109560 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, |
| 107475 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | | |
| 107476 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 107477 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 107478 | } }, | 109561 | } }, |
| 107479 | }, .{ | 109562 | }, .{ |
| 107480 | .required_features = .{ .avx, null, null, null }, | 109563 | .required_features = .{ .sse, null, null, null }, |
| 107481 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109564 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 107482 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109565 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107483 | .patterns = &.{ | 109566 | .patterns = &.{ |
| 107484 | .{ .src = .{ .to_mem, .none, .none } }, | 109567 | .{ .src = .{ .mem, .none, .none } }, |
| | 109568 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 107485 | }, | 109569 | }, |
| 107486 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107487 | .extra_temps = .{ | 109570 | .extra_temps = .{ |
| 107488 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109571 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 107489 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109572 | .unused, |
| 107490 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109573 | .unused, |
| 107491 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109574 | .unused, |
| 107492 | .unused, | 109575 | .unused, |
| 107493 | .unused, | 109576 | .unused, |
| 107494 | .unused, | 109577 | .unused, |
| ... | @@ -107497,29 +109580,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107497,29 +109580,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107497 | .unused, | 109580 | .unused, |
| 107498 | .unused, | 109581 | .unused, |
| 107499 | }, | 109582 | }, |
| 107500 | .dst_temps = .{ .mem, .unused }, | 109583 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107501 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 107502 | .each = .{ .once = &.{ | 109584 | .each = .{ .once = &.{ |
| 107503 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109585 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 107504 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109586 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 107505 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109587 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0q, ._, ._ }, |
| 107506 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | | |
| 107507 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 107508 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 107509 | } }, | 109588 | } }, |
| 107510 | }, .{ | 109589 | }, .{ |
| 107511 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, | 109590 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 107512 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109591 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 107513 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109592 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107514 | .patterns = &.{ | 109593 | .patterns = &.{ |
| 107515 | .{ .src = .{ .to_mem, .none, .none } }, | 109594 | .{ .src = .{ .mem, .none, .none } }, |
| | 109595 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 109596 | }, |
| | 109597 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 109598 | .each = .{ .once = &.{ |
| | 109599 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| | 109600 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| | 109601 | } }, |
| | 109602 | }, .{ |
| | 109603 | .required_features = .{ .@"64bit", .sse, null, null }, |
| | 109604 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| | 109605 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 109606 | .patterns = &.{ |
| | 109607 | .{ .src = .{ .mem, .none, .none } }, |
| | 109608 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 109609 | }, |
| | 109610 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 109611 | .each = .{ .once = &.{ |
| | 109612 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| | 109613 | .{ ._, ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, |
| | 109614 | } }, |
| | 109615 | }, .{ |
| | 109616 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 109617 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| | 109618 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| | 109619 | .patterns = &.{ |
| | 109620 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 107516 | }, | 109621 | }, |
| 107517 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107518 | .extra_temps = .{ | 109622 | .extra_temps = .{ |
| 107519 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109623 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 107520 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109624 | .unused, |
| 107521 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109625 | .unused, |
| 107522 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109626 | .unused, |
| 107523 | .unused, | 109627 | .unused, |
| 107524 | .unused, | 109628 | .unused, |
| 107525 | .unused, | 109629 | .unused, |
| ... | @@ -107528,29 +109632,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107528,29 +109632,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107528 | .unused, | 109632 | .unused, |
| 107529 | .unused, | 109633 | .unused, |
| 107530 | }, | 109634 | }, |
| 107531 | .dst_temps = .{ .mem, .unused }, | 109635 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107532 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109636 | .clobbers = .{ .eflags = true }, |
| 107533 | .each = .{ .once = &.{ | 109637 | .each = .{ .once = &.{ |
| 107534 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109638 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 107535 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109639 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 107536 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109640 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 107537 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 109641 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 107538 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 109642 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 107539 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109643 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| | 109644 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, |
| | 109645 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| | 109646 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .dst0d, ._ }, |
| | 109647 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 109648 | .{ .@"1:", .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| 107540 | } }, | 109649 | } }, |
| 107541 | }, .{ | 109650 | }, .{ |
| 107542 | .required_features = .{ .sse4_1, null, null, null }, | 109651 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107543 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109652 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 107544 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109653 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107545 | .patterns = &.{ | 109654 | .patterns = &.{ |
| 107546 | .{ .src = .{ .to_mem, .none, .none } }, | 109655 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 107547 | }, | 109656 | }, |
| 107548 | .call_frame = .{ .alignment = .@"16" }, | | |
| 107549 | .extra_temps = .{ | 109657 | .extra_temps = .{ |
| 107550 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109658 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 107551 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109659 | .unused, |
| 107552 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109660 | .unused, |
| 107553 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109661 | .unused, |
| 107554 | .unused, | 109662 | .unused, |
| 107555 | .unused, | 109663 | .unused, |
| 107556 | .unused, | 109664 | .unused, |
| ... | @@ -107559,29 +109667,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107559,29 +109667,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107559 | .unused, | 109667 | .unused, |
| 107560 | .unused, | 109668 | .unused, |
| 107561 | }, | 109669 | }, |
| 107562 | .dst_temps = .{ .mem, .unused }, | 109670 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107563 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109671 | .clobbers = .{ .eflags = true }, |
| 107564 | .each = .{ .once = &.{ | 109672 | .each = .{ .once = &.{ |
| 107565 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109673 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 107566 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109674 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 107567 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109675 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 107568 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 109676 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 107569 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 109677 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 107570 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 109678 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| | 109679 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, |
| | 109680 | .{ ._, ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, |
| | 109681 | .{ ._, ._ss, .add, .dst0x, .dst0d, ._, ._ }, |
| | 109682 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 109683 | .{ .@"1:", ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, |
| 107571 | } }, | 109684 | } }, |
| 107572 | }, .{ | 109685 | }, .{ |
| 107573 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 109686 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107574 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109687 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 107575 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109688 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107576 | .patterns = &.{ | 109689 | .patterns = &.{ |
| 107577 | .{ .src = .{ .to_mem, .none, .none } }, | 109690 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 107578 | }, | 109691 | }, |
| 107579 | .call_frame = .{ .alignment = .@"16" }, | 109692 | .call_frame = .{ .alignment = .@"16" }, |
| 107580 | .extra_temps = .{ | 109693 | .extra_temps = .{ |
| 107581 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109694 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, |
| 107582 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109695 | .unused, |
| 107583 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109696 | .unused, |
| 107584 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109697 | .unused, |
| 107585 | .unused, | 109698 | .unused, |
| 107586 | .unused, | 109699 | .unused, |
| 107587 | .unused, | 109700 | .unused, |
| ... | @@ -107590,30 +109703,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107590,30 +109703,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107590 | .unused, | 109703 | .unused, |
| 107591 | .unused, | 109704 | .unused, |
| 107592 | }, | 109705 | }, |
| 107593 | .dst_temps = .{ .mem, .unused }, | 109706 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107594 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109707 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107595 | .each = .{ .once = &.{ | 109708 | .each = .{ .once = &.{ |
| 107596 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109709 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 107597 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 107598 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 107599 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | | |
| 107600 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 107601 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 107602 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 107603 | } }, | 109710 | } }, |
| 107604 | }, .{ | 109711 | }, .{ |
| 107605 | .required_features = .{ .sse2, null, null, null }, | 109712 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107606 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109713 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 107607 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109714 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107608 | .patterns = &.{ | 109715 | .patterns = &.{ |
| 107609 | .{ .src = .{ .to_mem, .none, .none } }, | 109716 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 107610 | }, | 109717 | }, |
| 107611 | .call_frame = .{ .alignment = .@"16" }, | 109718 | .call_frame = .{ .alignment = .@"16" }, |
| 107612 | .extra_temps = .{ | 109719 | .extra_temps = .{ |
| 107613 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109720 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, |
| 107614 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109721 | .unused, |
| 107615 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109722 | .unused, |
| 107616 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109723 | .unused, |
| 107617 | .unused, | 109724 | .unused, |
| 107618 | .unused, | 109725 | .unused, |
| 107619 | .unused, | 109726 | .unused, |
| ... | @@ -107622,31 +109729,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107622,31 +109729,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107622 | .unused, | 109729 | .unused, |
| 107623 | .unused, | 109730 | .unused, |
| 107624 | }, | 109731 | }, |
| 107625 | .dst_temps = .{ .mem, .unused }, | 109732 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107626 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109733 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107627 | .each = .{ .once = &.{ | 109734 | .each = .{ .once = &.{ |
| 107628 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109735 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 107629 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 107630 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 107631 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | | |
| 107632 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 107633 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 107634 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 107635 | } }, | 109736 | } }, |
| 107636 | }, .{ | 109737 | }, .{ |
| 107637 | .required_features = .{ .sse, .slow_incdec, null, null }, | 109738 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107638 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109739 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107639 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109740 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107640 | .patterns = &.{ | 109741 | .patterns = &.{ |
| 107641 | .{ .src = .{ .to_mem, .none, .none } }, | 109742 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107642 | }, | 109743 | }, |
| 107643 | .call_frame = .{ .alignment = .@"16" }, | 109744 | .call_frame = .{ .alignment = .@"16" }, |
| 107644 | .extra_temps = .{ | 109745 | .extra_temps = .{ |
| 107645 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109746 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107646 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109747 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107647 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109748 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, |
| 107648 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109749 | .unused, |
| 107649 | .{ .type = .f32, .kind = .mem }, | 109750 | .unused, |
| 107650 | .unused, | 109751 | .unused, |
| 107651 | .unused, | 109752 | .unused, |
| 107652 | .unused, | 109753 | .unused, |
| ... | @@ -107654,32 +109755,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107654,32 +109755,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107654 | .unused, | 109755 | .unused, |
| 107655 | .unused, | 109756 | .unused, |
| 107656 | }, | 109757 | }, |
| 107657 | .dst_temps = .{ .mem, .unused }, | 109758 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107658 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109759 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107659 | .each = .{ .once = &.{ | 109760 | .each = .{ .once = &.{ |
| 107660 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109761 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107661 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109762 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107662 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109763 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107663 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | | |
| 107664 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | | |
| 107665 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 107666 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 107667 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 107668 | } }, | 109764 | } }, |
| 107669 | }, .{ | 109765 | }, .{ |
| 107670 | .required_features = .{ .sse, null, null, null }, | 109766 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107671 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 109767 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107672 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 109768 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107673 | .patterns = &.{ | 109769 | .patterns = &.{ |
| 107674 | .{ .src = .{ .to_mem, .none, .none } }, | 109770 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107675 | }, | 109771 | }, |
| 107676 | .call_frame = .{ .alignment = .@"16" }, | 109772 | .call_frame = .{ .alignment = .@"16" }, |
| 107677 | .extra_temps = .{ | 109773 | .extra_temps = .{ |
| 107678 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 109774 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107679 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 109775 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107680 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 109776 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, |
| 107681 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 109777 | .unused, |
| 107682 | .{ .type = .f32, .kind = .mem }, | 109778 | .unused, |
| 107683 | .unused, | 109779 | .unused, |
| 107684 | .unused, | 109780 | .unused, |
| 107685 | .unused, | 109781 | .unused, |
| ... | @@ -107687,78 +109783,95 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107687,78 +109783,95 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107687 | .unused, | 109783 | .unused, |
| 107688 | .unused, | 109784 | .unused, |
| 107689 | }, | 109785 | }, |
| 107690 | .dst_temps = .{ .mem, .unused }, | 109786 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107691 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 109787 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107692 | .each = .{ .once = &.{ | 109788 | .each = .{ .once = &.{ |
| 107693 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109789 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107694 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 109790 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107695 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 109791 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107696 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | | |
| 107697 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | | |
| 107698 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 107699 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 107700 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 107701 | } }, | 109792 | } }, |
| 107702 | }, .{ | 109793 | }, .{ |
| 107703 | .required_features = .{ .f16c, null, null, null }, | 109794 | .required_features = .{ .avx, null, null, null }, |
| 107704 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 109795 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107705 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109796 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107706 | .patterns = &.{ | 109797 | .patterns = &.{ |
| 107707 | .{ .src = .{ .mem, .none, .none } }, | 109798 | .{ .src = .{ .mem, .none, .none } }, |
| 107708 | .{ .src = .{ .to_sse, .none, .none } }, | 109799 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107709 | }, | 109800 | }, |
| 107710 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 109801 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107711 | .each = .{ .once = &.{ | 109802 | .each = .{ .once = &.{ |
| 107712 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 109803 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 107713 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 109804 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107714 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | | |
| 107715 | } }, | 109805 | } }, |
| 107716 | }, .{ | 109806 | }, .{ |
| 107717 | .required_features = .{ .f16c, .avx2, null, null }, | 109807 | .required_features = .{ .sse4_1, null, null, null }, |
| 107718 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 109808 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107719 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 109809 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107720 | .patterns = &.{ | 109810 | .patterns = &.{ |
| 107721 | .{ .src = .{ .mem, .none, .none } }, | 109811 | .{ .src = .{ .mem, .none, .none } }, |
| 107722 | .{ .src = .{ .to_sse, .none, .none } }, | 109812 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107723 | }, | 109813 | }, |
| 107724 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 109814 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107725 | .each = .{ .once = &.{ | 109815 | .each = .{ .once = &.{ |
| 107726 | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, | 109816 | .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| | 109817 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| | 109818 | } }, |
| | 109819 | }, .{ |
| | 109820 | .required_features = .{ .avx2, null, null, null }, |
| | 109821 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| | 109822 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| | 109823 | .patterns = &.{ |
| | 109824 | .{ .src = .{ .mem, .none, .none } }, |
| | 109825 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 109826 | }, |
| | 109827 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 109828 | .each = .{ .once = &.{ |
| | 109829 | .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, |
| 107727 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | 109830 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 107728 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, | | |
| 107729 | } }, | 109831 | } }, |
| 107730 | }, .{ | 109832 | }, .{ |
| 107731 | .required_features = .{ .f16c, null, null, null }, | 109833 | .required_features = .{ .avx, null, null, null }, |
| 107732 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 109834 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107733 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109835 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107734 | .patterns = &.{ | 109836 | .patterns = &.{ |
| 107735 | .{ .src = .{ .mem, .none, .none } }, | 109837 | .{ .src = .{ .mem, .none, .none } }, |
| 107736 | .{ .src = .{ .to_sse, .none, .none } }, | 109838 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107737 | }, | 109839 | }, |
| 107738 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 109840 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107739 | .each = .{ .once = &.{ | 109841 | .each = .{ .once = &.{ |
| 107740 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 109842 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 107741 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 109843 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107742 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | | |
| 107743 | } }, | 109844 | } }, |
| 107744 | }, .{ | 109845 | }, .{ |
| 107745 | .required_features = .{ .f16c, .avx2, null, null }, | 109846 | .required_features = .{ .sse4_1, null, null, null }, |
| 107746 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 109847 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107747 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 109848 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107748 | .patterns = &.{ | 109849 | .patterns = &.{ |
| 107749 | .{ .src = .{ .mem, .none, .none } }, | 109850 | .{ .src = .{ .mem, .none, .none } }, |
| 107750 | .{ .src = .{ .to_sse, .none, .none } }, | 109851 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107751 | }, | 109852 | }, |
| 107752 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 109853 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107753 | .each = .{ .once = &.{ | 109854 | .each = .{ .once = &.{ |
| 107754 | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, | 109855 | .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| | 109856 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| | 109857 | } }, |
| | 109858 | }, .{ |
| | 109859 | .required_features = .{ .avx2, null, null, null }, |
| | 109860 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| | 109861 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| | 109862 | .patterns = &.{ |
| | 109863 | .{ .src = .{ .mem, .none, .none } }, |
| | 109864 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 109865 | }, |
| | 109866 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 109867 | .each = .{ .once = &.{ |
| | 109868 | .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, |
| 107755 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | 109869 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 107756 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, | | |
| 107757 | } }, | 109870 | } }, |
| 107758 | }, .{ | 109871 | }, .{ |
| 107759 | .required_features = .{ .f16c, .avx2, null, null }, | 109872 | .required_features = .{ .avx2, null, null, null }, |
| 107760 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 109873 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107761 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 109874 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 107762 | .patterns = &.{ | 109875 | .patterns = &.{ |
| 107763 | .{ .src = .{ .to_mem, .none, .none } }, | 109876 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107764 | }, | 109877 | }, |
| ... | @@ -107779,16 +109892,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107779,16 +109892,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107779 | .clobbers = .{ .eflags = true }, | 109892 | .clobbers = .{ .eflags = true }, |
| 107780 | .each = .{ .once = &.{ | 109893 | .each = .{ .once = &.{ |
| 107781 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109894 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107782 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 109895 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107783 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 109896 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107784 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, | 109897 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 107785 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 109898 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107786 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109899 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107787 | } }, | 109900 | } }, |
| 107788 | }, .{ | 109901 | }, .{ |
| 107789 | .required_features = .{ .f16c, null, null, null }, | 109902 | .required_features = .{ .avx, null, null, null }, |
| 107790 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 109903 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107791 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109904 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107792 | .patterns = &.{ | 109905 | .patterns = &.{ |
| 107793 | .{ .src = .{ .to_mem, .none, .none } }, | 109906 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107794 | }, | 109907 | }, |
| ... | @@ -107809,16 +109922,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107809,16 +109922,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107809 | .clobbers = .{ .eflags = true }, | 109922 | .clobbers = .{ .eflags = true }, |
| 107810 | .each = .{ .once = &.{ | 109923 | .each = .{ .once = &.{ |
| 107811 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109924 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107812 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 109925 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107813 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 109926 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107814 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, | 109927 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 107815 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 109928 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107816 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109929 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107817 | } }, | 109930 | } }, |
| 107818 | }, .{ | 109931 | }, .{ |
| 107819 | .required_features = .{ .f16c, .avx2, null, null }, | 109932 | .required_features = .{ .sse4_1, null, null, null }, |
| 107820 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 109933 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107821 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 109934 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 109935 | .patterns = &.{ |
| | 109936 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 109937 | }, |
| | 109938 | .extra_temps = .{ |
| | 109939 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 109940 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| | 109941 | .unused, |
| | 109942 | .unused, |
| | 109943 | .unused, |
| | 109944 | .unused, |
| | 109945 | .unused, |
| | 109946 | .unused, |
| | 109947 | .unused, |
| | 109948 | .unused, |
| | 109949 | .unused, |
| | 109950 | }, |
| | 109951 | .dst_temps = .{ .mem, .unused }, |
| | 109952 | .clobbers = .{ .eflags = true }, |
| | 109953 | .each = .{ .once = &.{ |
| | 109954 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 109955 | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 109956 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| | 109957 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 109958 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 109959 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 109960 | } }, |
| | 109961 | }, .{ |
| | 109962 | .required_features = .{ .avx2, null, null, null }, |
| | 109963 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| | 109964 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 107822 | .patterns = &.{ | 109965 | .patterns = &.{ |
| 107823 | .{ .src = .{ .to_mem, .none, .none } }, | 109966 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107824 | }, | 109967 | }, |
| ... | @@ -107839,16 +109982,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107839,16 +109982,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107839 | .clobbers = .{ .eflags = true }, | 109982 | .clobbers = .{ .eflags = true }, |
| 107840 | .each = .{ .once = &.{ | 109983 | .each = .{ .once = &.{ |
| 107841 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 109984 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107842 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 109985 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107843 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 109986 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107844 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, | 109987 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 107845 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 109988 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107846 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 109989 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107847 | } }, | 109990 | } }, |
| 107848 | }, .{ | 109991 | }, .{ |
| 107849 | .required_features = .{ .f16c, null, null, null }, | 109992 | .required_features = .{ .avx, null, null, null }, |
| 107850 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 109993 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107851 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 109994 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107852 | .patterns = &.{ | 109995 | .patterns = &.{ |
| 107853 | .{ .src = .{ .to_mem, .none, .none } }, | 109996 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107854 | }, | 109997 | }, |
| ... | @@ -107869,16 +110012,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107869,16 +110012,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107869 | .clobbers = .{ .eflags = true }, | 110012 | .clobbers = .{ .eflags = true }, |
| 107870 | .each = .{ .once = &.{ | 110013 | .each = .{ .once = &.{ |
| 107871 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110014 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107872 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 110015 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107873 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 110016 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107874 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, | 110017 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 107875 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 110018 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107876 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110019 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107877 | } }, | 110020 | } }, |
| 107878 | }, .{ | 110021 | }, .{ |
| 107879 | .required_features = .{ .avx, null, null, null }, | 110022 | .required_features = .{ .sse4_1, null, null, null }, |
| 107880 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110023 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107881 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110024 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 110025 | .patterns = &.{ |
| | 110026 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 110027 | }, |
| | 110028 | .extra_temps = .{ |
| | 110029 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 110030 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| | 110031 | .unused, |
| | 110032 | .unused, |
| | 110033 | .unused, |
| | 110034 | .unused, |
| | 110035 | .unused, |
| | 110036 | .unused, |
| | 110037 | .unused, |
| | 110038 | .unused, |
| | 110039 | .unused, |
| | 110040 | }, |
| | 110041 | .dst_temps = .{ .mem, .unused }, |
| | 110042 | .clobbers = .{ .eflags = true }, |
| | 110043 | .each = .{ .once = &.{ |
| | 110044 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 110045 | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 110046 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| | 110047 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 110048 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 110049 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 110050 | } }, |
| | 110051 | }, .{ |
| | 110052 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| | 110053 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| | 110054 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 107882 | .patterns = &.{ | 110055 | .patterns = &.{ |
| 107883 | .{ .src = .{ .to_mem, .none, .none } }, | 110056 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107884 | }, | 110057 | }, |
| ... | @@ -107886,8 +110059,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107886,8 +110059,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107886 | .extra_temps = .{ | 110059 | .extra_temps = .{ |
| 107887 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110060 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107888 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110061 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107889 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110062 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 107890 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110063 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 107891 | .unused, | 110064 | .unused, |
| 107892 | .unused, | 110065 | .unused, |
| 107893 | .unused, | 110066 | .unused, |
| ... | @@ -107900,16 +110073,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107900,16 +110073,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107900 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110073 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107901 | .each = .{ .once = &.{ | 110074 | .each = .{ .once = &.{ |
| 107902 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110075 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107903 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110076 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107904 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110077 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107905 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110078 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 107906 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110079 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107907 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110080 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107908 | } }, | 110081 | } }, |
| 107909 | }, .{ | 110082 | }, .{ |
| 107910 | .required_features = .{ .sse4_1, null, null, null }, | 110083 | .required_features = .{ .avx, null, null, null }, |
| 107911 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110084 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107912 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110085 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 107913 | .patterns = &.{ | 110086 | .patterns = &.{ |
| 107914 | .{ .src = .{ .to_mem, .none, .none } }, | 110087 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107915 | }, | 110088 | }, |
| ... | @@ -107917,8 +110090,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107917,8 +110090,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107917 | .extra_temps = .{ | 110090 | .extra_temps = .{ |
| 107918 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110091 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107919 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110092 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107920 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110093 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 107921 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110094 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 107922 | .unused, | 110095 | .unused, |
| 107923 | .unused, | 110096 | .unused, |
| 107924 | .unused, | 110097 | .unused, |
| ... | @@ -107931,16 +110104,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107931,16 +110104,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107931 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110104 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107932 | .each = .{ .once = &.{ | 110105 | .each = .{ .once = &.{ |
| 107933 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110106 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107934 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110107 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107935 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110108 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107936 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110109 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 107937 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110110 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110111 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 107939 | } }, | 110112 | } }, |
| 107940 | }, .{ | 110113 | }, .{ |
| 107941 | .required_features = .{ .sse2, null, null, null }, | 110114 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 107942 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110115 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107943 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110116 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 107944 | .patterns = &.{ | 110117 | .patterns = &.{ |
| 107945 | .{ .src = .{ .to_mem, .none, .none } }, | 110118 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107946 | }, | 110119 | }, |
| ... | @@ -107948,8 +110121,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107948,8 +110121,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107948 | .extra_temps = .{ | 110121 | .extra_temps = .{ |
| 107949 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110122 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107950 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110123 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107951 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110124 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 107952 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110125 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 107953 | .unused, | 110126 | .unused, |
| 107954 | .unused, | 110127 | .unused, |
| 107955 | .unused, | 110128 | .unused, |
| ... | @@ -107962,17 +110135,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107962,17 +110135,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107962 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110135 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107963 | .each = .{ .once = &.{ | 110136 | .each = .{ .once = &.{ |
| 107964 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110137 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107965 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110138 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107966 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110139 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107967 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | 110140 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 107968 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 110141 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107969 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 107970 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110142 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107971 | } }, | 110143 | } }, |
| 107972 | }, .{ | 110144 | }, .{ |
| 107973 | .required_features = .{ .sse, null, null, null }, | 110145 | .required_features = .{ .sse, null, null, null }, |
| 107974 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110146 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107975 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110147 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 107976 | .patterns = &.{ | 110148 | .patterns = &.{ |
| 107977 | .{ .src = .{ .to_mem, .none, .none } }, | 110149 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107978 | }, | 110150 | }, |
| ... | @@ -107980,9 +110152,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107980,9 +110152,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107980 | .extra_temps = .{ | 110152 | .extra_temps = .{ |
| 107981 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110153 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107982 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110154 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107983 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110155 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 107984 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110156 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 107985 | .{ .type = .f32, .kind = .mem }, | 110157 | .unused, |
| 107986 | .unused, | 110158 | .unused, |
| 107987 | .unused, | 110159 | .unused, |
| 107988 | .unused, | 110160 | .unused, |
| ... | @@ -107994,18 +110166,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -107994,18 +110166,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107994 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110166 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107995 | .each = .{ .once = &.{ | 110167 | .each = .{ .once = &.{ |
| 107996 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110168 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107997 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110169 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107998 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110170 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107999 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | 110171 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108000 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | 110172 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108001 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 110173 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108002 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108003 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 108004 | } }, | 110174 | } }, |
| 108005 | }, .{ | 110175 | }, .{ |
| 108006 | .required_features = .{ .avx, null, null, null }, | 110176 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 108007 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110177 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 108008 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110178 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108009 | .patterns = &.{ | 110179 | .patterns = &.{ |
| 108010 | .{ .src = .{ .to_mem, .none, .none } }, | 110180 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108011 | }, | 110181 | }, |
| ... | @@ -108013,8 +110183,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108013,8 +110183,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108013 | .extra_temps = .{ | 110183 | .extra_temps = .{ |
| 108014 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108015 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110185 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108016 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110186 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108017 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110187 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108018 | .unused, | 110188 | .unused, |
| 108019 | .unused, | 110189 | .unused, |
| 108020 | .unused, | 110190 | .unused, |
| ... | @@ -108027,16 +110197,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108027,16 +110197,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108027 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110197 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108028 | .each = .{ .once = &.{ | 110198 | .each = .{ .once = &.{ |
| 108029 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110199 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108030 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110200 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108031 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110201 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108032 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110202 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108033 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110203 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108034 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108035 | } }, | 110205 | } }, |
| 108036 | }, .{ | 110206 | }, .{ |
| 108037 | .required_features = .{ .sse4_1, null, null, null }, | 110207 | .required_features = .{ .avx, null, null, null }, |
| 108038 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110208 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 108039 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110209 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108040 | .patterns = &.{ | 110210 | .patterns = &.{ |
| 108041 | .{ .src = .{ .to_mem, .none, .none } }, | 110211 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108042 | }, | 110212 | }, |
| ... | @@ -108044,8 +110214,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108044,8 +110214,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108044 | .extra_temps = .{ | 110214 | .extra_temps = .{ |
| 108045 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110215 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108046 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110216 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108047 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110217 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108048 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110218 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108049 | .unused, | 110219 | .unused, |
| 108050 | .unused, | 110220 | .unused, |
| 108051 | .unused, | 110221 | .unused, |
| ... | @@ -108058,16 +110228,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108058,16 +110228,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108058 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110228 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108059 | .each = .{ .once = &.{ | 110229 | .each = .{ .once = &.{ |
| 108060 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110230 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108061 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110231 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108062 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110232 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108063 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110233 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108064 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110234 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108065 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110235 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108066 | } }, | 110236 | } }, |
| 108067 | }, .{ | 110237 | }, .{ |
| 108068 | .required_features = .{ .sse2, null, null, null }, | 110238 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 108069 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110239 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 108070 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110240 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108071 | .patterns = &.{ | 110241 | .patterns = &.{ |
| 108072 | .{ .src = .{ .to_mem, .none, .none } }, | 110242 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108073 | }, | 110243 | }, |
| ... | @@ -108075,8 +110245,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108075,8 +110245,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108075 | .extra_temps = .{ | 110245 | .extra_temps = .{ |
| 108076 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110246 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108077 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110247 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108078 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110248 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108079 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110249 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108080 | .unused, | 110250 | .unused, |
| 108081 | .unused, | 110251 | .unused, |
| 108082 | .unused, | 110252 | .unused, |
| ... | @@ -108089,17 +110259,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108089,17 +110259,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108089 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110259 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108090 | .each = .{ .once = &.{ | 110260 | .each = .{ .once = &.{ |
| 108091 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110261 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108092 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110262 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108093 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110263 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108094 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | 110264 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108095 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 110265 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108096 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108097 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110266 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108098 | } }, | 110267 | } }, |
| 108099 | }, .{ | 110268 | }, .{ |
| 108100 | .required_features = .{ .sse, null, null, null }, | 110269 | .required_features = .{ .sse, null, null, null }, |
| 108101 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 110270 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 108102 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110271 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108103 | .patterns = &.{ | 110272 | .patterns = &.{ |
| 108104 | .{ .src = .{ .to_mem, .none, .none } }, | 110273 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108105 | }, | 110274 | }, |
| ... | @@ -108107,9 +110276,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108107,9 +110276,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108107 | .extra_temps = .{ | 110276 | .extra_temps = .{ |
| 108108 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110277 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108109 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110278 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108110 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110279 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108111 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110280 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108112 | .{ .type = .f32, .kind = .mem }, | 110281 | .unused, |
| 108113 | .unused, | 110282 | .unused, |
| 108114 | .unused, | 110283 | .unused, |
| 108115 | .unused, | 110284 | .unused, |
| ... | @@ -108121,44 +110290,94 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108121,44 +110290,94 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108121 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110290 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108122 | .each = .{ .once = &.{ | 110291 | .each = .{ .once = &.{ |
| 108123 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 110292 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108124 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 110293 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108125 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110294 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108126 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | 110295 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108127 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | 110296 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108128 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 110297 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108129 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108130 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 108131 | } }, | 110298 | } }, |
| 108132 | }, .{ | 110299 | }, .{ |
| 108133 | .required_features = .{ .f16c, null, null, null }, | 110300 | .required_features = .{ .avx, null, null, null }, |
| 108134 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 110301 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 108135 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 110302 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108136 | .patterns = &.{ | 110303 | .patterns = &.{ |
| 108137 | .{ .src = .{ .mem, .none, .none } }, | 110304 | .{ .src = .{ .mem, .none, .none } }, |
| 108138 | .{ .src = .{ .to_sse, .none, .none } }, | 110305 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108139 | }, | 110306 | }, |
| 108140 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 110307 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108141 | .each = .{ .once = &.{ | 110308 | .each = .{ .once = &.{ |
| 108142 | .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, | 110309 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 108143 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, | 110310 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 108144 | } }, | 110311 | } }, |
| 108145 | }, .{ | 110312 | }, .{ |
| 108146 | .required_features = .{ .f16c, .avx2, null, null }, | 110313 | .required_features = .{ .sse4_1, null, null, null }, |
| 108147 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | 110314 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 108148 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 110315 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108149 | .patterns = &.{ | 110316 | .patterns = &.{ |
| 108150 | .{ .src = .{ .mem, .none, .none } }, | 110317 | .{ .src = .{ .mem, .none, .none } }, |
| 108151 | .{ .src = .{ .to_sse, .none, .none } }, | 110318 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108152 | }, | 110319 | }, |
| 108153 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 110320 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108154 | .each = .{ .once = &.{ | 110321 | .each = .{ .once = &.{ |
| 108155 | .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, | 110322 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 108156 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, | 110323 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 108157 | } }, | 110324 | } }, |
| 108158 | }, .{ | 110325 | }, .{ |
| 108159 | .required_features = .{ .f16c, .avx2, null, null }, | 110326 | .required_features = .{ .avx2, null, null, null }, |
| 108160 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | 110327 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 108161 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, | 110328 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| | 110329 | .patterns = &.{ |
| | 110330 | .{ .src = .{ .mem, .none, .none } }, |
| | 110331 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 110332 | }, |
| | 110333 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 110334 | .each = .{ .once = &.{ |
| | 110335 | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, |
| | 110336 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| | 110337 | } }, |
| | 110338 | }, .{ |
| | 110339 | .required_features = .{ .avx, null, null, null }, |
| | 110340 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 110341 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 110342 | .patterns = &.{ |
| | 110343 | .{ .src = .{ .mem, .none, .none } }, |
| | 110344 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 110345 | }, |
| | 110346 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 110347 | .each = .{ .once = &.{ |
| | 110348 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| | 110349 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| | 110350 | } }, |
| | 110351 | }, .{ |
| | 110352 | .required_features = .{ .sse4_1, null, null, null }, |
| | 110353 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| | 110354 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 110355 | .patterns = &.{ |
| | 110356 | .{ .src = .{ .mem, .none, .none } }, |
| | 110357 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 110358 | }, |
| | 110359 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 110360 | .each = .{ .once = &.{ |
| | 110361 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| | 110362 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| | 110363 | } }, |
| | 110364 | }, .{ |
| | 110365 | .required_features = .{ .avx2, null, null, null }, |
| | 110366 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 110367 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| | 110368 | .patterns = &.{ |
| | 110369 | .{ .src = .{ .mem, .none, .none } }, |
| | 110370 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 110371 | }, |
| | 110372 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 110373 | .each = .{ .once = &.{ |
| | 110374 | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, |
| | 110375 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| | 110376 | } }, |
| | 110377 | }, .{ |
| | 110378 | .required_features = .{ .avx2, null, null, null }, |
| | 110379 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| | 110380 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 108162 | .patterns = &.{ | 110381 | .patterns = &.{ |
| 108163 | .{ .src = .{ .to_mem, .none, .none } }, | 110382 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108164 | }, | 110383 | }, |
| ... | @@ -108178,16 +110397,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108178,16 +110397,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108178 | .dst_temps = .{ .mem, .unused }, | 110397 | .dst_temps = .{ .mem, .unused }, |
| 108179 | .clobbers = .{ .eflags = true }, | 110398 | .clobbers = .{ .eflags = true }, |
| 108180 | .each = .{ .once = &.{ | 110399 | .each = .{ .once = &.{ |
| 108181 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110400 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108182 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110401 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108183 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, | 110402 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| | 110403 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 108184 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 110404 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108185 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110405 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108186 | } }, | 110406 | } }, |
| 108187 | }, .{ | 110407 | }, .{ |
| 108188 | .required_features = .{ .f16c, null, null, null }, | 110408 | .required_features = .{ .avx, null, null, null }, |
| 108189 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 110409 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 108190 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, | 110410 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108191 | .patterns = &.{ | 110411 | .patterns = &.{ |
| 108192 | .{ .src = .{ .to_mem, .none, .none } }, | 110412 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108193 | }, | 110413 | }, |
| ... | @@ -108207,25 +110427,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108207,25 +110427,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108207 | .dst_temps = .{ .mem, .unused }, | 110427 | .dst_temps = .{ .mem, .unused }, |
| 108208 | .clobbers = .{ .eflags = true }, | 110428 | .clobbers = .{ .eflags = true }, |
| 108209 | .each = .{ .once = &.{ | 110429 | .each = .{ .once = &.{ |
| 108210 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110430 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108211 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110431 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108212 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, | 110432 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| | 110433 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108213 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 110434 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108214 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110435 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108215 | } }, | 110436 | } }, |
| 108216 | }, .{ | 110437 | }, .{ |
| 108217 | .required_features = .{ .avx, null, null, null }, | 110438 | .required_features = .{ .sse4_1, null, null, null }, |
| 108218 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110439 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 108219 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110440 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108220 | .patterns = &.{ | 110441 | .patterns = &.{ |
| 108221 | .{ .src = .{ .to_mem, .none, .none } }, | 110442 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108222 | }, | 110443 | }, |
| 108223 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108224 | .extra_temps = .{ | 110444 | .extra_temps = .{ |
| 108225 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110445 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108226 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110446 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108227 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110447 | .unused, |
| 108228 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110448 | .unused, |
| 108229 | .unused, | 110449 | .unused, |
| 108230 | .unused, | 110450 | .unused, |
| 108231 | .unused, | 110451 | .unused, |
| ... | @@ -108235,28 +110455,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108235,28 +110455,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108235 | .unused, | 110455 | .unused, |
| 108236 | }, | 110456 | }, |
| 108237 | .dst_temps = .{ .mem, .unused }, | 110457 | .dst_temps = .{ .mem, .unused }, |
| 108238 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110458 | .clobbers = .{ .eflags = true }, |
| 108239 | .each = .{ .once = &.{ | 110459 | .each = .{ .once = &.{ |
| 108240 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110460 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108241 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110461 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108242 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110462 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 108243 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110463 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108244 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110464 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108245 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110465 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108246 | } }, | 110466 | } }, |
| 108247 | }, .{ | 110467 | }, .{ |
| 108248 | .required_features = .{ .sse4_1, null, null, null }, | 110468 | .required_features = .{ .avx2, null, null, null }, |
| 108249 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110469 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 108250 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110470 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 108251 | .patterns = &.{ | 110471 | .patterns = &.{ |
| 108252 | .{ .src = .{ .to_mem, .none, .none } }, | 110472 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108253 | }, | 110473 | }, |
| 108254 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108255 | .extra_temps = .{ | 110474 | .extra_temps = .{ |
| 108256 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110475 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108257 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110476 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 108258 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110477 | .unused, |
| 108259 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110478 | .unused, |
| 108260 | .unused, | 110479 | .unused, |
| 108261 | .unused, | 110480 | .unused, |
| 108262 | .unused, | 110481 | .unused, |
| ... | @@ -108266,28 +110485,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108266,28 +110485,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108266 | .unused, | 110485 | .unused, |
| 108267 | }, | 110486 | }, |
| 108268 | .dst_temps = .{ .mem, .unused }, | 110487 | .dst_temps = .{ .mem, .unused }, |
| 108269 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110488 | .clobbers = .{ .eflags = true }, |
| 108270 | .each = .{ .once = &.{ | 110489 | .each = .{ .once = &.{ |
| 108271 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110490 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108272 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110491 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108273 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110492 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 108274 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110493 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 108275 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110494 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108276 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110495 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108277 | } }, | 110496 | } }, |
| 108278 | }, .{ | 110497 | }, .{ |
| 108279 | .required_features = .{ .sse2, null, null, null }, | 110498 | .required_features = .{ .avx, null, null, null }, |
| 108280 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110499 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 108281 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110500 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108282 | .patterns = &.{ | 110501 | .patterns = &.{ |
| 108283 | .{ .src = .{ .to_mem, .none, .none } }, | 110502 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108284 | }, | 110503 | }, |
| 108285 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108286 | .extra_temps = .{ | 110504 | .extra_temps = .{ |
| 108287 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110505 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108288 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110506 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108289 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110507 | .unused, |
| 108290 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110508 | .unused, |
| 108291 | .unused, | 110509 | .unused, |
| 108292 | .unused, | 110510 | .unused, |
| 108293 | .unused, | 110511 | .unused, |
| ... | @@ -108297,30 +110515,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108297,30 +110515,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108297 | .unused, | 110515 | .unused, |
| 108298 | }, | 110516 | }, |
| 108299 | .dst_temps = .{ .mem, .unused }, | 110517 | .dst_temps = .{ .mem, .unused }, |
| 108300 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110518 | .clobbers = .{ .eflags = true }, |
| 108301 | .each = .{ .once = &.{ | 110519 | .each = .{ .once = &.{ |
| 108302 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110520 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108303 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110521 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108304 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110522 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 108305 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | 110523 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108306 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 110524 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108307 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108308 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110525 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108309 | } }, | 110526 | } }, |
| 108310 | }, .{ | 110527 | }, .{ |
| 108311 | .required_features = .{ .sse, null, null, null }, | 110528 | .required_features = .{ .sse4_1, null, null, null }, |
| 108312 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110529 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 108313 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110530 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108314 | .patterns = &.{ | 110531 | .patterns = &.{ |
| 108315 | .{ .src = .{ .to_mem, .none, .none } }, | 110532 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108316 | }, | 110533 | }, |
| 108317 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108318 | .extra_temps = .{ | 110534 | .extra_temps = .{ |
| 108319 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110535 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108320 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 110536 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108321 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, | 110537 | .unused, |
| 108322 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110538 | .unused, |
| 108323 | .{ .type = .f32, .kind = .mem }, | 110539 | .unused, |
| 108324 | .unused, | 110540 | .unused, |
| 108325 | .unused, | 110541 | .unused, |
| 108326 | .unused, | 110542 | .unused, |
| ... | @@ -108329,30 +110545,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108329,30 +110545,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108329 | .unused, | 110545 | .unused, |
| 108330 | }, | 110546 | }, |
| 108331 | .dst_temps = .{ .mem, .unused }, | 110547 | .dst_temps = .{ .mem, .unused }, |
| 108332 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110548 | .clobbers = .{ .eflags = true }, |
| 108333 | .each = .{ .once = &.{ | 110549 | .each = .{ .once = &.{ |
| 108334 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110550 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108335 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110551 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108336 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110552 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 108337 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | 110553 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108338 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | 110554 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108339 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108340 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108341 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110555 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108342 | } }, | 110556 | } }, |
| 108343 | }, .{ | 110557 | }, .{ |
| 108344 | .required_features = .{ .avx, null, null, null }, | 110558 | .required_features = .{ .avx, null, null, null }, |
| 108345 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110559 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108346 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110560 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108347 | .patterns = &.{ | 110561 | .patterns = &.{ |
| 108348 | .{ .src = .{ .to_mem, .none, .none } }, | 110562 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108349 | }, | 110563 | }, |
| 108350 | .call_frame = .{ .alignment = .@"16" }, | 110564 | .call_frame = .{ .alignment = .@"16" }, |
| 108351 | .extra_temps = .{ | 110565 | .extra_temps = .{ |
| 108352 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110566 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108353 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110567 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108354 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110568 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 108355 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110569 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108356 | .unused, | 110570 | .unused, |
| 108357 | .unused, | 110571 | .unused, |
| 108358 | .unused, | 110572 | .unused, |
| ... | @@ -108364,26 +110578,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108364,26 +110578,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108364 | .dst_temps = .{ .mem, .unused }, | 110578 | .dst_temps = .{ .mem, .unused }, |
| 108365 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110579 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108366 | .each = .{ .once = &.{ | 110580 | .each = .{ .once = &.{ |
| 108367 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110581 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108368 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110582 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108369 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110583 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108370 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110584 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108371 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110585 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108372 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110586 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108373 | } }, | 110587 | } }, |
| 108374 | }, .{ | 110588 | }, .{ |
| 108375 | .required_features = .{ .sse4_1, null, null, null }, | 110589 | .required_features = .{ .sse, null, null, null }, |
| 108376 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110590 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108377 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110591 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108378 | .patterns = &.{ | 110592 | .patterns = &.{ |
| 108379 | .{ .src = .{ .to_mem, .none, .none } }, | 110593 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108380 | }, | 110594 | }, |
| 108381 | .call_frame = .{ .alignment = .@"16" }, | 110595 | .call_frame = .{ .alignment = .@"16" }, |
| 108382 | .extra_temps = .{ | 110596 | .extra_temps = .{ |
| 108383 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110597 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108384 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110598 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108385 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110599 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 108386 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110600 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108387 | .unused, | 110601 | .unused, |
| 108388 | .unused, | 110602 | .unused, |
| 108389 | .unused, | 110603 | .unused, |
| ... | @@ -108395,17 +110609,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108395,17 +110609,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108395 | .dst_temps = .{ .mem, .unused }, | 110609 | .dst_temps = .{ .mem, .unused }, |
| 108396 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110610 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108397 | .each = .{ .once = &.{ | 110611 | .each = .{ .once = &.{ |
| 108398 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110612 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108399 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110613 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108400 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110614 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108401 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110615 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108402 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110616 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108403 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110617 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108404 | } }, | 110618 | } }, |
| 108405 | }, .{ | 110619 | }, .{ |
| 108406 | .required_features = .{ .sse2, null, null, null }, | 110620 | .required_features = .{ .avx, null, null, null }, |
| 108407 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110621 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108408 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110622 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108409 | .patterns = &.{ | 110623 | .patterns = &.{ |
| 108410 | .{ .src = .{ .to_mem, .none, .none } }, | 110624 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108411 | }, | 110625 | }, |
| ... | @@ -108413,8 +110627,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108413,8 +110627,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108413 | .extra_temps = .{ | 110627 | .extra_temps = .{ |
| 108414 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110628 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108415 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110629 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108416 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110630 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108417 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110631 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108418 | .unused, | 110632 | .unused, |
| 108419 | .unused, | 110633 | .unused, |
| 108420 | .unused, | 110634 | .unused, |
| ... | @@ -108426,18 +110640,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108426,18 +110640,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108426 | .dst_temps = .{ .mem, .unused }, | 110640 | .dst_temps = .{ .mem, .unused }, |
| 108427 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110641 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108428 | .each = .{ .once = &.{ | 110642 | .each = .{ .once = &.{ |
| 108429 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110643 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108430 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110644 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108431 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110645 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108432 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | 110646 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108433 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108434 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110647 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108435 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110648 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108436 | } }, | 110649 | } }, |
| 108437 | }, .{ | 110650 | }, .{ |
| 108438 | .required_features = .{ .sse, null, null, null }, | 110651 | .required_features = .{ .sse, null, null, null }, |
| 108439 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 110652 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108440 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110653 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108441 | .patterns = &.{ | 110654 | .patterns = &.{ |
| 108442 | .{ .src = .{ .to_mem, .none, .none } }, | 110655 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108443 | }, | 110656 | }, |
| ... | @@ -108445,9 +110658,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108445,9 +110658,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108445 | .extra_temps = .{ | 110658 | .extra_temps = .{ |
| 108446 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110659 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108447 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 110660 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108448 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, | 110661 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108449 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110662 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108450 | .{ .type = .f32, .kind = .mem }, | 110663 | .unused, |
| 108451 | .unused, | 110664 | .unused, |
| 108452 | .unused, | 110665 | .unused, |
| 108453 | .unused, | 110666 | .unused, |
| ... | @@ -108458,121 +110671,61 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108458,121 +110671,61 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108458 | .dst_temps = .{ .mem, .unused }, | 110671 | .dst_temps = .{ .mem, .unused }, |
| 108459 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110672 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108460 | .each = .{ .once = &.{ | 110673 | .each = .{ .once = &.{ |
| 108461 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110674 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108462 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 110675 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108463 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110676 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108464 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | 110677 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108465 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | | |
| 108466 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108467 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 110678 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108468 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110679 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108469 | } }, | 110680 | } }, |
| 108470 | }, .{ | 110681 | }, .{ |
| 108471 | .required_features = .{ .@"64bit", .f16c, null, null }, | 110682 | .required_features = .{ .avx, null, null, null }, |
| 108472 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110683 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 108473 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110684 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108474 | .patterns = &.{ | 110685 | .patterns = &.{ |
| 108475 | .{ .src = .{ .to_mem, .none, .none } }, | 110686 | .{ .src = .{ .mem, .none, .none } }, |
| 108476 | }, | 110687 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108477 | .extra_temps = .{ | | |
| 108478 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 108479 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, | | |
| 108480 | .unused, | | |
| 108481 | .unused, | | |
| 108482 | .unused, | | |
| 108483 | .unused, | | |
| 108484 | .unused, | | |
| 108485 | .unused, | | |
| 108486 | .unused, | | |
| 108487 | .unused, | | |
| 108488 | .unused, | | |
| 108489 | }, | 110688 | }, |
| 108490 | .dst_temps = .{ .mem, .unused }, | 110689 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108491 | .clobbers = .{ .eflags = true }, | | |
| 108492 | .each = .{ .once = &.{ | 110690 | .each = .{ .once = &.{ |
| 108493 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110691 | .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, |
| 108494 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | | |
| 108495 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._ }, | | |
| 108496 | .{ ._, .v_, .cvtps2ph, .tmp1q, .tmp1x, .rm(.{}), ._ }, | | |
| 108497 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, | | |
| 108498 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108499 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 108500 | } }, | 110692 | } }, |
| 108501 | }, .{ | 110693 | }, .{ |
| 108502 | .required_features = .{ .@"64bit", .avx, null, null }, | 110694 | .required_features = .{ .sse2, null, null, null }, |
| 108503 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110695 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 108504 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110696 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108505 | .patterns = &.{ | 110697 | .patterns = &.{ |
| 108506 | .{ .src = .{ .to_mem, .none, .none } }, | 110698 | .{ .src = .{ .mem, .none, .none } }, |
| 108507 | }, | 110699 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108508 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108509 | .extra_temps = .{ | | |
| 108510 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 108511 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | | |
| 108512 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, | | |
| 108513 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 108514 | .unused, | | |
| 108515 | .unused, | | |
| 108516 | .unused, | | |
| 108517 | .unused, | | |
| 108518 | .unused, | | |
| 108519 | .unused, | | |
| 108520 | .unused, | | |
| 108521 | }, | 110700 | }, |
| 108522 | .dst_temps = .{ .mem, .unused }, | 110701 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108523 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 108524 | .each = .{ .once = &.{ | 110702 | .each = .{ .once = &.{ |
| 108525 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110703 | .{ ._, ._ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, |
| 108526 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 108527 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 108528 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | | |
| 108529 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108530 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 108531 | } }, | 110704 | } }, |
| 108532 | }, .{ | 110705 | }, .{ |
| 108533 | .required_features = .{ .@"64bit", .sse4_1, null, null }, | 110706 | .required_features = .{ .avx2, null, null, null }, |
| 108534 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110707 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 108535 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110708 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 108536 | .patterns = &.{ | 110709 | .patterns = &.{ |
| 108537 | .{ .src = .{ .to_mem, .none, .none } }, | 110710 | .{ .src = .{ .mem, .none, .none } }, |
| 108538 | }, | 110711 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108539 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108540 | .extra_temps = .{ | | |
| 108541 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 108542 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | | |
| 108543 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, | | |
| 108544 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | | |
| 108545 | .unused, | | |
| 108546 | .unused, | | |
| 108547 | .unused, | | |
| 108548 | .unused, | | |
| 108549 | .unused, | | |
| 108550 | .unused, | | |
| 108551 | .unused, | | |
| 108552 | }, | 110712 | }, |
| 108553 | .dst_temps = .{ .mem, .unused }, | 110713 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108554 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 108555 | .each = .{ .once = &.{ | 110714 | .each = .{ .once = &.{ |
| 108556 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110715 | .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, |
| 108557 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 108558 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 108559 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | | |
| 108560 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108561 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 108562 | } }, | 110716 | } }, |
| 108563 | }, .{ | 110717 | }, .{ |
| 108564 | .required_features = .{ .@"64bit", .sse2, null, null }, | 110718 | .required_features = .{ .avx2, null, null, null }, |
| 108565 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110719 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 108566 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110720 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 108567 | .patterns = &.{ | 110721 | .patterns = &.{ |
| 108568 | .{ .src = .{ .to_mem, .none, .none } }, | 110722 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108569 | }, | 110723 | }, |
| 108570 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108571 | .extra_temps = .{ | 110724 | .extra_temps = .{ |
| 108572 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110725 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108573 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 110726 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 108574 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, | 110727 | .unused, |
| 108575 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110728 | .unused, |
| 108576 | .unused, | 110729 | .unused, |
| 108577 | .unused, | 110730 | .unused, |
| 108578 | .unused, | 110731 | .unused, |
| ... | @@ -108582,30 +110735,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108582,30 +110735,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108582 | .unused, | 110735 | .unused, |
| 108583 | }, | 110736 | }, |
| 108584 | .dst_temps = .{ .mem, .unused }, | 110737 | .dst_temps = .{ .mem, .unused }, |
| 108585 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110738 | .clobbers = .{ .eflags = true }, |
| 108586 | .each = .{ .once = &.{ | 110739 | .each = .{ .once = &.{ |
| 108587 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110740 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108588 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 110741 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108589 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110742 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 108590 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | 110743 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 108591 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108592 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108593 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110744 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108594 | } }, | 110745 | } }, |
| 108595 | }, .{ | 110746 | }, .{ |
| 108596 | .required_features = .{ .@"64bit", .sse, null, null }, | 110747 | .required_features = .{ .avx, null, null, null }, |
| 108597 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110748 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 108598 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110749 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108599 | .patterns = &.{ | 110750 | .patterns = &.{ |
| 108600 | .{ .src = .{ .to_mem, .none, .none } }, | 110751 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108601 | }, | 110752 | }, |
| 108602 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108603 | .extra_temps = .{ | 110753 | .extra_temps = .{ |
| 108604 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110754 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108605 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 110755 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108606 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, | 110756 | .unused, |
| 108607 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110757 | .unused, |
| 108608 | .{ .type = .f32, .kind = .mem }, | 110758 | .unused, |
| 108609 | .unused, | 110759 | .unused, |
| 108610 | .unused, | 110760 | .unused, |
| 108611 | .unused, | 110761 | .unused, |
| ... | @@ -108614,30 +110764,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108614,30 +110764,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108614 | .unused, | 110764 | .unused, |
| 108615 | }, | 110765 | }, |
| 108616 | .dst_temps = .{ .mem, .unused }, | 110766 | .dst_temps = .{ .mem, .unused }, |
| 108617 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110767 | .clobbers = .{ .eflags = true }, |
| 108618 | .each = .{ .once = &.{ | 110768 | .each = .{ .once = &.{ |
| 108619 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110769 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108620 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 110770 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108621 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110771 | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108622 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | 110772 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108623 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | | |
| 108624 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108625 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108626 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110773 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108627 | } }, | 110774 | } }, |
| 108628 | }, .{ | 110775 | }, .{ |
| 108629 | .required_features = .{ .@"64bit", .avx, null, null }, | 110776 | .required_features = .{ .sse2, null, null, null }, |
| 108630 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110777 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 108631 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110778 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108632 | .patterns = &.{ | 110779 | .patterns = &.{ |
| 108633 | .{ .src = .{ .to_mem, .none, .none } }, | 110780 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108634 | }, | 110781 | }, |
| 108635 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108636 | .extra_temps = .{ | 110782 | .extra_temps = .{ |
| 108637 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110783 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108638 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110784 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108639 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, | 110785 | .unused, |
| 108640 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110786 | .unused, |
| 108641 | .unused, | 110787 | .unused, |
| 108642 | .unused, | 110788 | .unused, |
| 108643 | .unused, | 110789 | .unused, |
| ... | @@ -108647,28 +110793,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108647,28 +110793,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108647 | .unused, | 110793 | .unused, |
| 108648 | }, | 110794 | }, |
| 108649 | .dst_temps = .{ .mem, .unused }, | 110795 | .dst_temps = .{ .mem, .unused }, |
| 108650 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110796 | .clobbers = .{ .eflags = true }, |
| 108651 | .each = .{ .once = &.{ | 110797 | .each = .{ .once = &.{ |
| 108652 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110798 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108653 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 110799 | .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108654 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110800 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108655 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110801 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108656 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108657 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110802 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108658 | } }, | 110803 | } }, |
| 108659 | }, .{ | 110804 | }, .{ |
| 108660 | .required_features = .{ .@"64bit", .sse4_1, null, null }, | 110805 | .required_features = .{ .sse, null, null, null }, |
| 108661 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110806 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108662 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110807 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108663 | .patterns = &.{ | 110808 | .patterns = &.{ |
| 108664 | .{ .src = .{ .to_mem, .none, .none } }, | 110809 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108665 | }, | 110810 | }, |
| 108666 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108667 | .extra_temps = .{ | 110811 | .extra_temps = .{ |
| 108668 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110812 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108669 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110813 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 108670 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, | 110814 | .unused, |
| 108671 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110815 | .unused, |
| 108672 | .unused, | 110816 | .unused, |
| 108673 | .unused, | 110817 | .unused, |
| 108674 | .unused, | 110818 | .unused, |
| ... | @@ -108678,28 +110822,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108678,28 +110822,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108678 | .unused, | 110822 | .unused, |
| 108679 | }, | 110823 | }, |
| 108680 | .dst_temps = .{ .mem, .unused }, | 110824 | .dst_temps = .{ .mem, .unused }, |
| 108681 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110825 | .clobbers = .{ .eflags = true }, |
| 108682 | .each = .{ .once = &.{ | 110826 | .each = .{ .once = &.{ |
| 108683 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110827 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108684 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 110828 | .{ .@"0:", ._ss, .cvtsi2, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108685 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110829 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108686 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, | 110830 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108687 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108688 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110831 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108689 | } }, | 110832 | } }, |
| 108690 | }, .{ | 110833 | }, .{ |
| 108691 | .required_features = .{ .@"64bit", .sse2, null, null }, | 110834 | .required_features = .{ .avx, null, null, null }, |
| 108692 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110835 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108693 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110836 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108694 | .patterns = &.{ | 110837 | .patterns = &.{ |
| 108695 | .{ .src = .{ .to_mem, .none, .none } }, | 110838 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108696 | }, | 110839 | }, |
| 108697 | .call_frame = .{ .alignment = .@"16" }, | 110840 | .call_frame = .{ .alignment = .@"16" }, |
| 108698 | .extra_temps = .{ | 110841 | .extra_temps = .{ |
| 108699 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110842 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108700 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110843 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108701 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, | 110844 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 108702 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110845 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108703 | .unused, | 110846 | .unused, |
| 108704 | .unused, | 110847 | .unused, |
| 108705 | .unused, | 110848 | .unused, |
| ... | @@ -108712,27 +110855,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108712,27 +110855,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108712 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110855 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108713 | .each = .{ .once = &.{ | 110856 | .each = .{ .once = &.{ |
| 108714 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110857 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108715 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 110858 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108716 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110859 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108717 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, | 110860 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108718 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | 110861 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108719 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108720 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110862 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108721 | } }, | 110863 | } }, |
| 108722 | }, .{ | 110864 | }, .{ |
| 108723 | .required_features = .{ .@"64bit", .sse, null, null }, | 110865 | .required_features = .{ .sse, null, null, null }, |
| 108724 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 110866 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108725 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110867 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108726 | .patterns = &.{ | 110868 | .patterns = &.{ |
| 108727 | .{ .src = .{ .to_mem, .none, .none } }, | 110869 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108728 | }, | 110870 | }, |
| 108729 | .call_frame = .{ .alignment = .@"16" }, | 110871 | .call_frame = .{ .alignment = .@"16" }, |
| 108730 | .extra_temps = .{ | 110872 | .extra_temps = .{ |
| 108731 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110873 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108732 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110874 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108733 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, | 110875 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 108734 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110876 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108735 | .{ .type = .f32, .kind = .mem }, | 110877 | .unused, |
| 108736 | .unused, | 110878 | .unused, |
| 108737 | .unused, | 110879 | .unused, |
| 108738 | .unused, | 110880 | .unused, |
| ... | @@ -108744,28 +110886,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108744,28 +110886,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108744 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110886 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108745 | .each = .{ .once = &.{ | 110887 | .each = .{ .once = &.{ |
| 108746 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110888 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108747 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 110889 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108748 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 110890 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108749 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, | 110891 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108750 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, | 110892 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108751 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108752 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108753 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110893 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108754 | } }, | 110894 | } }, |
| 108755 | }, .{ | 110895 | }, .{ |
| 108756 | .required_features = .{ .@"64bit", .avx, null, null }, | 110896 | .required_features = .{ .avx, null, null, null }, |
| 108757 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 110897 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108758 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110898 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108759 | .patterns = &.{ | 110899 | .patterns = &.{ |
| 108760 | .{ .src = .{ .to_mem, .none, .none } }, | 110900 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108761 | }, | 110901 | }, |
| 108762 | .call_frame = .{ .alignment = .@"16" }, | 110902 | .call_frame = .{ .alignment = .@"16" }, |
| 108763 | .extra_temps = .{ | 110903 | .extra_temps = .{ |
| 108764 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110904 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108765 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110905 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108766 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 110906 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108767 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, | 110907 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108768 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110908 | .unused, |
| 108769 | .unused, | 110909 | .unused, |
| 108770 | .unused, | 110910 | .unused, |
| 108771 | .unused, | 110911 | .unused, |
| ... | @@ -108777,27 +110917,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108777,27 +110917,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108777 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110917 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108778 | .each = .{ .once = &.{ | 110918 | .each = .{ .once = &.{ |
| 108779 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110919 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108780 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 110920 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108781 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 110921 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108782 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 110922 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108783 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, | 110923 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108784 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108785 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110924 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108786 | } }, | 110925 | } }, |
| 108787 | }, .{ | 110926 | }, .{ |
| 108788 | .required_features = .{ .@"64bit", .sse4_1, null, null }, | 110927 | .required_features = .{ .sse, null, null, null }, |
| 108789 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 110928 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108790 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110929 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108791 | .patterns = &.{ | 110930 | .patterns = &.{ |
| 108792 | .{ .src = .{ .to_mem, .none, .none } }, | 110931 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108793 | }, | 110932 | }, |
| 108794 | .call_frame = .{ .alignment = .@"16" }, | 110933 | .call_frame = .{ .alignment = .@"16" }, |
| 108795 | .extra_temps = .{ | 110934 | .extra_temps = .{ |
| 108796 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110935 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108797 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110936 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108798 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 110937 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 108799 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, | 110938 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108800 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110939 | .unused, |
| 108801 | .unused, | 110940 | .unused, |
| 108802 | .unused, | 110941 | .unused, |
| 108803 | .unused, | 110942 | .unused, |
| ... | @@ -108809,27 +110948,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108809,27 +110948,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108809 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110948 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108810 | .each = .{ .once = &.{ | 110949 | .each = .{ .once = &.{ |
| 108811 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110950 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108812 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 110951 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108813 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 110952 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108814 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 110953 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108815 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, | 110954 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108816 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108817 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110955 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108818 | } }, | 110956 | } }, |
| 108819 | }, .{ | 110957 | }, .{ |
| 108820 | .required_features = .{ .@"64bit", .sse2, null, null }, | 110958 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108821 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 110959 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108822 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110960 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108823 | .patterns = &.{ | 110961 | .patterns = &.{ |
| 108824 | .{ .src = .{ .to_mem, .none, .none } }, | 110962 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108825 | }, | 110963 | }, |
| 108826 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108827 | .extra_temps = .{ | 110964 | .extra_temps = .{ |
| 108828 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110965 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108829 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110966 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 108830 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 110967 | .unused, |
| 108831 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, | 110968 | .unused, |
| 108832 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110969 | .unused, |
| 108833 | .unused, | 110970 | .unused, |
| 108834 | .unused, | 110971 | .unused, |
| 108835 | .unused, | 110972 | .unused, |
| ... | @@ -108838,32 +110975,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108838,32 +110975,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108838 | .unused, | 110975 | .unused, |
| 108839 | }, | 110976 | }, |
| 108840 | .dst_temps = .{ .mem, .unused }, | 110977 | .dst_temps = .{ .mem, .unused }, |
| 108841 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 110978 | .clobbers = .{ .eflags = true }, |
| 108842 | .each = .{ .once = &.{ | 110979 | .each = .{ .once = &.{ |
| 108843 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 110980 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108844 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 110981 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 108845 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 110982 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._ }, |
| 108846 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 110983 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108847 | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, | 110984 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108848 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108849 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108850 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 110985 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108851 | } }, | 110986 | } }, |
| 108852 | }, .{ | 110987 | }, .{ |
| 108853 | .required_features = .{ .@"64bit", .sse, null, null }, | 110988 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108854 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 110989 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108855 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 110990 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108856 | .patterns = &.{ | 110991 | .patterns = &.{ |
| 108857 | .{ .src = .{ .to_mem, .none, .none } }, | 110992 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108858 | }, | 110993 | }, |
| 108859 | .call_frame = .{ .alignment = .@"16" }, | | |
| 108860 | .extra_temps = .{ | 110994 | .extra_temps = .{ |
| 108861 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 110995 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108862 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 110996 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 108863 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 110997 | .unused, |
| 108864 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, | 110998 | .unused, |
| 108865 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 110999 | .unused, |
| 108866 | .{ .type = .f32, .kind = .mem }, | 111000 | .unused, |
| 108867 | .unused, | 111001 | .unused, |
| 108868 | .unused, | 111002 | .unused, |
| 108869 | .unused, | 111003 | .unused, |
| ... | @@ -108871,32 +111005,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108871,32 +111005,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108871 | .unused, | 111005 | .unused, |
| 108872 | }, | 111006 | }, |
| 108873 | .dst_temps = .{ .mem, .unused }, | 111007 | .dst_temps = .{ .mem, .unused }, |
| 108874 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111008 | .clobbers = .{ .eflags = true }, |
| 108875 | .each = .{ .once = &.{ | 111009 | .each = .{ .once = &.{ |
| 108876 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111010 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108877 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 111011 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 108878 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 111012 | .{ ._, ._ss, .cvtsi2, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108879 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 111013 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108880 | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, | 111014 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108881 | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, | | |
| 108882 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108883 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108884 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111015 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108885 | } }, | 111016 | } }, |
| 108886 | }, .{ | 111017 | }, .{ |
| 108887 | .required_features = .{ .@"64bit", .avx, null, null }, | 111018 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108888 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 111019 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108889 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111020 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108890 | .patterns = &.{ | 111021 | .patterns = &.{ |
| 108891 | .{ .src = .{ .to_mem, .none, .none } }, | 111022 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108892 | }, | 111023 | }, |
| 108893 | .call_frame = .{ .alignment = .@"16" }, | 111024 | .call_frame = .{ .alignment = .@"16" }, |
| 108894 | .extra_temps = .{ | 111025 | .extra_temps = .{ |
| 108895 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111026 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108896 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 111027 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108897 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 111028 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdisf" } } }, |
| 108898 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, | 111029 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108899 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111030 | .unused, |
| 108900 | .unused, | 111031 | .unused, |
| 108901 | .unused, | 111032 | .unused, |
| 108902 | .unused, | 111033 | .unused, |
| ... | @@ -108908,27 +111039,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108908,27 +111039,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108908 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111039 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108909 | .each = .{ .once = &.{ | 111040 | .each = .{ .once = &.{ |
| 108910 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111041 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108911 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 111042 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108912 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 111043 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108913 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 111044 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108914 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, | 111045 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108915 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108916 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111046 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108917 | } }, | 111047 | } }, |
| 108918 | }, .{ | 111048 | }, .{ |
| 108919 | .required_features = .{ .@"64bit", .sse4_1, null, null }, | 111049 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108920 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 111050 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108921 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111051 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108922 | .patterns = &.{ | 111052 | .patterns = &.{ |
| 108923 | .{ .src = .{ .to_mem, .none, .none } }, | 111053 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108924 | }, | 111054 | }, |
| 108925 | .call_frame = .{ .alignment = .@"16" }, | 111055 | .call_frame = .{ .alignment = .@"16" }, |
| 108926 | .extra_temps = .{ | 111056 | .extra_temps = .{ |
| 108927 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111057 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108928 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 111058 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108929 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 111059 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdisf" } } }, |
| 108930 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, | 111060 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108931 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111061 | .unused, |
| 108932 | .unused, | 111062 | .unused, |
| 108933 | .unused, | 111063 | .unused, |
| 108934 | .unused, | 111064 | .unused, |
| ... | @@ -108940,17 +111070,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108940,17 +111070,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108940 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111070 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108941 | .each = .{ .once = &.{ | 111071 | .each = .{ .once = &.{ |
| 108942 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111072 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108943 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 111073 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108944 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 111074 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108945 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 111075 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108946 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, | 111076 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108947 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108948 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111077 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108949 | } }, | 111078 | } }, |
| 108950 | }, .{ | 111079 | }, .{ |
| 108951 | .required_features = .{ .@"64bit", .sse2, null, null }, | 111080 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108952 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 111081 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108953 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111082 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108954 | .patterns = &.{ | 111083 | .patterns = &.{ |
| 108955 | .{ .src = .{ .to_mem, .none, .none } }, | 111084 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108956 | }, | 111085 | }, |
| ... | @@ -108958,9 +111087,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108958,9 +111087,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108958 | .extra_temps = .{ | 111087 | .extra_temps = .{ |
| 108959 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111088 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108960 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 111089 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108961 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 111090 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundisf" } } }, |
| 108962 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, | 111091 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108963 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111092 | .unused, |
| 108964 | .unused, | 111093 | .unused, |
| 108965 | .unused, | 111094 | .unused, |
| 108966 | .unused, | 111095 | .unused, |
| ... | @@ -108972,18 +111101,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108972,18 +111101,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108972 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111101 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108973 | .each = .{ .once = &.{ | 111102 | .each = .{ .once = &.{ |
| 108974 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111103 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108975 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 111104 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108976 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 111105 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108977 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 111106 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108978 | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, | 111107 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108979 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 108980 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 108981 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111108 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108982 | } }, | 111109 | } }, |
| 108983 | }, .{ | 111110 | }, .{ |
| 108984 | .required_features = .{ .@"64bit", .sse, null, null }, | 111111 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108985 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 111112 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108986 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111113 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108987 | .patterns = &.{ | 111114 | .patterns = &.{ |
| 108988 | .{ .src = .{ .to_mem, .none, .none } }, | 111115 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108989 | }, | 111116 | }, |
| ... | @@ -108991,10 +111118,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -108991,10 +111118,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108991 | .extra_temps = .{ | 111118 | .extra_temps = .{ |
| 108992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111119 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108993 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 111120 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108994 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 111121 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundisf" } } }, |
| 108995 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, | 111122 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108996 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111123 | .unused, |
| 108997 | .{ .type = .f32, .kind = .mem }, | 111124 | .unused, |
| 108998 | .unused, | 111125 | .unused, |
| 108999 | .unused, | 111126 | .unused, |
| 109000 | .unused, | 111127 | .unused, |
| ... | @@ -109005,30 +111132,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109005,30 +111132,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109005 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111132 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109006 | .each = .{ .once = &.{ | 111133 | .each = .{ .once = &.{ |
| 109007 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111134 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109008 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 111135 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109009 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 111136 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109010 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 111137 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 109011 | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, | 111138 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109012 | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, | | |
| 109013 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, | | |
| 109014 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 109015 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111139 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109016 | } }, | 111140 | } }, |
| 109017 | }, .{ | 111141 | }, .{ |
| 109018 | .required_features = .{ .@"64bit", .avx, null, null }, | 111142 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109019 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111143 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 109020 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111144 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109021 | .patterns = &.{ | 111145 | .patterns = &.{ |
| 109022 | .{ .src = .{ .to_mem, .none, .none } }, | 111146 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109023 | }, | 111147 | }, |
| 109024 | .call_frame = .{ .alignment = .@"16" }, | 111148 | .call_frame = .{ .alignment = .@"16" }, |
| 109025 | .extra_temps = .{ | 111149 | .extra_temps = .{ |
| 109026 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 109027 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111150 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109028 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111151 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 109029 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111152 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 109030 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, | 111153 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, |
| 109031 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111154 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 111155 | .unused, |
| 109032 | .unused, | 111156 | .unused, |
| 109033 | .unused, | 111157 | .unused, |
| 109034 | .unused, | 111158 | .unused, |
| ... | @@ -109038,31 +111162,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109038,31 +111162,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109038 | .dst_temps = .{ .mem, .unused }, | 111162 | .dst_temps = .{ .mem, .unused }, |
| 109039 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111163 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109040 | .each = .{ .once = &.{ | 111164 | .each = .{ .once = &.{ |
| 109041 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 111165 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109042 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111166 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109043 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111167 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 109044 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111168 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 109045 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111169 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 109046 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, | 111170 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109047 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 109048 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | | |
| 109049 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109050 | } }, | 111172 | } }, |
| 109051 | }, .{ | 111173 | }, .{ |
| 109052 | .required_features = .{ .@"64bit", .sse4_1, null, null }, | 111174 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109053 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111175 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 109054 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111176 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109055 | .patterns = &.{ | 111177 | .patterns = &.{ |
| 109056 | .{ .src = .{ .to_mem, .none, .none } }, | 111178 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109057 | }, | 111179 | }, |
| 109058 | .call_frame = .{ .alignment = .@"16" }, | 111180 | .call_frame = .{ .alignment = .@"16" }, |
| 109059 | .extra_temps = .{ | 111181 | .extra_temps = .{ |
| 109060 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 109061 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109062 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111183 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 109063 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111184 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 109064 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, | 111185 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, |
| 109065 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111186 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 111187 | .unused, |
| 109066 | .unused, | 111188 | .unused, |
| 109067 | .unused, | 111189 | .unused, |
| 109068 | .unused, | 111190 | .unused, |
| ... | @@ -109072,31 +111194,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109072,31 +111194,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109072 | .dst_temps = .{ .mem, .unused }, | 111194 | .dst_temps = .{ .mem, .unused }, |
| 109073 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111195 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109074 | .each = .{ .once = &.{ | 111196 | .each = .{ .once = &.{ |
| 109075 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 111197 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109076 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111198 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109077 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111199 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 109078 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111200 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 109079 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111201 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 109080 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, | 111202 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109081 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 109082 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | | |
| 109083 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111203 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109084 | } }, | 111204 | } }, |
| 109085 | }, .{ | 111205 | }, .{ |
| 109086 | .required_features = .{ .@"64bit", .sse2, null, null }, | 111206 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109087 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111207 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 109088 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111208 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109089 | .patterns = &.{ | 111209 | .patterns = &.{ |
| 109090 | .{ .src = .{ .to_mem, .none, .none } }, | 111210 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109091 | }, | 111211 | }, |
| 109092 | .call_frame = .{ .alignment = .@"16" }, | 111212 | .call_frame = .{ .alignment = .@"16" }, |
| 109093 | .extra_temps = .{ | 111213 | .extra_temps = .{ |
| 109094 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 109095 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111214 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109096 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111215 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 109097 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111216 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 109098 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, | 111217 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, |
| 109099 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111218 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| | 111219 | .unused, |
| 109100 | .unused, | 111220 | .unused, |
| 109101 | .unused, | 111221 | .unused, |
| 109102 | .unused, | 111222 | .unused, |
| ... | @@ -109106,33 +111226,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109106,33 +111226,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109106 | .dst_temps = .{ .mem, .unused }, | 111226 | .dst_temps = .{ .mem, .unused }, |
| 109107 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111227 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109108 | .each = .{ .once = &.{ | 111228 | .each = .{ .once = &.{ |
| 109109 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 111229 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109110 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111230 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109111 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111231 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 109112 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111232 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 109113 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111233 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 109114 | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, | 111234 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109115 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, | | |
| 109116 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 109117 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | | |
| 109118 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111235 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109119 | } }, | 111236 | } }, |
| 109120 | }, .{ | 111237 | }, .{ |
| 109121 | .required_features = .{ .@"64bit", .sse, null, null }, | 111238 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109122 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111239 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 109123 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111240 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109124 | .patterns = &.{ | 111241 | .patterns = &.{ |
| 109125 | .{ .src = .{ .to_mem, .none, .none } }, | 111242 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109126 | }, | 111243 | }, |
| 109127 | .call_frame = .{ .alignment = .@"16" }, | 111244 | .call_frame = .{ .alignment = .@"16" }, |
| 109128 | .extra_temps = .{ | 111245 | .extra_temps = .{ |
| 109129 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 109130 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111246 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109131 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111247 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 109132 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111248 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 109133 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, | 111249 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, |
| 109134 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111250 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109135 | .{ .type = .f32, .kind = .mem }, | 111251 | .unused, |
| | 111252 | .unused, |
| 109136 | .unused, | 111253 | .unused, |
| 109137 | .unused, | 111254 | .unused, |
| 109138 | .unused, | 111255 | .unused, |
| ... | @@ -109141,22 +111258,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109141,22 +111258,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109141 | .dst_temps = .{ .mem, .unused }, | 111258 | .dst_temps = .{ .mem, .unused }, |
| 109142 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111259 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109143 | .each = .{ .once = &.{ | 111260 | .each = .{ .once = &.{ |
| 109144 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 111261 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109145 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 111262 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109146 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111263 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 109147 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111264 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 109148 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111265 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 109149 | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, | 111266 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109150 | .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ }, | | |
| 109151 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, | | |
| 109152 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 109153 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | | |
| 109154 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111267 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109155 | } }, | 111268 | } }, |
| 109156 | }, .{ | 111269 | }, .{ |
| 109157 | .required_features = .{ .@"64bit", .avx, null, null }, | 111270 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109158 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111271 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109159 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111272 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109160 | .patterns = &.{ | 111273 | .patterns = &.{ |
| 109161 | .{ .src = .{ .to_mem, .none, .none } }, | 111274 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109162 | }, | 111275 | }, |
| ... | @@ -109166,8 +111279,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109166,8 +111279,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109166 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111279 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109167 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111280 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109168 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111281 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109169 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, | 111282 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, |
| 109170 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111283 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109171 | .unused, | 111284 | .unused, |
| 109172 | .unused, | 111285 | .unused, |
| 109173 | .unused, | 111286 | .unused, |
| ... | @@ -109182,15 +111295,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109182,15 +111295,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109182 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111295 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109183 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111296 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109184 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111297 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109185 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, | 111298 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 109186 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 111299 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109187 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | 111300 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109188 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111301 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109189 | } }, | 111302 | } }, |
| 109190 | }, .{ | 111303 | }, .{ |
| 109191 | .required_features = .{ .@"64bit", .sse4_1, null, null }, | 111304 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109192 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111305 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109193 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111306 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109194 | .patterns = &.{ | 111307 | .patterns = &.{ |
| 109195 | .{ .src = .{ .to_mem, .none, .none } }, | 111308 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109196 | }, | 111309 | }, |
| ... | @@ -109200,8 +111313,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109200,8 +111313,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109200 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111313 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109201 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111314 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109202 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111315 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109203 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, | 111316 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, |
| 109204 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111317 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109205 | .unused, | 111318 | .unused, |
| 109206 | .unused, | 111319 | .unused, |
| 109207 | .unused, | 111320 | .unused, |
| ... | @@ -109216,15 +111329,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109216,15 +111329,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109216 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111329 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109217 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111330 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109218 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111331 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109219 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, | 111332 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 109220 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 111333 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109221 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | 111334 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109222 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111335 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109223 | } }, | 111336 | } }, |
| 109224 | }, .{ | 111337 | }, .{ |
| 109225 | .required_features = .{ .@"64bit", .sse2, null, null }, | 111338 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109226 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111339 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109227 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111340 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109228 | .patterns = &.{ | 111341 | .patterns = &.{ |
| 109229 | .{ .src = .{ .to_mem, .none, .none } }, | 111342 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109230 | }, | 111343 | }, |
| ... | @@ -109234,8 +111347,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109234,8 +111347,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109234 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111347 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109235 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111348 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109236 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111349 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109237 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, | 111350 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, |
| 109238 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111351 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109239 | .unused, | 111352 | .unused, |
| 109240 | .unused, | 111353 | .unused, |
| 109241 | .unused, | 111354 | .unused, |
| ... | @@ -109250,16 +111363,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109250,16 +111363,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109250 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111363 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109251 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111364 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109252 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111365 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109253 | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, | 111366 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 109254 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, | | |
| 109255 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 111367 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109256 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | 111368 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109257 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109258 | } }, | 111370 | } }, |
| 109259 | }, .{ | 111371 | }, .{ |
| 109260 | .required_features = .{ .@"64bit", .sse, null, null }, | 111372 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109261 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111373 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109262 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, | 111374 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109263 | .patterns = &.{ | 111375 | .patterns = &.{ |
| 109264 | .{ .src = .{ .to_mem, .none, .none } }, | 111376 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109265 | }, | 111377 | }, |
| ... | @@ -109269,9 +111381,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109269,9 +111381,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109270 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111382 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109271 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 111383 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109272 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, | 111384 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, |
| 109273 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, | 111385 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109274 | .{ .type = .f32, .kind = .mem }, | 111386 | .unused, |
| 109275 | .unused, | 111387 | .unused, |
| 109276 | .unused, | 111388 | .unused, |
| 109277 | .unused, | 111389 | .unused, |
| ... | @@ -109285,23 +111397,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109285,23 +111397,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109285 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 111397 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109286 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 111398 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109287 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 111399 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109288 | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, | 111400 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 109289 | .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ }, | | |
| 109290 | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, | | |
| 109291 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 111401 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109292 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, | 111402 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109293 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111403 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109294 | } }, | 111404 | } }, |
| 109295 | }, .{ | 111405 | }, .{ |
| 109296 | .required_features = .{ .avx, null, null, null }, | 111406 | .required_features = .{ .avx, null, null, null }, |
| 109297 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | 111407 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 109298 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111408 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109299 | .patterns = &.{ | 111409 | .patterns = &.{ |
| 109300 | .{ .src = .{ .mem, .none, .none } }, | 111410 | .{ .src = .{ .mem, .none, .none } }, |
| 109301 | .{ .src = .{ .to_gpr, .none, .none } }, | 111411 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109302 | }, | 111412 | }, |
| 109303 | .extra_temps = .{ | 111413 | .extra_temps = .{ |
| 109304 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 111414 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109305 | .unused, | 111415 | .unused, |
| 109306 | .unused, | 111416 | .unused, |
| 109307 | .unused, | 111417 | .unused, |
| ... | @@ -109316,19 +111426,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109316,19 +111426,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109316 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111426 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109317 | .each = .{ .once = &.{ | 111427 | .each = .{ .once = &.{ |
| 109318 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 111428 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 109319 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 111429 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109320 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 111430 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 109321 | } }, | 111431 | } }, |
| 109322 | }, .{ | 111432 | }, .{ |
| 109323 | .required_features = .{ .sse, null, null, null }, | 111433 | .required_features = .{ .sse2, null, null, null }, |
| 109324 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | 111434 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 109325 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111435 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109326 | .patterns = &.{ | 111436 | .patterns = &.{ |
| 109327 | .{ .src = .{ .mem, .none, .none } }, | 111437 | .{ .src = .{ .mem, .none, .none } }, |
| 109328 | .{ .src = .{ .to_gpr, .none, .none } }, | 111438 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109329 | }, | 111439 | }, |
| 109330 | .extra_temps = .{ | 111440 | .extra_temps = .{ |
| 109331 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 111441 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109332 | .unused, | 111442 | .unused, |
| 109333 | .unused, | 111443 | .unused, |
| 109334 | .unused, | 111444 | .unused, |
| ... | @@ -109343,19 +111453,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109343,19 +111453,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109343 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111453 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109344 | .each = .{ .once = &.{ | 111454 | .each = .{ .once = &.{ |
| 109345 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 111455 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 109346 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | 111456 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109347 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 111457 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109348 | } }, | 111458 | } }, |
| 109349 | }, .{ | 111459 | }, .{ |
| 109350 | .required_features = .{ .avx, null, null, null }, | 111460 | .required_features = .{ .avx, null, null, null }, |
| 109351 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 111461 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 109352 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111462 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109353 | .patterns = &.{ | 111463 | .patterns = &.{ |
| 109354 | .{ .src = .{ .mem, .none, .none } }, | 111464 | .{ .src = .{ .mem, .none, .none } }, |
| 109355 | .{ .src = .{ .to_gpr, .none, .none } }, | 111465 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109356 | }, | 111466 | }, |
| 109357 | .extra_temps = .{ | 111467 | .extra_temps = .{ |
| 109358 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 111468 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109359 | .unused, | 111469 | .unused, |
| 109360 | .unused, | 111470 | .unused, |
| 109361 | .unused, | 111471 | .unused, |
| ... | @@ -109370,19 +111480,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109370,19 +111480,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109370 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111480 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109371 | .each = .{ .once = &.{ | 111481 | .each = .{ .once = &.{ |
| 109372 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 111482 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 109373 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 111483 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109374 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 111484 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 109375 | } }, | 111485 | } }, |
| 109376 | }, .{ | 111486 | }, .{ |
| 109377 | .required_features = .{ .sse, null, null, null }, | 111487 | .required_features = .{ .sse2, null, null, null }, |
| 109378 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 111488 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 109379 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111489 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109380 | .patterns = &.{ | 111490 | .patterns = &.{ |
| 109381 | .{ .src = .{ .mem, .none, .none } }, | 111491 | .{ .src = .{ .mem, .none, .none } }, |
| 109382 | .{ .src = .{ .to_gpr, .none, .none } }, | 111492 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109383 | }, | 111493 | }, |
| 109384 | .extra_temps = .{ | 111494 | .extra_temps = .{ |
| 109385 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 111495 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109386 | .unused, | 111496 | .unused, |
| 109387 | .unused, | 111497 | .unused, |
| 109388 | .unused, | 111498 | .unused, |
| ... | @@ -109397,13 +111507,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109397,13 +111507,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109397 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111507 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109398 | .each = .{ .once = &.{ | 111508 | .each = .{ .once = &.{ |
| 109399 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 111509 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 109400 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | 111510 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109401 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 111511 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109402 | } }, | 111512 | } }, |
| 109403 | }, .{ | 111513 | }, .{ |
| 109404 | .required_features = .{ .avx, null, null, null }, | 111514 | .required_features = .{ .avx, null, null, null }, |
| 109405 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, | 111515 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 109406 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111516 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109407 | .patterns = &.{ | 111517 | .patterns = &.{ |
| 109408 | .{ .src = .{ .mem, .none, .none } }, | 111518 | .{ .src = .{ .mem, .none, .none } }, |
| 109409 | .{ .src = .{ .to_gpr, .none, .none } }, | 111519 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | @@ -109424,13 +111534,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109424,13 +111534,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109424 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111534 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109425 | .each = .{ .once = &.{ | 111535 | .each = .{ .once = &.{ |
| 109426 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, | 111536 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 109427 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 111537 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109428 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 111538 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 109429 | } }, | 111539 | } }, |
| 109430 | }, .{ | 111540 | }, .{ |
| 109431 | .required_features = .{ .sse, null, null, null }, | 111541 | .required_features = .{ .sse2, null, null, null }, |
| 109432 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, | 111542 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 109433 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111543 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109434 | .patterns = &.{ | 111544 | .patterns = &.{ |
| 109435 | .{ .src = .{ .mem, .none, .none } }, | 111545 | .{ .src = .{ .mem, .none, .none } }, |
| 109436 | .{ .src = .{ .to_gpr, .none, .none } }, | 111546 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | @@ -109451,13 +111561,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109451,13 +111561,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109451 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111561 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109452 | .each = .{ .once = &.{ | 111562 | .each = .{ .once = &.{ |
| 109453 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, | 111563 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 109454 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | 111564 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109455 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 111565 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109456 | } }, | 111566 | } }, |
| 109457 | }, .{ | 111567 | }, .{ |
| 109458 | .required_features = .{ .avx, null, null, null }, | 111568 | .required_features = .{ .avx, null, null, null }, |
| 109459 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, | 111569 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 109460 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111570 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109461 | .patterns = &.{ | 111571 | .patterns = &.{ |
| 109462 | .{ .src = .{ .mem, .none, .none } }, | 111572 | .{ .src = .{ .mem, .none, .none } }, |
| 109463 | .{ .src = .{ .to_gpr, .none, .none } }, | 111573 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | @@ -109478,13 +111588,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109478,13 +111588,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109478 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111588 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109479 | .each = .{ .once = &.{ | 111589 | .each = .{ .once = &.{ |
| 109480 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | 111590 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 109481 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 111591 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109482 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 111592 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 109483 | } }, | 111593 | } }, |
| 109484 | }, .{ | 111594 | }, .{ |
| 109485 | .required_features = .{ .sse, null, null, null }, | 111595 | .required_features = .{ .sse2, null, null, null }, |
| 109486 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, | 111596 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 109487 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111597 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109488 | .patterns = &.{ | 111598 | .patterns = &.{ |
| 109489 | .{ .src = .{ .mem, .none, .none } }, | 111599 | .{ .src = .{ .mem, .none, .none } }, |
| 109490 | .{ .src = .{ .to_gpr, .none, .none } }, | 111600 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | @@ -109505,39 +111615,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109505,39 +111615,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109505 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111615 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109506 | .each = .{ .once = &.{ | 111616 | .each = .{ .once = &.{ |
| 109507 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | 111617 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 109508 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | 111618 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109509 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 111619 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109510 | } }, | 111620 | } }, |
| 109511 | }, .{ | 111621 | }, .{ |
| 109512 | .required_features = .{ .avx, null, null, null }, | 111622 | .required_features = .{ .avx, null, null, null }, |
| 109513 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, | 111623 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 109514 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111624 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109515 | .patterns = &.{ | 111625 | .patterns = &.{ |
| 109516 | .{ .src = .{ .mem, .none, .none } }, | 111626 | .{ .src = .{ .mem, .none, .none } }, |
| 109517 | .{ .src = .{ .to_gpr, .none, .none } }, | 111627 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109518 | }, | 111628 | }, |
| 109519 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111629 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109520 | .each = .{ .once = &.{ | 111630 | .each = .{ .once = &.{ |
| 109521 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 111631 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109522 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, | 111632 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, |
| 109523 | } }, | 111633 | } }, |
| 109524 | }, .{ | 111634 | }, .{ |
| 109525 | .required_features = .{ .sse, null, null, null }, | 111635 | .required_features = .{ .sse2, null, null, null }, |
| 109526 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, | 111636 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 109527 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111637 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109528 | .patterns = &.{ | 111638 | .patterns = &.{ |
| 109529 | .{ .src = .{ .mem, .none, .none } }, | 111639 | .{ .src = .{ .mem, .none, .none } }, |
| 109530 | .{ .src = .{ .to_gpr, .none, .none } }, | 111640 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109531 | }, | 111641 | }, |
| 109532 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111642 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109533 | .each = .{ .once = &.{ | 111643 | .each = .{ .once = &.{ |
| 109534 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | 111644 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109535 | .{ ._, ._ss, .cvtsi2, .dst0x, .src0d, ._, ._ }, | 111645 | .{ ._, ._sd, .cvtsi2, .dst0x, .src0d, ._, ._ }, |
| 109536 | } }, | 111646 | } }, |
| 109537 | }, .{ | 111647 | }, .{ |
| 109538 | .required_features = .{ .avx, null, null, null }, | 111648 | .required_features = .{ .avx, null, null, null }, |
| 109539 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, | 111649 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 109540 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111650 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109541 | .patterns = &.{ | 111651 | .patterns = &.{ |
| 109542 | .{ .src = .{ .mem, .none, .none } }, | 111652 | .{ .src = .{ .mem, .none, .none } }, |
| 109543 | .{ .src = .{ .to_gpr, .none, .none } }, | 111653 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | @@ -109558,13 +111668,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109558,13 +111668,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109558 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111668 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109559 | .each = .{ .once = &.{ | 111669 | .each = .{ .once = &.{ |
| 109560 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | 111670 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109561 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 111671 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109562 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, | 111672 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, |
| 109563 | } }, | 111673 | } }, |
| 109564 | }, .{ | 111674 | }, .{ |
| 109565 | .required_features = .{ .sse, null, null, null }, | 111675 | .required_features = .{ .sse2, null, null, null }, |
| 109566 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, | 111676 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 109567 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111677 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109568 | .patterns = &.{ | 111678 | .patterns = &.{ |
| 109569 | .{ .src = .{ .mem, .none, .none } }, | 111679 | .{ .src = .{ .mem, .none, .none } }, |
| 109570 | .{ .src = .{ .to_gpr, .none, .none } }, | 111680 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | @@ -109585,117 +111695,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109585,117 +111695,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109585 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 111695 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109586 | .each = .{ .once = &.{ | 111696 | .each = .{ .once = &.{ |
| 109587 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | 111697 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109588 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | 111698 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109589 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0q, ._, ._ }, | 111699 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0q, ._, ._ }, |
| 109590 | } }, | | |
| 109591 | }, .{ | | |
| 109592 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 109593 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, | | |
| 109594 | .dst_constraints = .{ .{ .float = .dword }, .any }, | | |
| 109595 | .patterns = &.{ | | |
| 109596 | .{ .src = .{ .mem, .none, .none } }, | | |
| 109597 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 109598 | }, | | |
| 109599 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 109600 | .each = .{ .once = &.{ | | |
| 109601 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 109602 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, | | |
| 109603 | } }, | 111700 | } }, |
| 109604 | }, .{ | 111701 | }, .{ |
| 109605 | .required_features = .{ .@"64bit", .sse, null, null }, | 111702 | .required_features = .{ .x87, null, null, null }, |
| 109606 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, | 111703 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 109607 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111704 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109608 | .patterns = &.{ | 111705 | .patterns = &.{ |
| 109609 | .{ .src = .{ .mem, .none, .none } }, | 111706 | .{ .src = .{ .mem, .none, .none } }, |
| 109610 | .{ .src = .{ .to_gpr, .none, .none } }, | 111707 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109611 | }, | 111708 | }, |
| 109612 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 109613 | .each = .{ .once = &.{ | | |
| 109614 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | | |
| 109615 | .{ ._, ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, | | |
| 109616 | } }, | | |
| 109617 | }, .{ | | |
| 109618 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 109619 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, | | |
| 109620 | .dst_constraints = .{ .{ .float = .dword }, .any }, | | |
| 109621 | .patterns = &.{ | | |
| 109622 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 109623 | }, | | |
| 109624 | .extra_temps = .{ | | |
| 109625 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, | | |
| 109626 | .unused, | | |
| 109627 | .unused, | | |
| 109628 | .unused, | | |
| 109629 | .unused, | | |
| 109630 | .unused, | | |
| 109631 | .unused, | | |
| 109632 | .unused, | | |
| 109633 | .unused, | | |
| 109634 | .unused, | | |
| 109635 | .unused, | | |
| 109636 | }, | | |
| 109637 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 109638 | .clobbers = .{ .eflags = true }, | | |
| 109639 | .each = .{ .once = &.{ | | |
| 109640 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 109641 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, | | |
| 109642 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, | | |
| 109643 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | | |
| 109644 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, | | |
| 109645 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, | | |
| 109646 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, | | |
| 109647 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, | | |
| 109648 | .{ ._, .v_ss, .add, .dst0x, .dst0x, .dst0d, ._ }, | | |
| 109649 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, | | |
| 109650 | .{ .@"1:", .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, | | |
| 109651 | } }, | | |
| 109652 | }, .{ | | |
| 109653 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 109654 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, | | |
| 109655 | .dst_constraints = .{ .{ .float = .dword }, .any }, | | |
| 109656 | .patterns = &.{ | | |
| 109657 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | | |
| 109658 | }, | | |
| 109659 | .extra_temps = .{ | | |
| 109660 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, | | |
| 109661 | .unused, | | |
| 109662 | .unused, | | |
| 109663 | .unused, | | |
| 109664 | .unused, | | |
| 109665 | .unused, | | |
| 109666 | .unused, | | |
| 109667 | .unused, | | |
| 109668 | .unused, | | |
| 109669 | .unused, | | |
| 109670 | .unused, | | |
| 109671 | }, | | |
| 109672 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 109673 | .clobbers = .{ .eflags = true }, | | |
| 109674 | .each = .{ .once = &.{ | | |
| 109675 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, | | |
| 109676 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, | | |
| 109677 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, | | |
| 109678 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | | |
| 109679 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, | | |
| 109680 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, | | |
| 109681 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, | | |
| 109682 | .{ ._, ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, | | |
| 109683 | .{ ._, ._ss, .add, .dst0x, .dst0d, ._, ._ }, | | |
| 109684 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, | | |
| 109685 | .{ .@"1:", ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, | | |
| 109686 | } }, | | |
| 109687 | }, .{ | | |
| 109688 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 109689 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, | | |
| 109690 | .dst_constraints = .{ .{ .float = .dword }, .any }, | | |
| 109691 | .patterns = &.{ | | |
| 109692 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | | |
| 109693 | }, | | |
| 109694 | .call_frame = .{ .alignment = .@"16" }, | | |
| 109695 | .extra_temps = .{ | 111709 | .extra_temps = .{ |
| 109696 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, | 111710 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109697 | .unused, | 111711 | .{ .type = .i16, .kind = .mem }, |
| 109698 | .unused, | 111712 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109699 | .unused, | 111713 | .unused, |
| 109700 | .unused, | 111714 | .unused, |
| 109701 | .unused, | 111715 | .unused, |
| ... | @@ -109705,23 +111719,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109705,23 +111719,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109705 | .unused, | 111719 | .unused, |
| 109706 | .unused, | 111720 | .unused, |
| 109707 | }, | 111721 | }, |
| 109708 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 111722 | .dst_temps = .{ .mem, .unused }, |
| 109709 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 109710 | .each = .{ .once = &.{ | 111723 | .each = .{ .once = &.{ |
| 109711 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 111724 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| | 111725 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| | 111726 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| | 111727 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109712 | } }, | 111728 | } }, |
| 109713 | }, .{ | 111729 | }, .{ |
| 109714 | .required_features = .{ .@"64bit", .sse, null, null }, | 111730 | .required_features = .{ .x87, null, null, null }, |
| 109715 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, | 111731 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 109716 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111732 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109717 | .patterns = &.{ | 111733 | .patterns = &.{ |
| 109718 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 111734 | .{ .src = .{ .mem, .none, .none } }, |
| | 111735 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109719 | }, | 111736 | }, |
| 109720 | .call_frame = .{ .alignment = .@"16" }, | | |
| 109721 | .extra_temps = .{ | 111737 | .extra_temps = .{ |
| 109722 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, | 111738 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109723 | .unused, | 111739 | .{ .type = .i16, .kind = .mem }, |
| 109724 | .unused, | 111740 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109725 | .unused, | 111741 | .unused, |
| 109726 | .unused, | 111742 | .unused, |
| 109727 | .unused, | 111743 | .unused, |
| ... | @@ -109731,51 +111747,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109731,51 +111747,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109731 | .unused, | 111747 | .unused, |
| 109732 | .unused, | 111748 | .unused, |
| 109733 | }, | 111749 | }, |
| 109734 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 111750 | .dst_temps = .{ .mem, .unused }, |
| 109735 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 109736 | .each = .{ .once = &.{ | 111751 | .each = .{ .once = &.{ |
| 109737 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 111752 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| | 111753 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| | 111754 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| | 111755 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109738 | } }, | 111756 | } }, |
| 109739 | }, .{ | 111757 | }, .{ |
| 109740 | .required_features = .{ .@"64bit", .sse, null, null }, | 111758 | .required_features = .{ .x87, null, null, null }, |
| 109741 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 111759 | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, |
| 109742 | .dst_constraints = .{ .{ .float = .dword }, .any }, | 111760 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109743 | .patterns = &.{ | 111761 | .patterns = &.{ |
| 109744 | .{ .src = .{ .to_mem, .none, .none } }, | 111762 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109745 | }, | 111763 | }, |
| 109746 | .call_frame = .{ .alignment = .@"16" }, | | |
| 109747 | .extra_temps = .{ | 111764 | .extra_temps = .{ |
| 109748 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 111765 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109749 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | | |
| 109750 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, | | |
| 109751 | .unused, | | |
| 109752 | .unused, | | |
| 109753 | .unused, | | |
| 109754 | .unused, | | |
| 109755 | .unused, | | |
| 109756 | .unused, | | |
| 109757 | .unused, | 111766 | .unused, |
| 109758 | .unused, | 111767 | .unused, |
| 109759 | }, | | |
| 109760 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | | |
| 109761 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 109762 | .each = .{ .once = &.{ | | |
| 109763 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 109764 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | | |
| 109765 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 109766 | } }, | | |
| 109767 | }, .{ | | |
| 109768 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 109769 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | | |
| 109770 | .dst_constraints = .{ .{ .float = .dword }, .any }, | | |
| 109771 | .patterns = &.{ | | |
| 109772 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 109773 | }, | | |
| 109774 | .call_frame = .{ .alignment = .@"16" }, | | |
| 109775 | .extra_temps = .{ | | |
| 109776 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | | |
| 109777 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | | |
| 109778 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, | | |
| 109779 | .unused, | 111768 | .unused, |
| 109780 | .unused, | 111769 | .unused, |
| 109781 | .unused, | 111770 | .unused, |
| ... | @@ -109785,102 +111774,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109785,102 +111774,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109785 | .unused, | 111774 | .unused, |
| 109786 | .unused, | 111775 | .unused, |
| 109787 | }, | 111776 | }, |
| 109788 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 111777 | .dst_temps = .{ .mem, .unused }, |
| 109789 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 109790 | .each = .{ .once = &.{ | | |
| 109791 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 109792 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | | |
| 109793 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 109794 | } }, | | |
| 109795 | }, .{ | | |
| 109796 | .required_features = .{ .avx, null, null, null }, | | |
| 109797 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 109798 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 109799 | .patterns = &.{ | | |
| 109800 | .{ .src = .{ .mem, .none, .none } }, | | |
| 109801 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 109802 | }, | | |
| 109803 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 109804 | .each = .{ .once = &.{ | | |
| 109805 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, | | |
| 109806 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | | |
| 109807 | } }, | | |
| 109808 | }, .{ | | |
| 109809 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 109810 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 109811 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 109812 | .patterns = &.{ | | |
| 109813 | .{ .src = .{ .mem, .none, .none } }, | | |
| 109814 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 109815 | }, | | |
| 109816 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 109817 | .each = .{ .once = &.{ | | |
| 109818 | .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, | | |
| 109819 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | | |
| 109820 | } }, | | |
| 109821 | }, .{ | | |
| 109822 | .required_features = .{ .avx2, null, null, null }, | | |
| 109823 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | | |
| 109824 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | | |
| 109825 | .patterns = &.{ | | |
| 109826 | .{ .src = .{ .mem, .none, .none } }, | | |
| 109827 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 109828 | }, | | |
| 109829 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 109830 | .each = .{ .once = &.{ | | |
| 109831 | .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, | | |
| 109832 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | | |
| 109833 | } }, | | |
| 109834 | }, .{ | | |
| 109835 | .required_features = .{ .avx, null, null, null }, | | |
| 109836 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 109837 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 109838 | .patterns = &.{ | | |
| 109839 | .{ .src = .{ .mem, .none, .none } }, | | |
| 109840 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 109841 | }, | | |
| 109842 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 109843 | .each = .{ .once = &.{ | | |
| 109844 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, | | |
| 109845 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | | |
| 109846 | } }, | | |
| 109847 | }, .{ | | |
| 109848 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 109849 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 109850 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 109851 | .patterns = &.{ | | |
| 109852 | .{ .src = .{ .mem, .none, .none } }, | | |
| 109853 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 109854 | }, | | |
| 109855 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 109856 | .each = .{ .once = &.{ | 111778 | .each = .{ .once = &.{ |
| 109857 | .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, | 111779 | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, |
| 109858 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 111780 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109859 | } }, | 111781 | } }, |
| 109860 | }, .{ | 111782 | }, .{ |
| 109861 | .required_features = .{ .avx2, null, null, null }, | 111783 | .required_features = .{ .x87, null, null, null }, |
| 109862 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | 111784 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, |
| 109863 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | 111785 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109864 | .patterns = &.{ | 111786 | .patterns = &.{ |
| 109865 | .{ .src = .{ .mem, .none, .none } }, | 111787 | .{ .src = .{ .mem, .none, .none } }, |
| 109866 | .{ .src = .{ .to_sse, .none, .none } }, | 111788 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109867 | }, | | |
| 109868 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 109869 | .each = .{ .once = &.{ | | |
| 109870 | .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, | | |
| 109871 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | | |
| 109872 | } }, | | |
| 109873 | }, .{ | | |
| 109874 | .required_features = .{ .avx2, null, null, null }, | | |
| 109875 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | | |
| 109876 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | | |
| 109877 | .patterns = &.{ | | |
| 109878 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 109879 | }, | 111789 | }, |
| 109880 | .extra_temps = .{ | 111790 | .extra_temps = .{ |
| 109881 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111791 | .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109882 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 111792 | .{ .type = .i32, .kind = .mem }, |
| 109883 | .unused, | 111793 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109884 | .unused, | 111794 | .unused, |
| 109885 | .unused, | 111795 | .unused, |
| 109886 | .unused, | 111796 | .unused, |
| ... | @@ -109891,55 +111801,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109891,55 +111801,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109891 | .unused, | 111801 | .unused, |
| 109892 | }, | 111802 | }, |
| 109893 | .dst_temps = .{ .mem, .unused }, | 111803 | .dst_temps = .{ .mem, .unused }, |
| 109894 | .clobbers = .{ .eflags = true }, | | |
| 109895 | .each = .{ .once = &.{ | 111804 | .each = .{ .once = &.{ |
| 109896 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111805 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 109897 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 111806 | .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, |
| 109898 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 111807 | .{ ._, .fi_, .ld, .tmp1d, ._, ._, ._ }, |
| 109899 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 111808 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109900 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 109901 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 109902 | } }, | 111809 | } }, |
| 109903 | }, .{ | 111810 | }, .{ |
| 109904 | .required_features = .{ .avx, null, null, null }, | 111811 | .required_features = .{ .x87, null, null, null }, |
| 109905 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 111812 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 109906 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 111813 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109907 | .patterns = &.{ | 111814 | .patterns = &.{ |
| 109908 | .{ .src = .{ .to_mem, .none, .none } }, | 111815 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109909 | }, | 111816 | }, |
| 109910 | .extra_temps = .{ | 111817 | .extra_temps = .{ |
| 109911 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111818 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109912 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | | |
| 109913 | .unused, | | |
| 109914 | .unused, | | |
| 109915 | .unused, | | |
| 109916 | .unused, | | |
| 109917 | .unused, | | |
| 109918 | .unused, | | |
| 109919 | .unused, | | |
| 109920 | .unused, | | |
| 109921 | .unused, | 111819 | .unused, |
| 109922 | }, | | |
| 109923 | .dst_temps = .{ .mem, .unused }, | | |
| 109924 | .clobbers = .{ .eflags = true }, | | |
| 109925 | .each = .{ .once = &.{ | | |
| 109926 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | | |
| 109927 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 109928 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | | |
| 109929 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 109930 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 109931 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 109932 | } }, | | |
| 109933 | }, .{ | | |
| 109934 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 109935 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 109936 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 109937 | .patterns = &.{ | | |
| 109938 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 109939 | }, | | |
| 109940 | .extra_temps = .{ | | |
| 109941 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 109942 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | | |
| 109943 | .unused, | 111820 | .unused, |
| 109944 | .unused, | 111821 | .unused, |
| 109945 | .unused, | 111822 | .unused, |
| ... | @@ -109951,26 +111828,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109951,26 +111828,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109951 | .unused, | 111828 | .unused, |
| 109952 | }, | 111829 | }, |
| 109953 | .dst_temps = .{ .mem, .unused }, | 111830 | .dst_temps = .{ .mem, .unused }, |
| 109954 | .clobbers = .{ .eflags = true }, | | |
| 109955 | .each = .{ .once = &.{ | 111831 | .each = .{ .once = &.{ |
| 109956 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111832 | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, |
| 109957 | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 111833 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109958 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | | |
| 109959 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 109960 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 109961 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 109962 | } }, | 111834 | } }, |
| 109963 | }, .{ | 111835 | }, .{ |
| 109964 | .required_features = .{ .avx2, null, null, null }, | 111836 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 109965 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, | 111837 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 109966 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | 111838 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109967 | .patterns = &.{ | 111839 | .patterns = &.{ |
| 109968 | .{ .src = .{ .to_mem, .none, .none } }, | 111840 | .{ .src = .{ .mem, .none, .none } }, |
| | 111841 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109969 | }, | 111842 | }, |
| 109970 | .extra_temps = .{ | 111843 | .extra_temps = .{ |
| 109971 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111844 | .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109972 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 111845 | .{ .type = .i64, .kind = .mem }, |
| 109973 | .unused, | 111846 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109974 | .unused, | 111847 | .unused, |
| 109975 | .unused, | 111848 | .unused, |
| 109976 | .unused, | 111849 | .unused, |
| ... | @@ -109981,88 +111854,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -109981,88 +111854,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109981 | .unused, | 111854 | .unused, |
| 109982 | }, | 111855 | }, |
| 109983 | .dst_temps = .{ .mem, .unused }, | 111856 | .dst_temps = .{ .mem, .unused }, |
| 109984 | .clobbers = .{ .eflags = true }, | | |
| 109985 | .each = .{ .once = &.{ | 111857 | .each = .{ .once = &.{ |
| 109986 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111858 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109987 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 111859 | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, |
| 109988 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 111860 | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, |
| 109989 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 111861 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109990 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 109991 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 109992 | } }, | 111862 | } }, |
| 109993 | }, .{ | 111863 | }, .{ |
| 109994 | .required_features = .{ .avx, null, null, null }, | 111864 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109995 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 111865 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 109996 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 111866 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109997 | .patterns = &.{ | 111867 | .patterns = &.{ |
| 109998 | .{ .src = .{ .to_mem, .none, .none } }, | 111868 | .{ .src = .{ .mem, .none, .none } }, |
| 109999 | }, | 111869 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 110000 | .extra_temps = .{ | | |
| 110001 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 110002 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | | |
| 110003 | .unused, | | |
| 110004 | .unused, | | |
| 110005 | .unused, | | |
| 110006 | .unused, | | |
| 110007 | .unused, | | |
| 110008 | .unused, | | |
| 110009 | .unused, | | |
| 110010 | .unused, | | |
| 110011 | .unused, | | |
| 110012 | }, | 111870 | }, |
| 110013 | .dst_temps = .{ .mem, .unused }, | 111871 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110014 | .clobbers = .{ .eflags = true }, | | |
| 110015 | .each = .{ .once = &.{ | 111872 | .each = .{ .once = &.{ |
| 110016 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111873 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 110017 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 111874 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| 110018 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | | |
| 110019 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 110020 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 110021 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 110022 | } }, | 111875 | } }, |
| 110023 | }, .{ | 111876 | }, .{ |
| 110024 | .required_features = .{ .sse4_1, null, null, null }, | 111877 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 110025 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 111878 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 110026 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 111879 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110027 | .patterns = &.{ | 111880 | .patterns = &.{ |
| 110028 | .{ .src = .{ .to_mem, .none, .none } }, | 111881 | .{ .src = .{ .mem, .none, .none } }, |
| 110029 | }, | 111882 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 110030 | .extra_temps = .{ | | |
| 110031 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 110032 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | | |
| 110033 | .unused, | | |
| 110034 | .unused, | | |
| 110035 | .unused, | | |
| 110036 | .unused, | | |
| 110037 | .unused, | | |
| 110038 | .unused, | | |
| 110039 | .unused, | | |
| 110040 | .unused, | | |
| 110041 | .unused, | | |
| 110042 | }, | 111883 | }, |
| 110043 | .dst_temps = .{ .mem, .unused }, | 111884 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110044 | .clobbers = .{ .eflags = true }, | | |
| 110045 | .each = .{ .once = &.{ | 111885 | .each = .{ .once = &.{ |
| 110046 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111886 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 110047 | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 111887 | .{ ._, ._sd, .cvtsi2, .dst0x, .src0q, ._, ._ }, |
| 110048 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | | |
| 110049 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 110050 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 110051 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 110052 | } }, | 111888 | } }, |
| 110053 | }, .{ | 111889 | }, .{ |
| 110054 | .required_features = .{ .avx, .slow_incdec, null, null }, | 111890 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 110055 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 111891 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 110056 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 111892 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110057 | .patterns = &.{ | 111893 | .patterns = &.{ |
| 110058 | .{ .src = .{ .to_mem, .none, .none } }, | 111894 | .{ .src = .{ .mem, .none, .none } }, |
| | 111895 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 110059 | }, | 111896 | }, |
| 110060 | .call_frame = .{ .alignment = .@"16" }, | 111897 | .extra_temps = .{ |
| 110061 | .extra_temps = .{ | 111898 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 110062 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111899 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110063 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 111900 | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, |
| 110064 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 111901 | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, |
| 110065 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 110066 | .unused, | 111902 | .unused, |
| 110067 | .unused, | 111903 | .unused, |
| 110068 | .unused, | 111904 | .unused, |
| ... | @@ -110071,29 +111907,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110071,29 +111907,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110071 | .unused, | 111907 | .unused, |
| 110072 | .unused, | 111908 | .unused, |
| 110073 | }, | 111909 | }, |
| 110074 | .dst_temps = .{ .mem, .unused }, | 111910 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110075 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 110076 | .each = .{ .once = &.{ | 111911 | .each = .{ .once = &.{ |
| 110077 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111912 | .{ ._, .v_q, .mov, .tmp0x, .src0q, ._, ._ }, |
| 110078 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 111913 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 110079 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 111914 | .{ ._, .vp_, .unpckldq, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, |
| 110080 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 111915 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 110081 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 111916 | .{ ._, .v_pd, .sub, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, |
| 110082 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 111917 | .{ ._, .v_pd, .unpckh, .dst0x, .tmp0x, .tmp0x, ._ }, |
| | 111918 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 110083 | } }, | 111919 | } }, |
| 110084 | }, .{ | 111920 | }, .{ |
| 110085 | .required_features = .{ .avx, null, null, null }, | 111921 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 110086 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 111922 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 110087 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 111923 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110088 | .patterns = &.{ | 111924 | .patterns = &.{ |
| 110089 | .{ .src = .{ .to_mem, .none, .none } }, | 111925 | .{ .src = .{ .mem, .none, .none } }, |
| | 111926 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 110090 | }, | 111927 | }, |
| 110091 | .call_frame = .{ .alignment = .@"16" }, | | |
| 110092 | .extra_temps = .{ | 111928 | .extra_temps = .{ |
| 110093 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111929 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 110094 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 111930 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110095 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 111931 | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, |
| 110096 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 111932 | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, |
| 110097 | .unused, | 111933 | .unused, |
| 110098 | .unused, | 111934 | .unused, |
| 110099 | .unused, | 111935 | .unused, |
| ... | @@ -110102,29 +111938,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110102,29 +111938,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110102 | .unused, | 111938 | .unused, |
| 110103 | .unused, | 111939 | .unused, |
| 110104 | }, | 111940 | }, |
| 110105 | .dst_temps = .{ .mem, .unused }, | 111941 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110106 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 110107 | .each = .{ .once = &.{ | 111942 | .each = .{ .once = &.{ |
| 110108 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111943 | .{ ._, ._q, .mov, .tmp0x, .src0q, ._, ._ }, |
| 110109 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 111944 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 110110 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 111945 | .{ ._, .p_, .unpckldq, .tmp0x, .lea(.tmp1x), ._, ._ }, |
| 110111 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 111946 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 110112 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 111947 | .{ ._, ._pd, .sub, .tmp0x, .lea(.tmp1x), ._, ._ }, |
| 110113 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 111948 | .{ ._, ._pd, .mova, .dst0x, .tmp0x, ._, ._ }, |
| | 111949 | .{ ._, ._pd, .unpckh, .dst0x, .dst0x, ._, ._ }, |
| | 111950 | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, |
| 110114 | } }, | 111951 | } }, |
| 110115 | }, .{ | 111952 | }, .{ |
| 110116 | .required_features = .{ .sse, .slow_incdec, null, null }, | 111953 | .required_features = .{ .x87, null, null, null }, |
| 110117 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 111954 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 110118 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 111955 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110119 | .patterns = &.{ | 111956 | .patterns = &.{ |
| 110120 | .{ .src = .{ .to_mem, .none, .none } }, | 111957 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110121 | }, | 111958 | }, |
| 110122 | .call_frame = .{ .alignment = .@"16" }, | | |
| 110123 | .extra_temps = .{ | 111959 | .extra_temps = .{ |
| 110124 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111960 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 110125 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 111961 | .unused, |
| 110126 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 111962 | .unused, |
| 110127 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 111963 | .unused, |
| 110128 | .unused, | 111964 | .unused, |
| 110129 | .unused, | 111965 | .unused, |
| 110130 | .unused, | 111966 | .unused, |
| ... | @@ -110134,28 +111970,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110134,28 +111970,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110134 | .unused, | 111970 | .unused, |
| 110135 | }, | 111971 | }, |
| 110136 | .dst_temps = .{ .mem, .unused }, | 111972 | .dst_temps = .{ .mem, .unused }, |
| 110137 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 110138 | .each = .{ .once = &.{ | 111973 | .each = .{ .once = &.{ |
| 110139 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 111974 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 110140 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 111975 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 110141 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 110142 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 110143 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 110144 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 110145 | } }, | 111976 | } }, |
| 110146 | }, .{ | 111977 | }, .{ |
| 110147 | .required_features = .{ .sse, null, null, null }, | 111978 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 110148 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 111979 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 110149 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 111980 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110150 | .patterns = &.{ | 111981 | .patterns = &.{ |
| 110151 | .{ .src = .{ .to_mem, .none, .none } }, | 111982 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 110152 | }, | 111983 | }, |
| 110153 | .call_frame = .{ .alignment = .@"16" }, | | |
| 110154 | .extra_temps = .{ | 111984 | .extra_temps = .{ |
| 110155 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 111985 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 110156 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 111986 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 110157 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 111987 | .unused, |
| 110158 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 111988 | .unused, |
| 110159 | .unused, | 111989 | .unused, |
| 110160 | .unused, | 111990 | .unused, |
| 110161 | .unused, | 111991 | .unused, |
| ... | @@ -110165,28 +111995,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110165,28 +111995,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110165 | .unused, | 111995 | .unused, |
| 110166 | }, | 111996 | }, |
| 110167 | .dst_temps = .{ .mem, .unused }, | 111997 | .dst_temps = .{ .mem, .unused }, |
| 110168 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 111998 | .clobbers = .{ .eflags = true }, |
| 110169 | .each = .{ .once = &.{ | 111999 | .each = .{ .once = &.{ |
| 110170 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112000 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 110171 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 112001 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 110172 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112002 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 110173 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112003 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 110174 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 112004 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| 110175 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 112005 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, |
| | 112006 | .{ ._, ._, .mov, .dst0q, .src0q, ._, ._ }, |
| | 112007 | .{ ._, .fi_, .ld, .dst0q, ._, ._, ._ }, |
| | 112008 | .{ ._, .f_, .add, .tmp1t, .tmp1t, ._, ._ }, |
| | 112009 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 112010 | .{ .pseudo, .f_cstp, .in, ._, ._, ._, ._ }, |
| | 112011 | .{ .@"1:", ._, .mov, .dst0q, .src0q, ._, ._ }, |
| | 112012 | .{ ._, .fi_, .ld, .dst0q, ._, ._, ._ }, |
| | 112013 | .{ .@"0:", .f_p, .st, .dst0q, ._, ._, ._ }, |
| 110176 | } }, | 112014 | } }, |
| 110177 | }, .{ | 112015 | }, .{ |
| 110178 | .required_features = .{ .avx, .slow_incdec, null, null }, | 112016 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 110179 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 112017 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 110180 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112018 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110181 | .patterns = &.{ | 112019 | .patterns = &.{ |
| 110182 | .{ .src = .{ .to_mem, .none, .none } }, | 112020 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 110183 | }, | 112021 | }, |
| 110184 | .call_frame = .{ .alignment = .@"16" }, | 112022 | .call_frame = .{ .alignment = .@"16" }, |
| 110185 | .extra_temps = .{ | 112023 | .extra_temps = .{ |
| 110186 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112024 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 110187 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112025 | .unused, |
| 110188 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112026 | .unused, |
| 110189 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112027 | .unused, |
| 110190 | .unused, | 112028 | .unused, |
| 110191 | .unused, | 112029 | .unused, |
| 110192 | .unused, | 112030 | .unused, |
| ... | @@ -110195,29 +112033,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110195,29 +112033,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110195 | .unused, | 112033 | .unused, |
| 110196 | .unused, | 112034 | .unused, |
| 110197 | }, | 112035 | }, |
| 110198 | .dst_temps = .{ .mem, .unused }, | 112036 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110199 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112037 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110200 | .each = .{ .once = &.{ | 112038 | .each = .{ .once = &.{ |
| 110201 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112039 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 110202 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 110203 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 110204 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 110205 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 110206 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 110207 | } }, | 112040 | } }, |
| 110208 | }, .{ | 112041 | }, .{ |
| 110209 | .required_features = .{ .avx, null, null, null }, | 112042 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 110210 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 112043 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 110211 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112044 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110212 | .patterns = &.{ | 112045 | .patterns = &.{ |
| 110213 | .{ .src = .{ .to_mem, .none, .none } }, | 112046 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 110214 | }, | 112047 | }, |
| 110215 | .call_frame = .{ .alignment = .@"16" }, | 112048 | .call_frame = .{ .alignment = .@"16" }, |
| 110216 | .extra_temps = .{ | 112049 | .extra_temps = .{ |
| 110217 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112050 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 110218 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112051 | .unused, |
| 110219 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112052 | .unused, |
| 110220 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112053 | .unused, |
| 110221 | .unused, | 112054 | .unused, |
| 110222 | .unused, | 112055 | .unused, |
| 110223 | .unused, | 112056 | .unused, |
| ... | @@ -110226,29 +112059,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110226,29 +112059,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110226 | .unused, | 112059 | .unused, |
| 110227 | .unused, | 112060 | .unused, |
| 110228 | }, | 112061 | }, |
| 110229 | .dst_temps = .{ .mem, .unused }, | 112062 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110230 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112063 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110231 | .each = .{ .once = &.{ | 112064 | .each = .{ .once = &.{ |
| 110232 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112065 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 110233 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 110234 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 110235 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 110236 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 110237 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 110238 | } }, | 112066 | } }, |
| 110239 | }, .{ | 112067 | }, .{ |
| 110240 | .required_features = .{ .sse, .slow_incdec, null, null }, | 112068 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 110241 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 112069 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110242 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112070 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110243 | .patterns = &.{ | 112071 | .patterns = &.{ |
| 110244 | .{ .src = .{ .to_mem, .none, .none } }, | 112072 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110245 | }, | 112073 | }, |
| 110246 | .call_frame = .{ .alignment = .@"16" }, | 112074 | .call_frame = .{ .alignment = .@"16" }, |
| 110247 | .extra_temps = .{ | 112075 | .extra_temps = .{ |
| 110248 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112076 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110249 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112077 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 110250 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112078 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 110251 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112079 | .unused, |
| 110252 | .unused, | 112080 | .unused, |
| 110253 | .unused, | 112081 | .unused, |
| 110254 | .unused, | 112082 | .unused, |
| ... | @@ -110257,29 +112085,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110257,29 +112085,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110257 | .unused, | 112085 | .unused, |
| 110258 | .unused, | 112086 | .unused, |
| 110259 | }, | 112087 | }, |
| 110260 | .dst_temps = .{ .mem, .unused }, | 112088 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110261 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112089 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110262 | .each = .{ .once = &.{ | 112090 | .each = .{ .once = &.{ |
| 110263 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112091 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110264 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 112092 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110265 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112093 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110266 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 110267 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 110268 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 110269 | } }, | 112094 | } }, |
| 110270 | }, .{ | 112095 | }, .{ |
| 110271 | .required_features = .{ .sse, null, null, null }, | 112096 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 110272 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 112097 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110273 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112098 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110274 | .patterns = &.{ | 112099 | .patterns = &.{ |
| 110275 | .{ .src = .{ .to_mem, .none, .none } }, | 112100 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110276 | }, | 112101 | }, |
| 110277 | .call_frame = .{ .alignment = .@"16" }, | 112102 | .call_frame = .{ .alignment = .@"16" }, |
| 110278 | .extra_temps = .{ | 112103 | .extra_temps = .{ |
| 110279 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112104 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110280 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112105 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 110281 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112106 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 110282 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112107 | .unused, |
| 110283 | .unused, | 112108 | .unused, |
| 110284 | .unused, | 112109 | .unused, |
| 110285 | .unused, | 112110 | .unused, |
| ... | @@ -110288,98 +112113,95 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110288,98 +112113,95 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110288 | .unused, | 112113 | .unused, |
| 110289 | .unused, | 112114 | .unused, |
| 110290 | }, | 112115 | }, |
| 110291 | .dst_temps = .{ .mem, .unused }, | 112116 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110292 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112117 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110293 | .each = .{ .once = &.{ | 112118 | .each = .{ .once = &.{ |
| 110294 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112119 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110295 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 112120 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110296 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112121 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110297 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 110298 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 110299 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 110300 | } }, | 112122 | } }, |
| 110301 | }, .{ | 112123 | }, .{ |
| 110302 | .required_features = .{ .avx, null, null, null }, | 112124 | .required_features = .{ .avx, null, null, null }, |
| 110303 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112125 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110304 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112126 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110305 | .patterns = &.{ | 112127 | .patterns = &.{ |
| 110306 | .{ .src = .{ .mem, .none, .none } }, | 112128 | .{ .src = .{ .mem, .none, .none } }, |
| 110307 | .{ .src = .{ .to_sse, .none, .none } }, | 112129 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110308 | }, | 112130 | }, |
| 110309 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 112131 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110310 | .each = .{ .once = &.{ | 112132 | .each = .{ .once = &.{ |
| 110311 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 112133 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 110312 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 112134 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110313 | } }, | 112135 | } }, |
| 110314 | }, .{ | 112136 | }, .{ |
| 110315 | .required_features = .{ .sse4_1, null, null, null }, | 112137 | .required_features = .{ .sse4_1, null, null, null }, |
| 110316 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112138 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110317 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112139 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110318 | .patterns = &.{ | 112140 | .patterns = &.{ |
| 110319 | .{ .src = .{ .mem, .none, .none } }, | 112141 | .{ .src = .{ .mem, .none, .none } }, |
| 110320 | .{ .src = .{ .to_sse, .none, .none } }, | 112142 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110321 | }, | 112143 | }, |
| 110322 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 112144 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110323 | .each = .{ .once = &.{ | 112145 | .each = .{ .once = &.{ |
| 110324 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 112146 | .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 110325 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 112147 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110326 | } }, | 112148 | } }, |
| 110327 | }, .{ | 112149 | }, .{ |
| 110328 | .required_features = .{ .avx2, null, null, null }, | 112150 | .required_features = .{ .avx2, null, null, null }, |
| 110329 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 112151 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 110330 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | 112152 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110331 | .patterns = &.{ | 112153 | .patterns = &.{ |
| 110332 | .{ .src = .{ .mem, .none, .none } }, | 112154 | .{ .src = .{ .mem, .none, .none } }, |
| 110333 | .{ .src = .{ .to_sse, .none, .none } }, | 112155 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110334 | }, | 112156 | }, |
| 110335 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 112157 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110336 | .each = .{ .once = &.{ | 112158 | .each = .{ .once = &.{ |
| 110337 | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, | 112159 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 110338 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | 112160 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 110339 | } }, | 112161 | } }, |
| 110340 | }, .{ | 112162 | }, .{ |
| 110341 | .required_features = .{ .avx, null, null, null }, | 112163 | .required_features = .{ .avx, null, null, null }, |
| 110342 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112164 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110343 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112165 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110344 | .patterns = &.{ | 112166 | .patterns = &.{ |
| 110345 | .{ .src = .{ .mem, .none, .none } }, | 112167 | .{ .src = .{ .mem, .none, .none } }, |
| 110346 | .{ .src = .{ .to_sse, .none, .none } }, | 112168 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110347 | }, | 112169 | }, |
| 110348 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 112170 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110349 | .each = .{ .once = &.{ | 112171 | .each = .{ .once = &.{ |
| 110350 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 112172 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 110351 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 112173 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110352 | } }, | 112174 | } }, |
| 110353 | }, .{ | 112175 | }, .{ |
| 110354 | .required_features = .{ .sse4_1, null, null, null }, | 112176 | .required_features = .{ .sse4_1, null, null, null }, |
| 110355 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112177 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110356 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112178 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110357 | .patterns = &.{ | 112179 | .patterns = &.{ |
| 110358 | .{ .src = .{ .mem, .none, .none } }, | 112180 | .{ .src = .{ .mem, .none, .none } }, |
| 110359 | .{ .src = .{ .to_sse, .none, .none } }, | 112181 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110360 | }, | 112182 | }, |
| 110361 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 112183 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110362 | .each = .{ .once = &.{ | 112184 | .each = .{ .once = &.{ |
| 110363 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 112185 | .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 110364 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, | 112186 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110365 | } }, | 112187 | } }, |
| 110366 | }, .{ | 112188 | }, .{ |
| 110367 | .required_features = .{ .avx2, null, null, null }, | 112189 | .required_features = .{ .avx2, null, null, null }, |
| 110368 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 112190 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 110369 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | 112191 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110370 | .patterns = &.{ | 112192 | .patterns = &.{ |
| 110371 | .{ .src = .{ .mem, .none, .none } }, | 112193 | .{ .src = .{ .mem, .none, .none } }, |
| 110372 | .{ .src = .{ .to_sse, .none, .none } }, | 112194 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110373 | }, | 112195 | }, |
| 110374 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 112196 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110375 | .each = .{ .once = &.{ | 112197 | .each = .{ .once = &.{ |
| 110376 | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, | 112198 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 110377 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, | 112199 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 110378 | } }, | 112200 | } }, |
| 110379 | }, .{ | 112201 | }, .{ |
| 110380 | .required_features = .{ .avx2, null, null, null }, | 112202 | .required_features = .{ .avx2, null, null, null }, |
| 110381 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 112203 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 110382 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | 112204 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110383 | .patterns = &.{ | 112205 | .patterns = &.{ |
| 110384 | .{ .src = .{ .to_mem, .none, .none } }, | 112206 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110385 | }, | 112207 | }, |
| ... | @@ -110400,16 +112222,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110400,16 +112222,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110400 | .clobbers = .{ .eflags = true }, | 112222 | .clobbers = .{ .eflags = true }, |
| 110401 | .each = .{ .once = &.{ | 112223 | .each = .{ .once = &.{ |
| 110402 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112224 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110403 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 112225 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110404 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 112226 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 110405 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 112227 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 110406 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 112228 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 110407 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112229 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110408 | } }, | 112230 | } }, |
| 110409 | }, .{ | 112231 | }, .{ |
| 110410 | .required_features = .{ .avx, null, null, null }, | 112232 | .required_features = .{ .avx, null, null, null }, |
| 110411 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112233 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110412 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112234 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110413 | .patterns = &.{ | 112235 | .patterns = &.{ |
| 110414 | .{ .src = .{ .to_mem, .none, .none } }, | 112236 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110415 | }, | 112237 | }, |
| ... | @@ -110430,16 +112252,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110430,16 +112252,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110430 | .clobbers = .{ .eflags = true }, | 112252 | .clobbers = .{ .eflags = true }, |
| 110431 | .each = .{ .once = &.{ | 112253 | .each = .{ .once = &.{ |
| 110432 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112254 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110433 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 112255 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 110434 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 112256 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 110435 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 112257 | .{ ._, .vp_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 110436 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 112258 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| | 112259 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 112260 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110437 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112261 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110438 | } }, | 112262 | } }, |
| 110439 | }, .{ | 112263 | }, .{ |
| 110440 | .required_features = .{ .sse4_1, null, null, null }, | 112264 | .required_features = .{ .sse4_1, null, null, null }, |
| 110441 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112265 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110442 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112266 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110443 | .patterns = &.{ | 112267 | .patterns = &.{ |
| 110444 | .{ .src = .{ .to_mem, .none, .none } }, | 112268 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110445 | }, | 112269 | }, |
| ... | @@ -110460,16 +112284,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110460,16 +112284,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110460 | .clobbers = .{ .eflags = true }, | 112284 | .clobbers = .{ .eflags = true }, |
| 110461 | .each = .{ .once = &.{ | 112285 | .each = .{ .once = &.{ |
| 110462 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112286 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110463 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 112287 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 110464 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 112288 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 110465 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 112289 | .{ ._, .p_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 110466 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 112290 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| | 112291 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 112292 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110467 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112293 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110468 | } }, | 112294 | } }, |
| 110469 | }, .{ | 112295 | }, .{ |
| 110470 | .required_features = .{ .avx2, null, null, null }, | 112296 | .required_features = .{ .avx2, null, null, null }, |
| 110471 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, | 112297 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 110472 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | 112298 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110473 | .patterns = &.{ | 112299 | .patterns = &.{ |
| 110474 | .{ .src = .{ .to_mem, .none, .none } }, | 112300 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110475 | }, | 112301 | }, |
| ... | @@ -110490,16 +112316,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110490,16 +112316,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110490 | .clobbers = .{ .eflags = true }, | 112316 | .clobbers = .{ .eflags = true }, |
| 110491 | .each = .{ .once = &.{ | 112317 | .each = .{ .once = &.{ |
| 110492 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112318 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110493 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 112319 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110494 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, | 112320 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 110495 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 112321 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 110496 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 112322 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 110497 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112323 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110498 | } }, | 112324 | } }, |
| 110499 | }, .{ | 112325 | }, .{ |
| 110500 | .required_features = .{ .avx, null, null, null }, | 112326 | .required_features = .{ .avx, null, null, null }, |
| 110501 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112327 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110502 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112328 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110503 | .patterns = &.{ | 112329 | .patterns = &.{ |
| 110504 | .{ .src = .{ .to_mem, .none, .none } }, | 112330 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110505 | }, | 112331 | }, |
| ... | @@ -110520,16 +112346,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110520,16 +112346,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110520 | .clobbers = .{ .eflags = true }, | 112346 | .clobbers = .{ .eflags = true }, |
| 110521 | .each = .{ .once = &.{ | 112347 | .each = .{ .once = &.{ |
| 110522 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112348 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110523 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 112349 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 110524 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 112350 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 110525 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 112351 | .{ ._, .vp_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 110526 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 112352 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| | 112353 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 112354 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110527 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112355 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110528 | } }, | 112356 | } }, |
| 110529 | }, .{ | 112357 | }, .{ |
| 110530 | .required_features = .{ .sse4_1, null, null, null }, | 112358 | .required_features = .{ .sse4_1, null, null, null }, |
| 110531 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 112359 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 110532 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112360 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110533 | .patterns = &.{ | 112361 | .patterns = &.{ |
| 110534 | .{ .src = .{ .to_mem, .none, .none } }, | 112362 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110535 | }, | 112363 | }, |
| ... | @@ -110550,16 +112378,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110550,16 +112378,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110550 | .clobbers = .{ .eflags = true }, | 112378 | .clobbers = .{ .eflags = true }, |
| 110551 | .each = .{ .once = &.{ | 112379 | .each = .{ .once = &.{ |
| 110552 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112380 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110553 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 112381 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 110554 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, | 112382 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 110555 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 112383 | .{ ._, .p_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 110556 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 112384 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| | 112385 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 112386 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110557 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112387 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110558 | } }, | 112388 | } }, |
| 110559 | }, .{ | 112389 | }, .{ |
| 110560 | .required_features = .{ .avx, null, null, null }, | 112390 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 110561 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 112391 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110562 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112392 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110563 | .patterns = &.{ | 112393 | .patterns = &.{ |
| 110564 | .{ .src = .{ .to_mem, .none, .none } }, | 112394 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110565 | }, | 112395 | }, |
| ... | @@ -110567,8 +112397,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110567,8 +112397,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110567 | .extra_temps = .{ | 112397 | .extra_temps = .{ |
| 110568 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112398 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110569 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 112399 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110570 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 112400 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 110571 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112401 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110572 | .unused, | 112402 | .unused, |
| 110573 | .unused, | 112403 | .unused, |
| 110574 | .unused, | 112404 | .unused, |
| ... | @@ -110581,16 +112411,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110581,16 +112411,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110581 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112411 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110582 | .each = .{ .once = &.{ | 112412 | .each = .{ .once = &.{ |
| 110583 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112413 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110584 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 112414 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110585 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112415 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110586 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112416 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110587 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 112417 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110588 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112418 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110589 | } }, | 112419 | } }, |
| 110590 | }, .{ | 112420 | }, .{ |
| 110591 | .required_features = .{ .sse, null, null, null }, | 112421 | .required_features = .{ .avx, null, null, null }, |
| 110592 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 112422 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110593 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112423 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110594 | .patterns = &.{ | 112424 | .patterns = &.{ |
| 110595 | .{ .src = .{ .to_mem, .none, .none } }, | 112425 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110596 | }, | 112426 | }, |
| ... | @@ -110598,8 +112428,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110598,8 +112428,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110598 | .extra_temps = .{ | 112428 | .extra_temps = .{ |
| 110599 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112429 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110600 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 112430 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110601 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 112431 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 110602 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112432 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110603 | .unused, | 112433 | .unused, |
| 110604 | .unused, | 112434 | .unused, |
| 110605 | .unused, | 112435 | .unused, |
| ... | @@ -110612,25 +112442,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110612,25 +112442,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110612 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112442 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110613 | .each = .{ .once = &.{ | 112443 | .each = .{ .once = &.{ |
| 110614 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112444 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110615 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 112445 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110616 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112446 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110617 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112447 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110618 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 112448 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110619 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112449 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110620 | } }, | 112450 | } }, |
| 110621 | }, .{ | 112451 | }, .{ |
| 110622 | .required_features = .{ .avx, null, null, null }, | 112452 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 110623 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 112453 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110624 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112454 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110625 | .patterns = &.{ | 112455 | .patterns = &.{ |
| 110626 | .{ .src = .{ .to_mem, .none, .none } }, | 112456 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110627 | }, | 112457 | }, |
| 110628 | .call_frame = .{ .alignment = .@"16" }, | 112458 | .call_frame = .{ .alignment = .@"16" }, |
| 110629 | .extra_temps = .{ | 112459 | .extra_temps = .{ |
| 110630 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112460 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110631 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112461 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110632 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112462 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 110633 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112463 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110634 | .unused, | 112464 | .unused, |
| 110635 | .unused, | 112465 | .unused, |
| 110636 | .unused, | 112466 | .unused, |
| ... | @@ -110643,25 +112473,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110643,25 +112473,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110643 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112473 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110644 | .each = .{ .once = &.{ | 112474 | .each = .{ .once = &.{ |
| 110645 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112475 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110646 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 112476 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110647 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112477 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110648 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112478 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110649 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 112479 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110650 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112480 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110651 | } }, | 112481 | } }, |
| 110652 | }, .{ | 112482 | }, .{ |
| 110653 | .required_features = .{ .sse, null, null, null }, | 112483 | .required_features = .{ .sse2, null, null, null }, |
| 110654 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 112484 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110655 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112485 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110656 | .patterns = &.{ | 112486 | .patterns = &.{ |
| 110657 | .{ .src = .{ .to_mem, .none, .none } }, | 112487 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110658 | }, | 112488 | }, |
| 110659 | .call_frame = .{ .alignment = .@"16" }, | 112489 | .call_frame = .{ .alignment = .@"16" }, |
| 110660 | .extra_temps = .{ | 112490 | .extra_temps = .{ |
| 110661 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112491 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110662 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112492 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110663 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112493 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 110664 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112494 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110665 | .unused, | 112495 | .unused, |
| 110666 | .unused, | 112496 | .unused, |
| 110667 | .unused, | 112497 | .unused, |
| ... | @@ -110674,60 +112504,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110674,60 +112504,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110674 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112504 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110675 | .each = .{ .once = &.{ | 112505 | .each = .{ .once = &.{ |
| 110676 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112506 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110677 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 112507 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110678 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112508 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110679 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112509 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110680 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 112510 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110681 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112511 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110682 | } }, | | |
| 110683 | }, .{ | | |
| 110684 | .required_features = .{ .avx, null, null, null }, | | |
| 110685 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | | |
| 110686 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 110687 | .patterns = &.{ | | |
| 110688 | .{ .src = .{ .mem, .none, .none } }, | | |
| 110689 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 110690 | }, | | |
| 110691 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 110692 | .each = .{ .once = &.{ | | |
| 110693 | .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, | | |
| 110694 | } }, | | |
| 110695 | }, .{ | | |
| 110696 | .required_features = .{ .sse2, null, null, null }, | | |
| 110697 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | | |
| 110698 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | | |
| 110699 | .patterns = &.{ | | |
| 110700 | .{ .src = .{ .mem, .none, .none } }, | | |
| 110701 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 110702 | }, | | |
| 110703 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 110704 | .each = .{ .once = &.{ | | |
| 110705 | .{ ._, ._ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, | | |
| 110706 | } }, | | |
| 110707 | }, .{ | | |
| 110708 | .required_features = .{ .avx2, null, null, null }, | | |
| 110709 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | | |
| 110710 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | | |
| 110711 | .patterns = &.{ | | |
| 110712 | .{ .src = .{ .mem, .none, .none } }, | | |
| 110713 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 110714 | }, | | |
| 110715 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 110716 | .each = .{ .once = &.{ | | |
| 110717 | .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, | | |
| 110718 | } }, | 112512 | } }, |
| 110719 | }, .{ | 112513 | }, .{ |
| 110720 | .required_features = .{ .avx2, null, null, null }, | 112514 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 110721 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, | 112515 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110722 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, | 112516 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110723 | .patterns = &.{ | 112517 | .patterns = &.{ |
| 110724 | .{ .src = .{ .to_mem, .none, .none } }, | 112518 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110725 | }, | 112519 | }, |
| | 112520 | .call_frame = .{ .alignment = .@"16" }, |
| 110726 | .extra_temps = .{ | 112521 | .extra_temps = .{ |
| 110727 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112522 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110728 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 112523 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110729 | .unused, | 112524 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 110730 | .unused, | 112525 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110731 | .unused, | 112526 | .unused, |
| 110732 | .unused, | 112527 | .unused, |
| 110733 | .unused, | 112528 | .unused, |
| ... | @@ -110737,26 +112532,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110737,26 +112532,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110737 | .unused, | 112532 | .unused, |
| 110738 | }, | 112533 | }, |
| 110739 | .dst_temps = .{ .mem, .unused }, | 112534 | .dst_temps = .{ .mem, .unused }, |
| 110740 | .clobbers = .{ .eflags = true }, | 112535 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110741 | .each = .{ .once = &.{ | 112536 | .each = .{ .once = &.{ |
| 110742 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 112537 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110743 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, | 112538 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110744 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 112539 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110745 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, | 112540 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 112541 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110746 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112542 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110747 | } }, | 112543 | } }, |
| 110748 | }, .{ | 112544 | }, .{ |
| 110749 | .required_features = .{ .avx, null, null, null }, | 112545 | .required_features = .{ .sse, null, null, null }, |
| 110750 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 112546 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110751 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112547 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110752 | .patterns = &.{ | 112548 | .patterns = &.{ |
| 110753 | .{ .src = .{ .to_mem, .none, .none } }, | 112549 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110754 | }, | 112550 | }, |
| | 112551 | .call_frame = .{ .alignment = .@"16" }, |
| 110755 | .extra_temps = .{ | 112552 | .extra_temps = .{ |
| 110756 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112553 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110757 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 112554 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110758 | .unused, | 112555 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 110759 | .unused, | 112556 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110760 | .unused, | 112557 | .unused, |
| 110761 | .unused, | 112558 | .unused, |
| 110762 | .unused, | 112559 | .unused, |
| ... | @@ -110766,26 +112563,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110766,26 +112563,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110766 | .unused, | 112563 | .unused, |
| 110767 | }, | 112564 | }, |
| 110768 | .dst_temps = .{ .mem, .unused }, | 112565 | .dst_temps = .{ .mem, .unused }, |
| 110769 | .clobbers = .{ .eflags = true }, | 112566 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110770 | .each = .{ .once = &.{ | 112567 | .each = .{ .once = &.{ |
| 110771 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112568 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110772 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 112569 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110773 | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 112570 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110774 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 112571 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110775 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112572 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 112573 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110776 | } }, | 112574 | } }, |
| 110777 | }, .{ | 112575 | }, .{ |
| 110778 | .required_features = .{ .sse2, null, null, null }, | 112576 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 110779 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | 112577 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110780 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, | 112578 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110781 | .patterns = &.{ | 112579 | .patterns = &.{ |
| 110782 | .{ .src = .{ .to_mem, .none, .none } }, | 112580 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110783 | }, | 112581 | }, |
| | 112582 | .call_frame = .{ .alignment = .@"16" }, |
| 110784 | .extra_temps = .{ | 112583 | .extra_temps = .{ |
| 110785 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112584 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110786 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 112585 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110787 | .unused, | 112586 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 110788 | .unused, | 112587 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110789 | .unused, | 112588 | .unused, |
| 110790 | .unused, | 112589 | .unused, |
| 110791 | .unused, | 112590 | .unused, |
| ... | @@ -110795,26 +112594,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110795,26 +112594,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110795 | .unused, | 112594 | .unused, |
| 110796 | }, | 112595 | }, |
| 110797 | .dst_temps = .{ .mem, .unused }, | 112596 | .dst_temps = .{ .mem, .unused }, |
| 110798 | .clobbers = .{ .eflags = true }, | 112597 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110799 | .each = .{ .once = &.{ | 112598 | .each = .{ .once = &.{ |
| 110800 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112599 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110801 | .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 112600 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110802 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 112601 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110803 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 112602 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 112603 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110804 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112604 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110805 | } }, | 112605 | } }, |
| 110806 | }, .{ | 112606 | }, .{ |
| 110807 | .required_features = .{ .sse, null, null, null }, | 112607 | .required_features = .{ .avx, null, null, null }, |
| 110808 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 112608 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110809 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112609 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110810 | .patterns = &.{ | 112610 | .patterns = &.{ |
| 110811 | .{ .src = .{ .to_mem, .none, .none } }, | 112611 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110812 | }, | 112612 | }, |
| | 112613 | .call_frame = .{ .alignment = .@"16" }, |
| 110813 | .extra_temps = .{ | 112614 | .extra_temps = .{ |
| 110814 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112615 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110815 | .{ .type = .f32, .kind = .{ .rc = .sse } }, | 112616 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110816 | .unused, | 112617 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 110817 | .unused, | 112618 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110818 | .unused, | 112619 | .unused, |
| 110819 | .unused, | 112620 | .unused, |
| 110820 | .unused, | 112621 | .unused, |
| ... | @@ -110824,27 +112625,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110824,27 +112625,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110824 | .unused, | 112625 | .unused, |
| 110825 | }, | 112626 | }, |
| 110826 | .dst_temps = .{ .mem, .unused }, | 112627 | .dst_temps = .{ .mem, .unused }, |
| 110827 | .clobbers = .{ .eflags = true }, | 112628 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110828 | .each = .{ .once = &.{ | 112629 | .each = .{ .once = &.{ |
| 110829 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112630 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110830 | .{ .@"0:", ._ss, .cvtsi2, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 112631 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110831 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 112632 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110832 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 112633 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110833 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112634 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 112635 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110834 | } }, | 112636 | } }, |
| 110835 | }, .{ | 112637 | }, .{ |
| 110836 | .required_features = .{ .avx, null, null, null }, | 112638 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 110837 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 112639 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110838 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112640 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110839 | .patterns = &.{ | 112641 | .patterns = &.{ |
| 110840 | .{ .src = .{ .to_mem, .none, .none } }, | 112642 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110841 | }, | 112643 | }, |
| 110842 | .call_frame = .{ .alignment = .@"16" }, | 112644 | .call_frame = .{ .alignment = .@"16" }, |
| 110843 | .extra_temps = .{ | 112645 | .extra_temps = .{ |
| 110844 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112646 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110845 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 112647 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110846 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 112648 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 110847 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112649 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110848 | .unused, | 112650 | .unused, |
| 110849 | .unused, | 112651 | .unused, |
| 110850 | .unused, | 112652 | .unused, |
| ... | @@ -110856,26 +112658,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110856,26 +112658,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110856 | .dst_temps = .{ .mem, .unused }, | 112658 | .dst_temps = .{ .mem, .unused }, |
| 110857 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112659 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110858 | .each = .{ .once = &.{ | 112660 | .each = .{ .once = &.{ |
| 110859 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112661 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110860 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 112662 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110861 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112663 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110862 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112664 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110863 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 112665 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110864 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112666 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110865 | } }, | 112667 | } }, |
| 110866 | }, .{ | 112668 | }, .{ |
| 110867 | .required_features = .{ .sse, null, null, null }, | 112669 | .required_features = .{ .sse2, null, null, null }, |
| 110868 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 112670 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110869 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112671 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110870 | .patterns = &.{ | 112672 | .patterns = &.{ |
| 110871 | .{ .src = .{ .to_mem, .none, .none } }, | 112673 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110872 | }, | 112674 | }, |
| 110873 | .call_frame = .{ .alignment = .@"16" }, | 112675 | .call_frame = .{ .alignment = .@"16" }, |
| 110874 | .extra_temps = .{ | 112676 | .extra_temps = .{ |
| 110875 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112677 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110876 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 112678 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110877 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, | 112679 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 110878 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112680 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110879 | .unused, | 112681 | .unused, |
| 110880 | .unused, | 112682 | .unused, |
| 110881 | .unused, | 112683 | .unused, |
| ... | @@ -110887,17 +112689,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110887,17 +112689,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110887 | .dst_temps = .{ .mem, .unused }, | 112689 | .dst_temps = .{ .mem, .unused }, |
| 110888 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112690 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110889 | .each = .{ .once = &.{ | 112691 | .each = .{ .once = &.{ |
| 110890 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112692 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110891 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 112693 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110892 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112694 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110893 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112695 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110894 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 112696 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110895 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112697 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110896 | } }, | 112698 | } }, |
| 110897 | }, .{ | 112699 | }, .{ |
| 110898 | .required_features = .{ .avx, null, null, null }, | 112700 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 110899 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 112701 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110900 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112702 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110901 | .patterns = &.{ | 112703 | .patterns = &.{ |
| 110902 | .{ .src = .{ .to_mem, .none, .none } }, | 112704 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110903 | }, | 112705 | }, |
| ... | @@ -110905,8 +112707,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110905,8 +112707,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110905 | .extra_temps = .{ | 112707 | .extra_temps = .{ |
| 110906 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112708 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110907 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112709 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110908 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112710 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 110909 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112711 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110910 | .unused, | 112712 | .unused, |
| 110911 | .unused, | 112713 | .unused, |
| 110912 | .unused, | 112714 | .unused, |
| ... | @@ -110918,17 +112720,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110918,17 +112720,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110918 | .dst_temps = .{ .mem, .unused }, | 112720 | .dst_temps = .{ .mem, .unused }, |
| 110919 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112721 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110920 | .each = .{ .once = &.{ | 112722 | .each = .{ .once = &.{ |
| 110921 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112723 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110922 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 112724 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110923 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112725 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110924 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112726 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110925 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 112727 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110926 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112728 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110927 | } }, | 112729 | } }, |
| 110928 | }, .{ | 112730 | }, .{ |
| 110929 | .required_features = .{ .sse, null, null, null }, | 112731 | .required_features = .{ .sse, null, null, null }, |
| 110930 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 112732 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110931 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112733 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110932 | .patterns = &.{ | 112734 | .patterns = &.{ |
| 110933 | .{ .src = .{ .to_mem, .none, .none } }, | 112735 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110934 | }, | 112736 | }, |
| ... | @@ -110936,8 +112738,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110936,8 +112738,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110936 | .extra_temps = .{ | 112738 | .extra_temps = .{ |
| 110937 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112739 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110938 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 112740 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110939 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, | 112741 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 110940 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112742 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110941 | .unused, | 112743 | .unused, |
| 110942 | .unused, | 112744 | .unused, |
| 110943 | .unused, | 112745 | .unused, |
| ... | @@ -110949,243 +112751,104 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -110949,243 +112751,104 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110949 | .dst_temps = .{ .mem, .unused }, | 112751 | .dst_temps = .{ .mem, .unused }, |
| 110950 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112752 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110951 | .each = .{ .once = &.{ | 112753 | .each = .{ .once = &.{ |
| 110952 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112754 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110953 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 112755 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110954 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 112756 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110955 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 112757 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110956 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 112758 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110957 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112759 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110958 | } }, | 112760 | } }, |
| 110959 | }, .{ | 112761 | }, .{ |
| 110960 | .required_features = .{ .@"64bit", .avx, null, null }, | 112762 | .required_features = .{ .avx, null, null, null }, |
| 110961 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 112763 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 110962 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112764 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110963 | .patterns = &.{ | 112765 | .patterns = &.{ |
| 110964 | .{ .src = .{ .to_mem, .none, .none } }, | 112766 | .{ .src = .{ .mem, .none, .none } }, |
| 110965 | }, | 112767 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110966 | .extra_temps = .{ | | |
| 110967 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 110968 | .{ .type = .f32, .kind = .{ .rc = .sse } }, | | |
| 110969 | .unused, | | |
| 110970 | .unused, | | |
| 110971 | .unused, | | |
| 110972 | .unused, | | |
| 110973 | .unused, | | |
| 110974 | .unused, | | |
| 110975 | .unused, | | |
| 110976 | .unused, | | |
| 110977 | .unused, | | |
| 110978 | }, | 112768 | }, |
| 110979 | .dst_temps = .{ .mem, .unused }, | 112769 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110980 | .clobbers = .{ .eflags = true }, | | |
| 110981 | .each = .{ .once = &.{ | 112770 | .each = .{ .once = &.{ |
| 110982 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112771 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 110983 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 112772 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110984 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._ }, | | |
| 110985 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 110986 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 110987 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 110988 | } }, | 112773 | } }, |
| 110989 | }, .{ | 112774 | }, .{ |
| 110990 | .required_features = .{ .@"64bit", .sse, null, null }, | 112775 | .required_features = .{ .sse4_1, null, null, null }, |
| 110991 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 112776 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 110992 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112777 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110993 | .patterns = &.{ | 112778 | .patterns = &.{ |
| 110994 | .{ .src = .{ .to_mem, .none, .none } }, | 112779 | .{ .src = .{ .mem, .none, .none } }, |
| 110995 | }, | 112780 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110996 | .extra_temps = .{ | | |
| 110997 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 110998 | .{ .type = .f32, .kind = .{ .rc = .sse } }, | | |
| 110999 | .unused, | | |
| 111000 | .unused, | | |
| 111001 | .unused, | | |
| 111002 | .unused, | | |
| 111003 | .unused, | | |
| 111004 | .unused, | | |
| 111005 | .unused, | | |
| 111006 | .unused, | | |
| 111007 | .unused, | | |
| 111008 | }, | 112781 | }, |
| 111009 | .dst_temps = .{ .mem, .unused }, | 112782 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111010 | .clobbers = .{ .eflags = true }, | | |
| 111011 | .each = .{ .once = &.{ | 112783 | .each = .{ .once = &.{ |
| 111012 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112784 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 111013 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, | 112785 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 111014 | .{ ._, ._ss, .cvtsi2, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 111015 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 111016 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111017 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111018 | } }, | 112786 | } }, |
| 111019 | }, .{ | 112787 | }, .{ |
| 111020 | .required_features = .{ .@"64bit", .avx, null, null }, | 112788 | .required_features = .{ .avx2, null, null, null }, |
| 111021 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 112789 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 111022 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112790 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111023 | .patterns = &.{ | 112791 | .patterns = &.{ |
| 111024 | .{ .src = .{ .to_mem, .none, .none } }, | 112792 | .{ .src = .{ .mem, .none, .none } }, |
| 111025 | }, | 112793 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111026 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111027 | .extra_temps = .{ | | |
| 111028 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111029 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | | |
| 111030 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdisf" } } }, | | |
| 111031 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111032 | .unused, | | |
| 111033 | .unused, | | |
| 111034 | .unused, | | |
| 111035 | .unused, | | |
| 111036 | .unused, | | |
| 111037 | .unused, | | |
| 111038 | .unused, | | |
| 111039 | }, | 112794 | }, |
| 111040 | .dst_temps = .{ .mem, .unused }, | 112795 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111041 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111042 | .each = .{ .once = &.{ | 112796 | .each = .{ .once = &.{ |
| 111043 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112797 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 111044 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 112798 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 111045 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 111046 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 111047 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111048 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111049 | } }, | 112799 | } }, |
| 111050 | }, .{ | 112800 | }, .{ |
| 111051 | .required_features = .{ .@"64bit", .sse, null, null }, | 112801 | .required_features = .{ .avx, null, null, null }, |
| 111052 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 112802 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 111053 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112803 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111054 | .patterns = &.{ | 112804 | .patterns = &.{ |
| 111055 | .{ .src = .{ .to_mem, .none, .none } }, | 112805 | .{ .src = .{ .mem, .none, .none } }, |
| 111056 | }, | 112806 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111057 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111058 | .extra_temps = .{ | | |
| 111059 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111060 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | | |
| 111061 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdisf" } } }, | | |
| 111062 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111063 | .unused, | | |
| 111064 | .unused, | | |
| 111065 | .unused, | | |
| 111066 | .unused, | | |
| 111067 | .unused, | | |
| 111068 | .unused, | | |
| 111069 | .unused, | | |
| 111070 | }, | 112807 | }, |
| 111071 | .dst_temps = .{ .mem, .unused }, | 112808 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111072 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111073 | .each = .{ .once = &.{ | 112809 | .each = .{ .once = &.{ |
| 111074 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112810 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 111075 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 112811 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 111076 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 111077 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 111078 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111079 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111080 | } }, | 112812 | } }, |
| 111081 | }, .{ | 112813 | }, .{ |
| 111082 | .required_features = .{ .@"64bit", .avx, null, null }, | 112814 | .required_features = .{ .sse4_1, null, null, null }, |
| 111083 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 112815 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 111084 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112816 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111085 | .patterns = &.{ | 112817 | .patterns = &.{ |
| 111086 | .{ .src = .{ .to_mem, .none, .none } }, | 112818 | .{ .src = .{ .mem, .none, .none } }, |
| 111087 | }, | 112819 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111088 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111089 | .extra_temps = .{ | | |
| 111090 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111091 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | | |
| 111092 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundisf" } } }, | | |
| 111093 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111094 | .unused, | | |
| 111095 | .unused, | | |
| 111096 | .unused, | | |
| 111097 | .unused, | | |
| 111098 | .unused, | | |
| 111099 | .unused, | | |
| 111100 | .unused, | | |
| 111101 | }, | 112820 | }, |
| 111102 | .dst_temps = .{ .mem, .unused }, | 112821 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111103 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111104 | .each = .{ .once = &.{ | 112822 | .each = .{ .once = &.{ |
| 111105 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112823 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 111106 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 112824 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 111107 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 111108 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 111109 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111110 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111111 | } }, | 112825 | } }, |
| 111112 | }, .{ | 112826 | }, .{ |
| 111113 | .required_features = .{ .@"64bit", .sse, null, null }, | 112827 | .required_features = .{ .avx2, null, null, null }, |
| 111114 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 112828 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 111115 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112829 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111116 | .patterns = &.{ | 112830 | .patterns = &.{ |
| 111117 | .{ .src = .{ .to_mem, .none, .none } }, | 112831 | .{ .src = .{ .mem, .none, .none } }, |
| 111118 | }, | 112832 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111119 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111120 | .extra_temps = .{ | | |
| 111121 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111122 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | | |
| 111123 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundisf" } } }, | | |
| 111124 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111125 | .unused, | | |
| 111126 | .unused, | | |
| 111127 | .unused, | | |
| 111128 | .unused, | | |
| 111129 | .unused, | | |
| 111130 | .unused, | | |
| 111131 | .unused, | | |
| 111132 | }, | 112833 | }, |
| 111133 | .dst_temps = .{ .mem, .unused }, | 112834 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111134 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111135 | .each = .{ .once = &.{ | 112835 | .each = .{ .once = &.{ |
| 111136 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112836 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 111137 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 112837 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 111138 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 111139 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 111140 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111141 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111142 | } }, | 112838 | } }, |
| 111143 | }, .{ | 112839 | }, .{ |
| 111144 | .required_features = .{ .@"64bit", .avx, null, null }, | 112840 | .required_features = .{ .avx2, null, null, null }, |
| 111145 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 112841 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 111146 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112842 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111147 | .patterns = &.{ | 112843 | .patterns = &.{ |
| 111148 | .{ .src = .{ .to_mem, .none, .none } }, | 112844 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111149 | }, | 112845 | }, |
| 111150 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111151 | .extra_temps = .{ | 112846 | .extra_temps = .{ |
| 111152 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112847 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111153 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 112848 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111154 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | | |
| 111155 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, | | |
| 111156 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111157 | .unused, | | |
| 111158 | .unused, | | |
| 111159 | .unused, | | |
| 111160 | .unused, | 112849 | .unused, |
| 111161 | .unused, | 112850 | .unused, |
| 111162 | .unused, | 112851 | .unused, |
| 111163 | }, | | |
| 111164 | .dst_temps = .{ .mem, .unused }, | | |
| 111165 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111166 | .each = .{ .once = &.{ | | |
| 111167 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 111168 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 111169 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, | | |
| 111170 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 111171 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 111172 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111173 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111174 | } }, | | |
| 111175 | }, .{ | | |
| 111176 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 111177 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | | |
| 111178 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | | |
| 111179 | .patterns = &.{ | | |
| 111180 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 111181 | }, | | |
| 111182 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111183 | .extra_temps = .{ | | |
| 111184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111185 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | | |
| 111186 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | | |
| 111187 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, | | |
| 111188 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111189 | .unused, | 112852 | .unused, |
| 111190 | .unused, | 112853 | .unused, |
| 111191 | .unused, | 112854 | .unused, |
| ... | @@ -111194,62 +112857,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111194,62 +112857,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111194 | .unused, | 112857 | .unused, |
| 111195 | }, | 112858 | }, |
| 111196 | .dst_temps = .{ .mem, .unused }, | 112859 | .dst_temps = .{ .mem, .unused }, |
| 111197 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112860 | .clobbers = .{ .eflags = true }, |
| 111198 | .each = .{ .once = &.{ | 112861 | .each = .{ .once = &.{ |
| 111199 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112862 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111200 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 112863 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111201 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 112864 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 111202 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 112865 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 111203 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | 112866 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111204 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111205 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112867 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111206 | } }, | 112868 | } }, |
| 111207 | }, .{ | 112869 | }, .{ |
| 111208 | .required_features = .{ .@"64bit", .avx, null, null }, | 112870 | .required_features = .{ .avx, null, null, null }, |
| 111209 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 112871 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 111210 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112872 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111211 | .patterns = &.{ | 112873 | .patterns = &.{ |
| 111212 | .{ .src = .{ .to_mem, .none, .none } }, | 112874 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111213 | }, | 112875 | }, |
| 111214 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111215 | .extra_temps = .{ | 112876 | .extra_temps = .{ |
| 111216 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112877 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111217 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 112878 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111218 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | | |
| 111219 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, | | |
| 111220 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111221 | .unused, | | |
| 111222 | .unused, | | |
| 111223 | .unused, | | |
| 111224 | .unused, | 112879 | .unused, |
| 111225 | .unused, | 112880 | .unused, |
| 111226 | .unused, | 112881 | .unused, |
| 111227 | }, | | |
| 111228 | .dst_temps = .{ .mem, .unused }, | | |
| 111229 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111230 | .each = .{ .once = &.{ | | |
| 111231 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 111232 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 111233 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, | | |
| 111234 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 111235 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 111236 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 111237 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111238 | } }, | | |
| 111239 | }, .{ | | |
| 111240 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 111241 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | | |
| 111242 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | | |
| 111243 | .patterns = &.{ | | |
| 111244 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 111245 | }, | | |
| 111246 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111247 | .extra_temps = .{ | | |
| 111248 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111249 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | | |
| 111250 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | | |
| 111251 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, | | |
| 111252 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111253 | .unused, | 112882 | .unused, |
| 111254 | .unused, | 112883 | .unused, |
| 111255 | .unused, | 112884 | .unused, |
| ... | @@ -111258,99 +112887,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111258,99 +112887,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111258 | .unused, | 112887 | .unused, |
| 111259 | }, | 112888 | }, |
| 111260 | .dst_temps = .{ .mem, .unused }, | 112889 | .dst_temps = .{ .mem, .unused }, |
| 111261 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112890 | .clobbers = .{ .eflags = true }, |
| 111262 | .each = .{ .once = &.{ | 112891 | .each = .{ .once = &.{ |
| 111263 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112892 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111264 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 112893 | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111265 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 112894 | .{ ._, .vp_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 111266 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 112895 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 111267 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | 112896 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111268 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 112897 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111269 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112898 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111270 | } }, | 112899 | } }, |
| 111271 | }, .{ | 112900 | }, .{ |
| 111272 | .required_features = .{ .@"64bit", .avx, null, null }, | 112901 | .required_features = .{ .sse4_1, null, null, null }, |
| 111273 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 112902 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 111274 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112903 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111275 | .patterns = &.{ | | |
| 111276 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 111277 | }, | | |
| 111278 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111279 | .extra_temps = .{ | | |
| 111280 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 111281 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111282 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | | |
| 111283 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | | |
| 111284 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, | | |
| 111285 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111286 | .unused, | | |
| 111287 | .unused, | | |
| 111288 | .unused, | | |
| 111289 | .unused, | | |
| 111290 | .unused, | | |
| 111291 | }, | | |
| 111292 | .dst_temps = .{ .mem, .unused }, | | |
| 111293 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111294 | .each = .{ .once = &.{ | | |
| 111295 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 111296 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 111297 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | | |
| 111298 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | | |
| 111299 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 111300 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 111301 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 111302 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, | | |
| 111303 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111304 | } }, | | |
| 111305 | }, .{ | | |
| 111306 | .required_features = .{ .@"64bit", .sse, null, null }, | | |
| 111307 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | | |
| 111308 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | | |
| 111309 | .patterns = &.{ | 112904 | .patterns = &.{ |
| 111310 | .{ .src = .{ .to_mem, .none, .none } }, | 112905 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111311 | }, | 112906 | }, |
| 111312 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111313 | .extra_temps = .{ | 112907 | .extra_temps = .{ |
| 111314 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 111315 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112908 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111316 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 112909 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111317 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | | |
| 111318 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, | | |
| 111319 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111320 | .unused, | | |
| 111321 | .unused, | 112910 | .unused, |
| 111322 | .unused, | 112911 | .unused, |
| 111323 | .unused, | 112912 | .unused, |
| 111324 | .unused, | 112913 | .unused, |
| 111325 | }, | | |
| 111326 | .dst_temps = .{ .mem, .unused }, | | |
| 111327 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 111328 | .each = .{ .once = &.{ | | |
| 111329 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 111330 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | | |
| 111331 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | | |
| 111332 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | | |
| 111333 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 111334 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 111335 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 111336 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, | | |
| 111337 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 111338 | } }, | | |
| 111339 | }, .{ | | |
| 111340 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 111341 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | | |
| 111342 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | | |
| 111343 | .patterns = &.{ | | |
| 111344 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 111345 | }, | | |
| 111346 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111347 | .extra_temps = .{ | | |
| 111348 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 111349 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 111350 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | | |
| 111351 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | | |
| 111352 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, | | |
| 111353 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | | |
| 111354 | .unused, | 112914 | .unused, |
| 111355 | .unused, | 112915 | .unused, |
| 111356 | .unused, | 112916 | .unused, |
| ... | @@ -111358,33 +112918,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111358,33 +112918,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111358 | .unused, | 112918 | .unused, |
| 111359 | }, | 112919 | }, |
| 111360 | .dst_temps = .{ .mem, .unused }, | 112920 | .dst_temps = .{ .mem, .unused }, |
| 111361 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112921 | .clobbers = .{ .eflags = true }, |
| 111362 | .each = .{ .once = &.{ | 112922 | .each = .{ .once = &.{ |
| 111363 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 112923 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111364 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112924 | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111365 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 112925 | .{ ._, .p_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 111366 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 112926 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 111367 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 112927 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111368 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 112928 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111369 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 111370 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, | | |
| 111371 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112929 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111372 | } }, | 112930 | } }, |
| 111373 | }, .{ | 112931 | }, .{ |
| 111374 | .required_features = .{ .@"64bit", .sse, null, null }, | 112932 | .required_features = .{ .avx2, null, null, null }, |
| 111375 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 112933 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 111376 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, | 112934 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111377 | .patterns = &.{ | 112935 | .patterns = &.{ |
| 111378 | .{ .src = .{ .to_mem, .none, .none } }, | 112936 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111379 | }, | 112937 | }, |
| 111380 | .call_frame = .{ .alignment = .@"16" }, | | |
| 111381 | .extra_temps = .{ | 112938 | .extra_temps = .{ |
| 111382 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 111383 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 112939 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111384 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 112940 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111385 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 112941 | .unused, |
| 111386 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, | 112942 | .unused, |
| 111387 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, | 112943 | .unused, |
| | 112944 | .unused, |
| 111388 | .unused, | 112945 | .unused, |
| 111389 | .unused, | 112946 | .unused, |
| 111390 | .unused, | 112947 | .unused, |
| ... | @@ -111392,29 +112949,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111392,29 +112949,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111392 | .unused, | 112949 | .unused, |
| 111393 | }, | 112950 | }, |
| 111394 | .dst_temps = .{ .mem, .unused }, | 112951 | .dst_temps = .{ .mem, .unused }, |
| 111395 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 112952 | .clobbers = .{ .eflags = true }, |
| 111396 | .each = .{ .once = &.{ | 112953 | .each = .{ .once = &.{ |
| 111397 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 112954 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111398 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 112955 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111399 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 112956 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 111400 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 112957 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 111401 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 112958 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111402 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 111403 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 111404 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, | | |
| 111405 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 112959 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111406 | } }, | 112960 | } }, |
| 111407 | }, .{ | 112961 | }, .{ |
| 111408 | .required_features = .{ .avx, null, null, null }, | 112962 | .required_features = .{ .avx, null, null, null }, |
| 111409 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | 112963 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 111410 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 112964 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111411 | .patterns = &.{ | 112965 | .patterns = &.{ |
| 111412 | .{ .src = .{ .mem, .none, .none } }, | 112966 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111413 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111414 | }, | 112967 | }, |
| 111415 | .extra_temps = .{ | 112968 | .extra_temps = .{ |
| 111416 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 112969 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111417 | .unused, | 112970 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111418 | .unused, | 112971 | .unused, |
| 111419 | .unused, | 112972 | .unused, |
| 111420 | .unused, | 112973 | .unused, |
| ... | @@ -111425,23 +112978,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111425,23 +112978,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111425 | .unused, | 112978 | .unused, |
| 111426 | .unused, | 112979 | .unused, |
| 111427 | }, | 112980 | }, |
| 111428 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 112981 | .dst_temps = .{ .mem, .unused }, |
| | 112982 | .clobbers = .{ .eflags = true }, |
| 111429 | .each = .{ .once = &.{ | 112983 | .each = .{ .once = &.{ |
| 111430 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 112984 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111431 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 112985 | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111432 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 112986 | .{ ._, .vp_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, |
| | 112987 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| | 112988 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 112989 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 112990 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111433 | } }, | 112991 | } }, |
| 111434 | }, .{ | 112992 | }, .{ |
| 111435 | .required_features = .{ .sse2, null, null, null }, | 112993 | .required_features = .{ .sse4_1, null, null, null }, |
| 111436 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | 112994 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 111437 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 112995 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111438 | .patterns = &.{ | 112996 | .patterns = &.{ |
| 111439 | .{ .src = .{ .mem, .none, .none } }, | 112997 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111440 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111441 | }, | 112998 | }, |
| 111442 | .extra_temps = .{ | 112999 | .extra_temps = .{ |
| 111443 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113000 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111444 | .unused, | 113001 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111445 | .unused, | 113002 | .unused, |
| 111446 | .unused, | 113003 | .unused, |
| 111447 | .unused, | 113004 | .unused, |
| ... | @@ -111452,25 +113009,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111452,25 +113009,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111452 | .unused, | 113009 | .unused, |
| 111453 | .unused, | 113010 | .unused, |
| 111454 | }, | 113011 | }, |
| 111455 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113012 | .dst_temps = .{ .mem, .unused }, |
| | 113013 | .clobbers = .{ .eflags = true }, |
| 111456 | .each = .{ .once = &.{ | 113014 | .each = .{ .once = &.{ |
| 111457 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 113015 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111458 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | 113016 | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111459 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 113017 | .{ ._, .p_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, |
| | 113018 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| | 113019 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 113020 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 113021 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111460 | } }, | 113022 | } }, |
| 111461 | }, .{ | 113023 | }, .{ |
| 111462 | .required_features = .{ .avx, null, null, null }, | 113024 | .required_features = .{ .avx, null, null, null }, |
| 111463 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 113025 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 111464 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113026 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111465 | .patterns = &.{ | 113027 | .patterns = &.{ |
| 111466 | .{ .src = .{ .mem, .none, .none } }, | 113028 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111467 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111468 | }, | 113029 | }, |
| | 113030 | .call_frame = .{ .alignment = .@"16" }, |
| 111469 | .extra_temps = .{ | 113031 | .extra_temps = .{ |
| 111470 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113032 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111471 | .unused, | 113033 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 111472 | .unused, | 113034 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 111473 | .unused, | 113035 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111474 | .unused, | 113036 | .unused, |
| 111475 | .unused, | 113037 | .unused, |
| 111476 | .unused, | 113038 | .unused, |
| ... | @@ -111479,25 +113041,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111479,25 +113041,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111479 | .unused, | 113041 | .unused, |
| 111480 | .unused, | 113042 | .unused, |
| 111481 | }, | 113043 | }, |
| 111482 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113044 | .dst_temps = .{ .mem, .unused }, |
| | 113045 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111483 | .each = .{ .once = &.{ | 113046 | .each = .{ .once = &.{ |
| 111484 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 113047 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111485 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 113048 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111486 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 113049 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113050 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113051 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 113052 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111487 | } }, | 113053 | } }, |
| 111488 | }, .{ | 113054 | }, .{ |
| 111489 | .required_features = .{ .sse2, null, null, null }, | 113055 | .required_features = .{ .sse2, null, null, null }, |
| 111490 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 113056 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 111491 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113057 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111492 | .patterns = &.{ | 113058 | .patterns = &.{ |
| 111493 | .{ .src = .{ .mem, .none, .none } }, | 113059 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111494 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111495 | }, | 113060 | }, |
| | 113061 | .call_frame = .{ .alignment = .@"16" }, |
| 111496 | .extra_temps = .{ | 113062 | .extra_temps = .{ |
| 111497 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113063 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111498 | .unused, | 113064 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 111499 | .unused, | 113065 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 111500 | .unused, | 113066 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111501 | .unused, | 113067 | .unused, |
| 111502 | .unused, | 113068 | .unused, |
| 111503 | .unused, | 113069 | .unused, |
| ... | @@ -111506,25 +113072,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111506,25 +113072,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111506 | .unused, | 113072 | .unused, |
| 111507 | .unused, | 113073 | .unused, |
| 111508 | }, | 113074 | }, |
| 111509 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113075 | .dst_temps = .{ .mem, .unused }, |
| | 113076 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111510 | .each = .{ .once = &.{ | 113077 | .each = .{ .once = &.{ |
| 111511 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 113078 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111512 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | 113079 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111513 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 113080 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113081 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113082 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 113083 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111514 | } }, | 113084 | } }, |
| 111515 | }, .{ | 113085 | }, .{ |
| 111516 | .required_features = .{ .avx, null, null, null }, | 113086 | .required_features = .{ .sse, null, null, null }, |
| 111517 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, | 113087 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 111518 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113088 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111519 | .patterns = &.{ | 113089 | .patterns = &.{ |
| 111520 | .{ .src = .{ .mem, .none, .none } }, | 113090 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111521 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111522 | }, | 113091 | }, |
| | 113092 | .call_frame = .{ .alignment = .@"16" }, |
| 111523 | .extra_temps = .{ | 113093 | .extra_temps = .{ |
| 111524 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113094 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111525 | .unused, | 113095 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 111526 | .unused, | 113096 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 111527 | .unused, | 113097 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111528 | .unused, | 113098 | .unused, |
| 111529 | .unused, | 113099 | .unused, |
| 111530 | .unused, | 113100 | .unused, |
| ... | @@ -111533,25 +113103,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111533,25 +113103,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111533 | .unused, | 113103 | .unused, |
| 111534 | .unused, | 113104 | .unused, |
| 111535 | }, | 113105 | }, |
| 111536 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113106 | .dst_temps = .{ .mem, .unused }, |
| | 113107 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111537 | .each = .{ .once = &.{ | 113108 | .each = .{ .once = &.{ |
| 111538 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, | 113109 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111539 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 113110 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111540 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 113111 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113112 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113113 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 113114 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111541 | } }, | 113115 | } }, |
| 111542 | }, .{ | 113116 | }, .{ |
| 111543 | .required_features = .{ .sse2, null, null, null }, | 113117 | .required_features = .{ .avx, null, null, null }, |
| 111544 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, | 113118 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 111545 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113119 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111546 | .patterns = &.{ | 113120 | .patterns = &.{ |
| 111547 | .{ .src = .{ .mem, .none, .none } }, | 113121 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111548 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111549 | }, | 113122 | }, |
| | 113123 | .call_frame = .{ .alignment = .@"16" }, |
| 111550 | .extra_temps = .{ | 113124 | .extra_temps = .{ |
| 111551 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113125 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111552 | .unused, | 113126 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 111553 | .unused, | 113127 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 111554 | .unused, | 113128 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111555 | .unused, | 113129 | .unused, |
| 111556 | .unused, | 113130 | .unused, |
| 111557 | .unused, | 113131 | .unused, |
| ... | @@ -111560,25 +113134,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111560,25 +113134,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111560 | .unused, | 113134 | .unused, |
| 111561 | .unused, | 113135 | .unused, |
| 111562 | }, | 113136 | }, |
| 111563 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113137 | .dst_temps = .{ .mem, .unused }, |
| | 113138 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111564 | .each = .{ .once = &.{ | 113139 | .each = .{ .once = &.{ |
| 111565 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, | 113140 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111566 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | 113141 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111567 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 113142 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113143 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113144 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 113145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111568 | } }, | 113146 | } }, |
| 111569 | }, .{ | 113147 | }, .{ |
| 111570 | .required_features = .{ .avx, null, null, null }, | 113148 | .required_features = .{ .sse2, null, null, null }, |
| 111571 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, | 113149 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 111572 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113150 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111573 | .patterns = &.{ | 113151 | .patterns = &.{ |
| 111574 | .{ .src = .{ .mem, .none, .none } }, | 113152 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111575 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111576 | }, | 113153 | }, |
| | 113154 | .call_frame = .{ .alignment = .@"16" }, |
| 111577 | .extra_temps = .{ | 113155 | .extra_temps = .{ |
| 111578 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113156 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111579 | .unused, | 113157 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 111580 | .unused, | 113158 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 111581 | .unused, | 113159 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111582 | .unused, | 113160 | .unused, |
| 111583 | .unused, | 113161 | .unused, |
| 111584 | .unused, | 113162 | .unused, |
| ... | @@ -111587,25 +113165,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111587,25 +113165,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111587 | .unused, | 113165 | .unused, |
| 111588 | .unused, | 113166 | .unused, |
| 111589 | }, | 113167 | }, |
| 111590 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113168 | .dst_temps = .{ .mem, .unused }, |
| | 113169 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111591 | .each = .{ .once = &.{ | 113170 | .each = .{ .once = &.{ |
| 111592 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | 113171 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111593 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 113172 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111594 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, | 113173 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113174 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113175 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 113176 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111595 | } }, | 113177 | } }, |
| 111596 | }, .{ | 113178 | }, .{ |
| 111597 | .required_features = .{ .sse2, null, null, null }, | 113179 | .required_features = .{ .sse, null, null, null }, |
| 111598 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, | 113180 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 111599 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113181 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111600 | .patterns = &.{ | 113182 | .patterns = &.{ |
| 111601 | .{ .src = .{ .mem, .none, .none } }, | 113183 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111602 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111603 | }, | 113184 | }, |
| | 113185 | .call_frame = .{ .alignment = .@"16" }, |
| 111604 | .extra_temps = .{ | 113186 | .extra_temps = .{ |
| 111605 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113187 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111606 | .unused, | 113188 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 111607 | .unused, | 113189 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 111608 | .unused, | 113190 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111609 | .unused, | 113191 | .unused, |
| 111610 | .unused, | 113192 | .unused, |
| 111611 | .unused, | 113193 | .unused, |
| ... | @@ -111614,104 +113196,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111614,104 +113196,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111614 | .unused, | 113196 | .unused, |
| 111615 | .unused, | 113197 | .unused, |
| 111616 | }, | 113198 | }, |
| 111617 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113199 | .dst_temps = .{ .mem, .unused }, |
| | 113200 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111618 | .each = .{ .once = &.{ | 113201 | .each = .{ .once = &.{ |
| 111619 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | 113202 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111620 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | 113203 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111621 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, | 113204 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113205 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113206 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 113207 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111622 | } }, | 113208 | } }, |
| 111623 | }, .{ | 113209 | }, .{ |
| 111624 | .required_features = .{ .avx, null, null, null }, | 113210 | .required_features = .{ .avx, null, null, null }, |
| 111625 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, | 113211 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 111626 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113212 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111627 | .patterns = &.{ | 113213 | .patterns = &.{ |
| 111628 | .{ .src = .{ .mem, .none, .none } }, | 113214 | .{ .src = .{ .mem, .none, .none } }, |
| 111629 | .{ .src = .{ .to_gpr, .none, .none } }, | 113215 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111630 | }, | 113216 | }, |
| 111631 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113217 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111632 | .each = .{ .once = &.{ | 113218 | .each = .{ .once = &.{ |
| 111633 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | 113219 | .{ ._, .v_pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, |
| 111634 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, | | |
| 111635 | } }, | 113220 | } }, |
| 111636 | }, .{ | 113221 | }, .{ |
| 111637 | .required_features = .{ .sse2, null, null, null }, | 113222 | .required_features = .{ .sse2, null, null, null }, |
| 111638 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, | 113223 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 111639 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113224 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111640 | .patterns = &.{ | 113225 | .patterns = &.{ |
| 111641 | .{ .src = .{ .mem, .none, .none } }, | 113226 | .{ .src = .{ .mem, .none, .none } }, |
| 111642 | .{ .src = .{ .to_gpr, .none, .none } }, | 113227 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111643 | }, | 113228 | }, |
| 111644 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113229 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111645 | .each = .{ .once = &.{ | 113230 | .each = .{ .once = &.{ |
| 111646 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | 113231 | .{ ._, ._pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, |
| 111647 | .{ ._, ._sd, .cvtsi2, .dst0x, .src0d, ._, ._ }, | | |
| 111648 | } }, | 113232 | } }, |
| 111649 | }, .{ | 113233 | }, .{ |
| 111650 | .required_features = .{ .avx, null, null, null }, | 113234 | .required_features = .{ .avx2, null, null, null }, |
| 111651 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, | 113235 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 111652 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113236 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111653 | .patterns = &.{ | 113237 | .patterns = &.{ |
| 111654 | .{ .src = .{ .mem, .none, .none } }, | 113238 | .{ .src = .{ .mem, .none, .none } }, |
| 111655 | .{ .src = .{ .to_gpr, .none, .none } }, | 113239 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111656 | }, | | |
| 111657 | .extra_temps = .{ | | |
| 111658 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | | |
| 111659 | .unused, | | |
| 111660 | .unused, | | |
| 111661 | .unused, | | |
| 111662 | .unused, | | |
| 111663 | .unused, | | |
| 111664 | .unused, | | |
| 111665 | .unused, | | |
| 111666 | .unused, | | |
| 111667 | .unused, | | |
| 111668 | .unused, | | |
| 111669 | }, | 113240 | }, |
| 111670 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113241 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111671 | .each = .{ .once = &.{ | 113242 | .each = .{ .once = &.{ |
| 111672 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | 113243 | .{ ._, .v_pd, .cvtdq2, .dst0y, .src0x, ._, ._ }, |
| 111673 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 111674 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, | | |
| 111675 | } }, | 113244 | } }, |
| 111676 | }, .{ | 113245 | }, .{ |
| 111677 | .required_features = .{ .sse2, null, null, null }, | 113246 | .required_features = .{ .avx2, null, null, null }, |
| 111678 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, | 113247 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 111679 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113248 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111680 | .patterns = &.{ | 113249 | .patterns = &.{ |
| 111681 | .{ .src = .{ .mem, .none, .none } }, | 113250 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111682 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111683 | }, | 113251 | }, |
| 111684 | .extra_temps = .{ | 113252 | .extra_temps = .{ |
| 111685 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113253 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111686 | .unused, | 113254 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111687 | .unused, | | |
| 111688 | .unused, | | |
| 111689 | .unused, | | |
| 111690 | .unused, | | |
| 111691 | .unused, | | |
| 111692 | .unused, | | |
| 111693 | .unused, | | |
| 111694 | .unused, | | |
| 111695 | .unused, | 113255 | .unused, |
| 111696 | }, | | |
| 111697 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 111698 | .each = .{ .once = &.{ | | |
| 111699 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | | |
| 111700 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | | |
| 111701 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0q, ._, ._ }, | | |
| 111702 | } }, | | |
| 111703 | }, .{ | | |
| 111704 | .required_features = .{ .x87, null, null, null }, | | |
| 111705 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | | |
| 111706 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 111707 | .patterns = &.{ | | |
| 111708 | .{ .src = .{ .mem, .none, .none } }, | | |
| 111709 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111710 | }, | | |
| 111711 | .extra_temps = .{ | | |
| 111712 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | | |
| 111713 | .{ .type = .i16, .kind = .mem }, | | |
| 111714 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | | |
| 111715 | .unused, | 113256 | .unused, |
| 111716 | .unused, | 113257 | .unused, |
| 111717 | .unused, | 113258 | .unused, |
| ... | @@ -111722,24 +113263,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111722,24 +113263,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111722 | .unused, | 113263 | .unused, |
| 111723 | }, | 113264 | }, |
| 111724 | .dst_temps = .{ .mem, .unused }, | 113265 | .dst_temps = .{ .mem, .unused }, |
| | 113266 | .clobbers = .{ .eflags = true }, |
| 111725 | .each = .{ .once = &.{ | 113267 | .each = .{ .once = &.{ |
| 111726 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 113268 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111727 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, | 113269 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111728 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, | 113270 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 111729 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 113271 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 113272 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111730 | } }, | 113273 | } }, |
| 111731 | }, .{ | 113274 | }, .{ |
| 111732 | .required_features = .{ .x87, null, null, null }, | 113275 | .required_features = .{ .avx, null, null, null }, |
| 111733 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 113276 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 111734 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113277 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111735 | .patterns = &.{ | 113278 | .patterns = &.{ |
| 111736 | .{ .src = .{ .mem, .none, .none } }, | 113279 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111737 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111738 | }, | 113280 | }, |
| 111739 | .extra_temps = .{ | 113281 | .extra_temps = .{ |
| 111740 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111741 | .{ .type = .i16, .kind = .mem }, | 113283 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111742 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 113284 | .unused, |
| 111743 | .unused, | 113285 | .unused, |
| 111744 | .unused, | 113286 | .unused, |
| 111745 | .unused, | 113287 | .unused, |
| ... | @@ -111750,22 +113292,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111750,22 +113292,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111750 | .unused, | 113292 | .unused, |
| 111751 | }, | 113293 | }, |
| 111752 | .dst_temps = .{ .mem, .unused }, | 113294 | .dst_temps = .{ .mem, .unused }, |
| | 113295 | .clobbers = .{ .eflags = true }, |
| 111753 | .each = .{ .once = &.{ | 113296 | .each = .{ .once = &.{ |
| 111754 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 113297 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111755 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, | 113298 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111756 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, | 113299 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111757 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 113300 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 113301 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111758 | } }, | 113302 | } }, |
| 111759 | }, .{ | 113303 | }, .{ |
| 111760 | .required_features = .{ .x87, null, null, null }, | 113304 | .required_features = .{ .sse2, null, null, null }, |
| 111761 | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, | 113305 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 111762 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113306 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111763 | .patterns = &.{ | 113307 | .patterns = &.{ |
| 111764 | .{ .src = .{ .to_mem, .none, .none } }, | 113308 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111765 | }, | 113309 | }, |
| 111766 | .extra_temps = .{ | 113310 | .extra_temps = .{ |
| 111767 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 113311 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111768 | .unused, | 113312 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111769 | .unused, | 113313 | .unused, |
| 111770 | .unused, | 113314 | .unused, |
| 111771 | .unused, | 113315 | .unused, |
| ... | @@ -111777,23 +113321,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111777,23 +113321,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111777 | .unused, | 113321 | .unused, |
| 111778 | }, | 113322 | }, |
| 111779 | .dst_temps = .{ .mem, .unused }, | 113323 | .dst_temps = .{ .mem, .unused }, |
| | 113324 | .clobbers = .{ .eflags = true }, |
| 111780 | .each = .{ .once = &.{ | 113325 | .each = .{ .once = &.{ |
| 111781 | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, | 113326 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111782 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 113327 | .{ .@"0:", ._pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 113328 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 113329 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 113330 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111783 | } }, | 113331 | } }, |
| 111784 | }, .{ | 113332 | }, .{ |
| 111785 | .required_features = .{ .x87, null, null, null }, | 113333 | .required_features = .{ .avx, null, null, null }, |
| 111786 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, | 113334 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111787 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113335 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111788 | .patterns = &.{ | 113336 | .patterns = &.{ |
| 111789 | .{ .src = .{ .mem, .none, .none } }, | 113337 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111790 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111791 | }, | 113338 | }, |
| | 113339 | .call_frame = .{ .alignment = .@"16" }, |
| 111792 | .extra_temps = .{ | 113340 | .extra_temps = .{ |
| 111793 | .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113341 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111794 | .{ .type = .i32, .kind = .mem }, | 113342 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 111795 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 113343 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 111796 | .unused, | 113344 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111797 | .unused, | 113345 | .unused, |
| 111798 | .unused, | 113346 | .unused, |
| 111799 | .unused, | 113347 | .unused, |
| ... | @@ -111803,24 +113351,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111803,24 +113351,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111803 | .unused, | 113351 | .unused, |
| 111804 | }, | 113352 | }, |
| 111805 | .dst_temps = .{ .mem, .unused }, | 113353 | .dst_temps = .{ .mem, .unused }, |
| | 113354 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111806 | .each = .{ .once = &.{ | 113355 | .each = .{ .once = &.{ |
| 111807 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | 113356 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111808 | .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, | 113357 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111809 | .{ ._, .fi_, .ld, .tmp1d, ._, ._, ._ }, | 113358 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111810 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 113359 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113360 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 113361 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111811 | } }, | 113362 | } }, |
| 111812 | }, .{ | 113363 | }, .{ |
| 111813 | .required_features = .{ .x87, null, null, null }, | 113364 | .required_features = .{ .sse2, null, null, null }, |
| 111814 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, | 113365 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111815 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113366 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111816 | .patterns = &.{ | 113367 | .patterns = &.{ |
| 111817 | .{ .src = .{ .to_mem, .none, .none } }, | 113368 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111818 | }, | 113369 | }, |
| | 113370 | .call_frame = .{ .alignment = .@"16" }, |
| 111819 | .extra_temps = .{ | 113371 | .extra_temps = .{ |
| 111820 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 113372 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111821 | .unused, | 113373 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 111822 | .unused, | 113374 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 111823 | .unused, | 113375 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111824 | .unused, | 113376 | .unused, |
| 111825 | .unused, | 113377 | .unused, |
| 111826 | .unused, | 113378 | .unused, |
| ... | @@ -111830,23 +113382,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111830,23 +113382,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111830 | .unused, | 113382 | .unused, |
| 111831 | }, | 113383 | }, |
| 111832 | .dst_temps = .{ .mem, .unused }, | 113384 | .dst_temps = .{ .mem, .unused }, |
| | 113385 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111833 | .each = .{ .once = &.{ | 113386 | .each = .{ .once = &.{ |
| 111834 | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, | 113387 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111835 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 113388 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 113389 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113390 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113391 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 113392 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111836 | } }, | 113393 | } }, |
| 111837 | }, .{ | 113394 | }, .{ |
| 111838 | .required_features = .{ .@"64bit", .x87, null, null }, | 113395 | .required_features = .{ .sse, null, null, null }, |
| 111839 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, | 113396 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111840 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113397 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111841 | .patterns = &.{ | 113398 | .patterns = &.{ |
| 111842 | .{ .src = .{ .mem, .none, .none } }, | 113399 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111843 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111844 | }, | 113400 | }, |
| | 113401 | .call_frame = .{ .alignment = .@"16" }, |
| 111845 | .extra_temps = .{ | 113402 | .extra_temps = .{ |
| 111846 | .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 113403 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111847 | .{ .type = .i64, .kind = .mem }, | 113404 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 111848 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 113405 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 111849 | .unused, | 113406 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111850 | .unused, | 113407 | .unused, |
| 111851 | .unused, | 113408 | .unused, |
| 111852 | .unused, | 113409 | .unused, |
| ... | @@ -111856,51 +113413,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111856,51 +113413,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111856 | .unused, | 113413 | .unused, |
| 111857 | }, | 113414 | }, |
| 111858 | .dst_temps = .{ .mem, .unused }, | 113415 | .dst_temps = .{ .mem, .unused }, |
| | 113416 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111859 | .each = .{ .once = &.{ | 113417 | .each = .{ .once = &.{ |
| 111860 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | 113418 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111861 | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, | 113419 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111862 | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, | 113420 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111863 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 113421 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111864 | } }, | 113422 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111865 | }, .{ | 113423 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111866 | .required_features = .{ .@"64bit", .avx, null, null }, | | |
| 111867 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, | | |
| 111868 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 111869 | .patterns = &.{ | | |
| 111870 | .{ .src = .{ .mem, .none, .none } }, | | |
| 111871 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111872 | }, | | |
| 111873 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 111874 | .each = .{ .once = &.{ | | |
| 111875 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, | | |
| 111876 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, | | |
| 111877 | } }, | | |
| 111878 | }, .{ | | |
| 111879 | .required_features = .{ .@"64bit", .sse2, null, null }, | | |
| 111880 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, | | |
| 111881 | .dst_constraints = .{ .{ .float = .qword }, .any }, | | |
| 111882 | .patterns = &.{ | | |
| 111883 | .{ .src = .{ .mem, .none, .none } }, | | |
| 111884 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111885 | }, | | |
| 111886 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | | |
| 111887 | .each = .{ .once = &.{ | | |
| 111888 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, | | |
| 111889 | .{ ._, ._sd, .cvtsi2, .dst0x, .src0q, ._, ._ }, | | |
| 111890 | } }, | 113424 | } }, |
| 111891 | }, .{ | 113425 | }, .{ |
| 111892 | .required_features = .{ .@"64bit", .avx, null, null }, | 113426 | .required_features = .{ .avx, null, null, null }, |
| 111893 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, | 113427 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111894 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113428 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111895 | .patterns = &.{ | 113429 | .patterns = &.{ |
| 111896 | .{ .src = .{ .mem, .none, .none } }, | 113430 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111897 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111898 | }, | 113431 | }, |
| | 113432 | .call_frame = .{ .alignment = .@"16" }, |
| 111899 | .extra_temps = .{ | 113433 | .extra_temps = .{ |
| 111900 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | 113434 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111901 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 113435 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 111902 | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, | 113436 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 111903 | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, | 113437 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111904 | .unused, | 113438 | .unused, |
| 111905 | .unused, | 113439 | .unused, |
| 111906 | .unused, | 113440 | .unused, |
| ... | @@ -111909,29 +113443,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111909,29 +113443,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111909 | .unused, | 113443 | .unused, |
| 111910 | .unused, | 113444 | .unused, |
| 111911 | }, | 113445 | }, |
| 111912 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113446 | .dst_temps = .{ .mem, .unused }, |
| | 113447 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111913 | .each = .{ .once = &.{ | 113448 | .each = .{ .once = &.{ |
| 111914 | .{ ._, .v_q, .mov, .tmp0x, .src0q, ._, ._ }, | 113449 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111915 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, | 113450 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111916 | .{ ._, .vp_, .unpckldq, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, | 113451 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111917 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, | 113452 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111918 | .{ ._, .v_pd, .sub, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, | 113453 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111919 | .{ ._, .v_pd, .unpckh, .dst0x, .tmp0x, .tmp0x, ._ }, | 113454 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111920 | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, | | |
| 111921 | } }, | 113455 | } }, |
| 111922 | }, .{ | 113456 | }, .{ |
| 111923 | .required_features = .{ .@"64bit", .sse2, null, null }, | 113457 | .required_features = .{ .sse2, null, null, null }, |
| 111924 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, | 113458 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111925 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113459 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111926 | .patterns = &.{ | 113460 | .patterns = &.{ |
| 111927 | .{ .src = .{ .mem, .none, .none } }, | 113461 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111928 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 111929 | }, | 113462 | }, |
| | 113463 | .call_frame = .{ .alignment = .@"16" }, |
| 111930 | .extra_temps = .{ | 113464 | .extra_temps = .{ |
| 111931 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, | 113465 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111932 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 113466 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 111933 | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, | 113467 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 111934 | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, | 113468 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111935 | .unused, | 113469 | .unused, |
| 111936 | .unused, | 113470 | .unused, |
| 111937 | .unused, | 113471 | .unused, |
| ... | @@ -111940,29 +113474,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111940,29 +113474,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111940 | .unused, | 113474 | .unused, |
| 111941 | .unused, | 113475 | .unused, |
| 111942 | }, | 113476 | }, |
| 111943 | .dst_temps = .{ .{ .rc = .sse }, .unused }, | 113477 | .dst_temps = .{ .mem, .unused }, |
| | 113478 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111944 | .each = .{ .once = &.{ | 113479 | .each = .{ .once = &.{ |
| 111945 | .{ ._, ._q, .mov, .tmp0x, .src0q, ._, ._ }, | 113480 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111946 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, | 113481 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111947 | .{ ._, .p_, .unpckldq, .tmp0x, .lea(.tmp1x), ._, ._ }, | 113482 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111948 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, | 113483 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111949 | .{ ._, ._pd, .sub, .tmp0x, .lea(.tmp1x), ._, ._ }, | 113484 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111950 | .{ ._, ._pd, .mova, .dst0x, .tmp0x, ._, ._ }, | 113485 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111951 | .{ ._, ._pd, .unpckh, .dst0x, .dst0x, ._, ._ }, | | |
| 111952 | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, | | |
| 111953 | } }, | 113486 | } }, |
| 111954 | }, .{ | 113487 | }, .{ |
| 111955 | .required_features = .{ .x87, null, null, null }, | 113488 | .required_features = .{ .sse, null, null, null }, |
| 111956 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, | 113489 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111957 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113490 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111958 | .patterns = &.{ | 113491 | .patterns = &.{ |
| 111959 | .{ .src = .{ .to_mem, .none, .none } }, | 113492 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111960 | }, | 113493 | }, |
| | 113494 | .call_frame = .{ .alignment = .@"16" }, |
| 111961 | .extra_temps = .{ | 113495 | .extra_temps = .{ |
| 111962 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 113496 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111963 | .unused, | 113497 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 111964 | .unused, | 113498 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 111965 | .unused, | 113499 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111966 | .unused, | 113500 | .unused, |
| 111967 | .unused, | 113501 | .unused, |
| 111968 | .unused, | 113502 | .unused, |
| ... | @@ -111972,20 +113506,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111972,20 +113506,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111972 | .unused, | 113506 | .unused, |
| 111973 | }, | 113507 | }, |
| 111974 | .dst_temps = .{ .mem, .unused }, | 113508 | .dst_temps = .{ .mem, .unused }, |
| | 113509 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111975 | .each = .{ .once = &.{ | 113510 | .each = .{ .once = &.{ |
| 111976 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, | 113511 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111977 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, | 113512 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 113513 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113514 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113515 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 113516 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111978 | } }, | 113517 | } }, |
| 111979 | }, .{ | 113518 | }, .{ |
| 111980 | .required_features = .{ .@"64bit", .x87, null, null }, | 113519 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111981 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, | 113520 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111982 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113521 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111983 | .patterns = &.{ | 113522 | .patterns = &.{ |
| 111984 | .{ .src = .{ .to_mut_gpr, .none, .none } }, | 113523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111985 | }, | 113524 | }, |
| 111986 | .extra_temps = .{ | 113525 | .extra_temps = .{ |
| 111987 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, | 113526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111988 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, | 113527 | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 111989 | .unused, | 113528 | .unused, |
| 111990 | .unused, | 113529 | .unused, |
| 111991 | .unused, | 113530 | .unused, |
| ... | @@ -111999,32 +113538,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -111999,32 +113538,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111999 | .dst_temps = .{ .mem, .unused }, | 113538 | .dst_temps = .{ .mem, .unused }, |
| 112000 | .clobbers = .{ .eflags = true }, | 113539 | .clobbers = .{ .eflags = true }, |
| 112001 | .each = .{ .once = &.{ | 113540 | .each = .{ .once = &.{ |
| 112002 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, | 113541 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112003 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, | 113542 | .{ .@"0:", .v_pd, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 112004 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | 113543 | .{ ._, .v_sd, .cvtsi2, .tmp1x, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ }, |
| 112005 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, | 113544 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112006 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, | 113545 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112007 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, | 113546 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112008 | .{ ._, ._, .mov, .dst0q, .src0q, ._, ._ }, | | |
| 112009 | .{ ._, .fi_, .ld, .dst0q, ._, ._, ._ }, | | |
| 112010 | .{ ._, .f_, .add, .tmp1t, .tmp1t, ._, ._ }, | | |
| 112011 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, | | |
| 112012 | .{ .pseudo, .f_cstp, .in, ._, ._, ._, ._ }, | | |
| 112013 | .{ .@"1:", ._, .mov, .dst0q, .src0q, ._, ._ }, | | |
| 112014 | .{ ._, .fi_, .ld, .dst0q, ._, ._, ._ }, | | |
| 112015 | .{ .@"0:", .f_p, .st, .dst0q, ._, ._, ._ }, | | |
| 112016 | } }, | 113547 | } }, |
| 112017 | }, .{ | 113548 | }, .{ |
| 112018 | .required_features = .{ .@"64bit", .sse, null, null }, | 113549 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 112019 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, | 113550 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 112020 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113551 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112021 | .patterns = &.{ | 113552 | .patterns = &.{ |
| 112022 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 113553 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112023 | }, | 113554 | }, |
| 112024 | .call_frame = .{ .alignment = .@"16" }, | | |
| 112025 | .extra_temps = .{ | 113555 | .extra_temps = .{ |
| 112026 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, | 113556 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112027 | .unused, | 113557 | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 112028 | .unused, | 113558 | .unused, |
| 112029 | .unused, | 113559 | .unused, |
| 112030 | .unused, | 113560 | .unused, |
| ... | @@ -112035,24 +113565,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112035,24 +113565,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112035 | .unused, | 113565 | .unused, |
| 112036 | .unused, | 113566 | .unused, |
| 112037 | }, | 113567 | }, |
| 112038 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 113568 | .dst_temps = .{ .mem, .unused }, |
| 112039 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113569 | .clobbers = .{ .eflags = true }, |
| 112040 | .each = .{ .once = &.{ | 113570 | .each = .{ .once = &.{ |
| 112041 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 113571 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 113572 | .{ .@"0:", ._pd, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| | 113573 | .{ ._, ._sd, .cvtsi2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 113574 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 113575 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 113576 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112042 | } }, | 113577 | } }, |
| 112043 | }, .{ | 113578 | }, .{ |
| 112044 | .required_features = .{ .@"64bit", .sse, null, null }, | 113579 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 112045 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, | 113580 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 112046 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113581 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112047 | .patterns = &.{ | 113582 | .patterns = &.{ |
| 112048 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 113583 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112049 | }, | 113584 | }, |
| 112050 | .call_frame = .{ .alignment = .@"16" }, | 113585 | .call_frame = .{ .alignment = .@"16" }, |
| 112051 | .extra_temps = .{ | 113586 | .extra_temps = .{ |
| 112052 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, | 113587 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112053 | .unused, | 113588 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 112054 | .unused, | 113589 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 112055 | .unused, | 113590 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112056 | .unused, | 113591 | .unused, |
| 112057 | .unused, | 113592 | .unused, |
| 112058 | .unused, | 113593 | .unused, |
| ... | @@ -112061,24 +113596,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112061,24 +113596,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112061 | .unused, | 113596 | .unused, |
| 112062 | .unused, | 113597 | .unused, |
| 112063 | }, | 113598 | }, |
| 112064 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 113599 | .dst_temps = .{ .mem, .unused }, |
| 112065 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113600 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112066 | .each = .{ .once = &.{ | 113601 | .each = .{ .once = &.{ |
| 112067 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 113602 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 113603 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 113604 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113605 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113606 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 113607 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112068 | } }, | 113608 | } }, |
| 112069 | }, .{ | 113609 | }, .{ |
| 112070 | .required_features = .{ .@"64bit", .sse, null, null }, | 113610 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 112071 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 113611 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 112072 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113612 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112073 | .patterns = &.{ | 113613 | .patterns = &.{ |
| 112074 | .{ .src = .{ .to_mem, .none, .none } }, | 113614 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112075 | }, | 113615 | }, |
| 112076 | .call_frame = .{ .alignment = .@"16" }, | 113616 | .call_frame = .{ .alignment = .@"16" }, |
| 112077 | .extra_temps = .{ | 113617 | .extra_temps = .{ |
| 112078 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 113618 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112079 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 113619 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 112080 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, | 113620 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 112081 | .unused, | 113621 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112082 | .unused, | 113622 | .unused, |
| 112083 | .unused, | 113623 | .unused, |
| 112084 | .unused, | 113624 | .unused, |
| ... | @@ -112087,26 +113627,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112087,26 +113627,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112087 | .unused, | 113627 | .unused, |
| 112088 | .unused, | 113628 | .unused, |
| 112089 | }, | 113629 | }, |
| 112090 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 113630 | .dst_temps = .{ .mem, .unused }, |
| 112091 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113631 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112092 | .each = .{ .once = &.{ | 113632 | .each = .{ .once = &.{ |
| 112093 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 113633 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112094 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 113634 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112095 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 113635 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113636 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113637 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 113638 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112096 | } }, | 113639 | } }, |
| 112097 | }, .{ | 113640 | }, .{ |
| 112098 | .required_features = .{ .@"64bit", .sse, null, null }, | 113641 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112099 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 113642 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 112100 | .dst_constraints = .{ .{ .float = .qword }, .any }, | 113643 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112101 | .patterns = &.{ | 113644 | .patterns = &.{ |
| 112102 | .{ .src = .{ .to_mem, .none, .none } }, | 113645 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112103 | }, | 113646 | }, |
| 112104 | .call_frame = .{ .alignment = .@"16" }, | 113647 | .call_frame = .{ .alignment = .@"16" }, |
| 112105 | .extra_temps = .{ | 113648 | .extra_temps = .{ |
| 112106 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 113649 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112107 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 113650 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 112108 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, | 113651 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 112109 | .unused, | 113652 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112110 | .unused, | 113653 | .unused, |
| 112111 | .unused, | 113654 | .unused, |
| 112112 | .unused, | 113655 | .unused, |
| ... | @@ -112115,103 +113658,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112115,103 +113658,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112115 | .unused, | 113658 | .unused, |
| 112116 | .unused, | 113659 | .unused, |
| 112117 | }, | 113660 | }, |
| 112118 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 113661 | .dst_temps = .{ .mem, .unused }, |
| 112119 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113662 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112120 | .each = .{ .once = &.{ | 113663 | .each = .{ .once = &.{ |
| 112121 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 113664 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112122 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 113665 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112123 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 113666 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 113667 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 113668 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 113669 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112124 | } }, | 113670 | } }, |
| 112125 | }, .{ | 113671 | }, .{ |
| 112126 | .required_features = .{ .avx, null, null, null }, | 113672 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 112127 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 113673 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 112128 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 113674 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112129 | .patterns = &.{ | | |
| 112130 | .{ .src = .{ .mem, .none, .none } }, | | |
| 112131 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112132 | }, | | |
| 112133 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 112134 | .each = .{ .once = &.{ | | |
| 112135 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, | | |
| 112136 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | | |
| 112137 | } }, | | |
| 112138 | }, .{ | | |
| 112139 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 112140 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | | |
| 112141 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 112142 | .patterns = &.{ | | |
| 112143 | .{ .src = .{ .mem, .none, .none } }, | | |
| 112144 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112145 | }, | | |
| 112146 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 112147 | .each = .{ .once = &.{ | | |
| 112148 | .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, | | |
| 112149 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | | |
| 112150 | } }, | | |
| 112151 | }, .{ | | |
| 112152 | .required_features = .{ .avx2, null, null, null }, | | |
| 112153 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 112154 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 112155 | .patterns = &.{ | | |
| 112156 | .{ .src = .{ .mem, .none, .none } }, | | |
| 112157 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112158 | }, | | |
| 112159 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 112160 | .each = .{ .once = &.{ | | |
| 112161 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, | | |
| 112162 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, | | |
| 112163 | } }, | | |
| 112164 | }, .{ | | |
| 112165 | .required_features = .{ .avx, null, null, null }, | | |
| 112166 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, | | |
| 112167 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 112168 | .patterns = &.{ | | |
| 112169 | .{ .src = .{ .mem, .none, .none } }, | | |
| 112170 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112171 | }, | | |
| 112172 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 112173 | .each = .{ .once = &.{ | | |
| 112174 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, | | |
| 112175 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | | |
| 112176 | } }, | | |
| 112177 | }, .{ | | |
| 112178 | .required_features = .{ .sse4_1, null, null, null }, | | |
| 112179 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, | | |
| 112180 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 112181 | .patterns = &.{ | | |
| 112182 | .{ .src = .{ .mem, .none, .none } }, | | |
| 112183 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112184 | }, | | |
| 112185 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 112186 | .each = .{ .once = &.{ | | |
| 112187 | .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, | | |
| 112188 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | | |
| 112189 | } }, | | |
| 112190 | }, .{ | | |
| 112191 | .required_features = .{ .avx2, null, null, null }, | | |
| 112192 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 112193 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 112194 | .patterns = &.{ | | |
| 112195 | .{ .src = .{ .mem, .none, .none } }, | | |
| 112196 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112197 | }, | | |
| 112198 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 112199 | .each = .{ .once = &.{ | | |
| 112200 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, | | |
| 112201 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, | | |
| 112202 | } }, | | |
| 112203 | }, .{ | | |
| 112204 | .required_features = .{ .avx2, null, null, null }, | | |
| 112205 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | | |
| 112206 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 112207 | .patterns = &.{ | 113675 | .patterns = &.{ |
| 112208 | .{ .src = .{ .to_mem, .none, .none } }, | 113676 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112209 | }, | 113677 | }, |
| | 113678 | .call_frame = .{ .alignment = .@"16" }, |
| 112210 | .extra_temps = .{ | 113679 | .extra_temps = .{ |
| 112211 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113680 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112212 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 113681 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112213 | .unused, | 113682 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 112214 | .unused, | 113683 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112215 | .unused, | 113684 | .unused, |
| 112216 | .unused, | 113685 | .unused, |
| 112217 | .unused, | 113686 | .unused, |
| ... | @@ -112221,27 +113690,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112221,27 +113690,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112221 | .unused, | 113690 | .unused, |
| 112222 | }, | 113691 | }, |
| 112223 | .dst_temps = .{ .mem, .unused }, | 113692 | .dst_temps = .{ .mem, .unused }, |
| 112224 | .clobbers = .{ .eflags = true }, | 113693 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112225 | .each = .{ .once = &.{ | 113694 | .each = .{ .once = &.{ |
| 112226 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113695 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112227 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 113696 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112228 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, | 113697 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112229 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 113698 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112230 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 113699 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112231 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113700 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112232 | } }, | 113701 | } }, |
| 112233 | }, .{ | 113702 | }, .{ |
| 112234 | .required_features = .{ .avx, null, null, null }, | 113703 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 112235 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 113704 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 112236 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 113705 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112237 | .patterns = &.{ | 113706 | .patterns = &.{ |
| 112238 | .{ .src = .{ .to_mem, .none, .none } }, | 113707 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112239 | }, | 113708 | }, |
| | 113709 | .call_frame = .{ .alignment = .@"16" }, |
| 112240 | .extra_temps = .{ | 113710 | .extra_temps = .{ |
| 112241 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113711 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112242 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 113712 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112243 | .unused, | 113713 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 112244 | .unused, | 113714 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112245 | .unused, | 113715 | .unused, |
| 112246 | .unused, | 113716 | .unused, |
| 112247 | .unused, | 113717 | .unused, |
| ... | @@ -112251,29 +113721,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112251,29 +113721,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112251 | .unused, | 113721 | .unused, |
| 112252 | }, | 113722 | }, |
| 112253 | .dst_temps = .{ .mem, .unused }, | 113723 | .dst_temps = .{ .mem, .unused }, |
| 112254 | .clobbers = .{ .eflags = true }, | 113724 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112255 | .each = .{ .once = &.{ | 113725 | .each = .{ .once = &.{ |
| 112256 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113726 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112257 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 113727 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112258 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 113728 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112259 | .{ ._, .vp_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, | 113729 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112260 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | 113730 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112261 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 112262 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 112263 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113731 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112264 | } }, | 113732 | } }, |
| 112265 | }, .{ | 113733 | }, .{ |
| 112266 | .required_features = .{ .sse4_1, null, null, null }, | 113734 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112267 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 113735 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 112268 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 113736 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112269 | .patterns = &.{ | 113737 | .patterns = &.{ |
| 112270 | .{ .src = .{ .to_mem, .none, .none } }, | 113738 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112271 | }, | 113739 | }, |
| | 113740 | .call_frame = .{ .alignment = .@"16" }, |
| 112272 | .extra_temps = .{ | 113741 | .extra_temps = .{ |
| 112273 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113742 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112274 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 113743 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112275 | .unused, | 113744 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 112276 | .unused, | 113745 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112277 | .unused, | 113746 | .unused, |
| 112278 | .unused, | 113747 | .unused, |
| 112279 | .unused, | 113748 | .unused, |
| ... | @@ -112283,30 +113752,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112283,30 +113752,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112283 | .unused, | 113752 | .unused, |
| 112284 | }, | 113753 | }, |
| 112285 | .dst_temps = .{ .mem, .unused }, | 113754 | .dst_temps = .{ .mem, .unused }, |
| 112286 | .clobbers = .{ .eflags = true }, | 113755 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112287 | .each = .{ .once = &.{ | 113756 | .each = .{ .once = &.{ |
| 112288 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113757 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112289 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 113758 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112290 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | 113759 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112291 | .{ ._, .p_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, | 113760 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112292 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | 113761 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112293 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 112294 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 112295 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113762 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112296 | } }, | 113763 | } }, |
| 112297 | }, .{ | 113764 | }, .{ |
| 112298 | .required_features = .{ .avx2, null, null, null }, | 113765 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 112299 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, | 113766 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112300 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | 113767 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112301 | .patterns = &.{ | 113768 | .patterns = &.{ |
| 112302 | .{ .src = .{ .to_mem, .none, .none } }, | 113769 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112303 | }, | 113770 | }, |
| | 113771 | .call_frame = .{ .alignment = .@"16" }, |
| 112304 | .extra_temps = .{ | 113772 | .extra_temps = .{ |
| 112305 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113773 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112306 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 113774 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112307 | .unused, | 113775 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 112308 | .unused, | 113776 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 112309 | .unused, | 113777 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112310 | .unused, | 113778 | .unused, |
| 112311 | .unused, | 113779 | .unused, |
| 112312 | .unused, | 113780 | .unused, |
| ... | @@ -112315,28 +113783,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112315,28 +113783,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112315 | .unused, | 113783 | .unused, |
| 112316 | }, | 113784 | }, |
| 112317 | .dst_temps = .{ .mem, .unused }, | 113785 | .dst_temps = .{ .mem, .unused }, |
| 112318 | .clobbers = .{ .eflags = true }, | 113786 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112319 | .each = .{ .once = &.{ | 113787 | .each = .{ .once = &.{ |
| 112320 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113788 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112321 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 113789 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112322 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, | 113790 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112323 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 113791 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112324 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 113792 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| | 113793 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112325 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113794 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112326 | } }, | 113795 | } }, |
| 112327 | }, .{ | 113796 | }, .{ |
| 112328 | .required_features = .{ .avx, null, null, null }, | 113797 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 112329 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 113798 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112330 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 113799 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112331 | .patterns = &.{ | 113800 | .patterns = &.{ |
| 112332 | .{ .src = .{ .to_mem, .none, .none } }, | 113801 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112333 | }, | 113802 | }, |
| | 113803 | .call_frame = .{ .alignment = .@"16" }, |
| 112334 | .extra_temps = .{ | 113804 | .extra_temps = .{ |
| 112335 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113805 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112336 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 113806 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112337 | .unused, | 113807 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 112338 | .unused, | 113808 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 112339 | .unused, | 113809 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112340 | .unused, | 113810 | .unused, |
| 112341 | .unused, | 113811 | .unused, |
| 112342 | .unused, | 113812 | .unused, |
| ... | @@ -112345,30 +113815,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112345,30 +113815,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112345 | .unused, | 113815 | .unused, |
| 112346 | }, | 113816 | }, |
| 112347 | .dst_temps = .{ .mem, .unused }, | 113817 | .dst_temps = .{ .mem, .unused }, |
| 112348 | .clobbers = .{ .eflags = true }, | 113818 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112349 | .each = .{ .once = &.{ | 113819 | .each = .{ .once = &.{ |
| 112350 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113820 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112351 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 113821 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112352 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, | 113822 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112353 | .{ ._, .vp_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, | 113823 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112354 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | 113824 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112355 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 113825 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112356 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 112357 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113826 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112358 | } }, | 113827 | } }, |
| 112359 | }, .{ | 113828 | }, .{ |
| 112360 | .required_features = .{ .sse4_1, null, null, null }, | 113829 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112361 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, | 113830 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112362 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 113831 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112363 | .patterns = &.{ | 113832 | .patterns = &.{ |
| 112364 | .{ .src = .{ .to_mem, .none, .none } }, | 113833 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112365 | }, | 113834 | }, |
| | 113835 | .call_frame = .{ .alignment = .@"16" }, |
| 112366 | .extra_temps = .{ | 113836 | .extra_temps = .{ |
| 112367 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113837 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112368 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 113838 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112369 | .unused, | 113839 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 112370 | .unused, | 113840 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 112371 | .unused, | 113841 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112372 | .unused, | 113842 | .unused, |
| 112373 | .unused, | 113843 | .unused, |
| 112374 | .unused, | 113844 | .unused, |
| ... | @@ -112377,20 +113847,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112377,20 +113847,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112377 | .unused, | 113847 | .unused, |
| 112378 | }, | 113848 | }, |
| 112379 | .dst_temps = .{ .mem, .unused }, | 113849 | .dst_temps = .{ .mem, .unused }, |
| 112380 | .clobbers = .{ .eflags = true }, | 113850 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112381 | .each = .{ .once = &.{ | 113851 | .each = .{ .once = &.{ |
| 112382 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113852 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112383 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, | 113853 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112384 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, | 113854 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112385 | .{ ._, .p_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, | 113855 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112386 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | 113856 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112387 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 113857 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112388 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 112389 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113858 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112390 | } }, | 113859 | } }, |
| 112391 | }, .{ | 113860 | }, .{ |
| 112392 | .required_features = .{ .avx, .slow_incdec, null, null }, | 113861 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 112393 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 113862 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112394 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 113863 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112395 | .patterns = &.{ | 113864 | .patterns = &.{ |
| 112396 | .{ .src = .{ .to_mem, .none, .none } }, | 113865 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -112398,8 +113867,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112398,8 +113867,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112398 | .call_frame = .{ .alignment = .@"16" }, | 113867 | .call_frame = .{ .alignment = .@"16" }, |
| 112399 | .extra_temps = .{ | 113868 | .extra_temps = .{ |
| 112400 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113869 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112401 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 113870 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112402 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 113871 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| | 113872 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112403 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 113873 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112404 | .unused, | 113874 | .unused, |
| 112405 | .unused, | 113875 | .unused, |
| ... | @@ -112407,21 +113877,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112407,21 +113877,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112407 | .unused, | 113877 | .unused, |
| 112408 | .unused, | 113878 | .unused, |
| 112409 | .unused, | 113879 | .unused, |
| 112410 | .unused, | | |
| 112411 | }, | 113880 | }, |
| 112412 | .dst_temps = .{ .mem, .unused }, | 113881 | .dst_temps = .{ .mem, .unused }, |
| 112413 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113882 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112414 | .each = .{ .once = &.{ | 113883 | .each = .{ .once = &.{ |
| 112415 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113884 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112416 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 113885 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112417 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 113886 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112418 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 113887 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112419 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 113888 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| | 113889 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112420 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113890 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112421 | } }, | 113891 | } }, |
| 112422 | }, .{ | 113892 | }, .{ |
| 112423 | .required_features = .{ .avx, null, null, null }, | 113893 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 112424 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 113894 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112425 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 113895 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112426 | .patterns = &.{ | 113896 | .patterns = &.{ |
| 112427 | .{ .src = .{ .to_mem, .none, .none } }, | 113897 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -112429,8 +113899,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112429,8 +113899,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112429 | .call_frame = .{ .alignment = .@"16" }, | 113899 | .call_frame = .{ .alignment = .@"16" }, |
| 112430 | .extra_temps = .{ | 113900 | .extra_temps = .{ |
| 112431 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113901 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112432 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 113902 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112433 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 113903 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| | 113904 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112434 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 113905 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112435 | .unused, | 113906 | .unused, |
| 112436 | .unused, | 113907 | .unused, |
| ... | @@ -112438,21 +113909,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112438,21 +113909,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112438 | .unused, | 113909 | .unused, |
| 112439 | .unused, | 113910 | .unused, |
| 112440 | .unused, | 113911 | .unused, |
| 112441 | .unused, | | |
| 112442 | }, | 113912 | }, |
| 112443 | .dst_temps = .{ .mem, .unused }, | 113913 | .dst_temps = .{ .mem, .unused }, |
| 112444 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113914 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112445 | .each = .{ .once = &.{ | 113915 | .each = .{ .once = &.{ |
| 112446 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113916 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112447 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 113917 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112448 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 113918 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112449 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 113919 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112450 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 113920 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112451 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 113921 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 113922 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112452 | } }, | 113923 | } }, |
| 112453 | }, .{ | 113924 | }, .{ |
| 112454 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 113925 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112455 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 113926 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112456 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 113927 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112457 | .patterns = &.{ | 113928 | .patterns = &.{ |
| 112458 | .{ .src = .{ .to_mem, .none, .none } }, | 113929 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | @@ -112460,8 +113931,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112460,8 +113931,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112460 | .call_frame = .{ .alignment = .@"16" }, | 113931 | .call_frame = .{ .alignment = .@"16" }, |
| 112461 | .extra_temps = .{ | 113932 | .extra_temps = .{ |
| 112462 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113933 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112463 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 113934 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112464 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 113935 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| | 113936 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112465 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 113937 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112466 | .unused, | 113938 | .unused, |
| 112467 | .unused, | 113939 | .unused, |
| ... | @@ -112469,217 +113941,235 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112469,217 +113941,235 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112469 | .unused, | 113941 | .unused, |
| 112470 | .unused, | 113942 | .unused, |
| 112471 | .unused, | 113943 | .unused, |
| 112472 | .unused, | | |
| 112473 | }, | 113944 | }, |
| 112474 | .dst_temps = .{ .mem, .unused }, | 113945 | .dst_temps = .{ .mem, .unused }, |
| 112475 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113946 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112476 | .each = .{ .once = &.{ | 113947 | .each = .{ .once = &.{ |
| 112477 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113948 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112478 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 113949 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112479 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 113950 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112480 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 113951 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112481 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 113952 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| | 113953 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112482 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 113954 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112483 | } }, | 113955 | } }, |
| 112484 | }, .{ | 113956 | }, .{ |
| 112485 | .required_features = .{ .sse2, null, null, null }, | 113957 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 112486 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 113958 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112487 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 113959 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112488 | .patterns = &.{ | 113960 | .patterns = &.{ |
| 112489 | .{ .src = .{ .to_mem, .none, .none } }, | 113961 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112490 | }, | 113962 | }, |
| 112491 | .call_frame = .{ .alignment = .@"16" }, | 113963 | .call_frame = .{ .alignment = .@"16" }, |
| 112492 | .extra_temps = .{ | 113964 | .extra_temps = .{ |
| | 113965 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112493 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 113966 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112494 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 113967 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112495 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 113968 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 113969 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112496 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 113970 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112497 | .unused, | 113971 | .unused, |
| 112498 | .unused, | 113972 | .unused, |
| 112499 | .unused, | 113973 | .unused, |
| 112500 | .unused, | 113974 | .unused, |
| 112501 | .unused, | 113975 | .unused, |
| 112502 | .unused, | | |
| 112503 | .unused, | | |
| 112504 | }, | 113976 | }, |
| 112505 | .dst_temps = .{ .mem, .unused }, | 113977 | .dst_temps = .{ .mem, .unused }, |
| 112506 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 113978 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112507 | .each = .{ .once = &.{ | 113979 | .each = .{ .once = &.{ |
| 112508 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 113980 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112509 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 113981 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112510 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 113982 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112511 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 113983 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112512 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 113984 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 112513 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 113985 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 113986 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 113987 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 113988 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112514 | } }, | 113989 | } }, |
| 112515 | }, .{ | 113990 | }, .{ |
| 112516 | .required_features = .{ .sse, .slow_incdec, null, null }, | 113991 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 112517 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 113992 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112518 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 113993 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112519 | .patterns = &.{ | 113994 | .patterns = &.{ |
| 112520 | .{ .src = .{ .to_mem, .none, .none } }, | 113995 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112521 | }, | 113996 | }, |
| 112522 | .call_frame = .{ .alignment = .@"16" }, | 113997 | .call_frame = .{ .alignment = .@"16" }, |
| 112523 | .extra_temps = .{ | 113998 | .extra_temps = .{ |
| | 113999 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112524 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114000 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112525 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114001 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112526 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114002 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 114003 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112527 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114004 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112528 | .unused, | 114005 | .unused, |
| 112529 | .unused, | 114006 | .unused, |
| 112530 | .unused, | 114007 | .unused, |
| 112531 | .unused, | 114008 | .unused, |
| 112532 | .unused, | 114009 | .unused, |
| 112533 | .unused, | | |
| 112534 | .unused, | | |
| 112535 | }, | 114010 | }, |
| 112536 | .dst_temps = .{ .mem, .unused }, | 114011 | .dst_temps = .{ .mem, .unused }, |
| 112537 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114012 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112538 | .each = .{ .once = &.{ | 114013 | .each = .{ .once = &.{ |
| 112539 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114014 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112540 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114015 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112541 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114016 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112542 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114017 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112543 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 114018 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 114019 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 114020 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 114021 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 112544 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114022 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112545 | } }, | 114023 | } }, |
| 112546 | }, .{ | 114024 | }, .{ |
| 112547 | .required_features = .{ .sse, null, null, null }, | 114025 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112548 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 114026 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112549 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114027 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112550 | .patterns = &.{ | 114028 | .patterns = &.{ |
| 112551 | .{ .src = .{ .to_mem, .none, .none } }, | 114029 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112552 | }, | 114030 | }, |
| 112553 | .call_frame = .{ .alignment = .@"16" }, | 114031 | .call_frame = .{ .alignment = .@"16" }, |
| 112554 | .extra_temps = .{ | 114032 | .extra_temps = .{ |
| | 114033 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112555 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114034 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112556 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114035 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112557 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114036 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 114037 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112558 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114038 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112559 | .unused, | 114039 | .unused, |
| 112560 | .unused, | 114040 | .unused, |
| 112561 | .unused, | 114041 | .unused, |
| 112562 | .unused, | 114042 | .unused, |
| 112563 | .unused, | 114043 | .unused, |
| 112564 | .unused, | | |
| 112565 | .unused, | | |
| 112566 | }, | 114044 | }, |
| 112567 | .dst_temps = .{ .mem, .unused }, | 114045 | .dst_temps = .{ .mem, .unused }, |
| 112568 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114046 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112569 | .each = .{ .once = &.{ | 114047 | .each = .{ .once = &.{ |
| 112570 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114048 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112571 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114049 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112572 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114050 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112573 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114051 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112574 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 114052 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 112575 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 114053 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 114054 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 114055 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 114056 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112576 | } }, | 114057 | } }, |
| 112577 | }, .{ | 114058 | }, .{ |
| 112578 | .required_features = .{ .avx, .slow_incdec, null, null }, | 114059 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 112579 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 114060 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112580 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114061 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112581 | .patterns = &.{ | 114062 | .patterns = &.{ |
| 112582 | .{ .src = .{ .to_mem, .none, .none } }, | 114063 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112583 | }, | 114064 | }, |
| 112584 | .call_frame = .{ .alignment = .@"16" }, | 114065 | .call_frame = .{ .alignment = .@"16" }, |
| 112585 | .extra_temps = .{ | 114066 | .extra_temps = .{ |
| | 114067 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112586 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112587 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114069 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112588 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114070 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 114071 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112589 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114072 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112590 | .unused, | 114073 | .unused, |
| 112591 | .unused, | 114074 | .unused, |
| 112592 | .unused, | 114075 | .unused, |
| 112593 | .unused, | 114076 | .unused, |
| 112594 | .unused, | 114077 | .unused, |
| 112595 | .unused, | | |
| 112596 | .unused, | | |
| 112597 | }, | 114078 | }, |
| 112598 | .dst_temps = .{ .mem, .unused }, | 114079 | .dst_temps = .{ .mem, .unused }, |
| 112599 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114080 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112600 | .each = .{ .once = &.{ | 114081 | .each = .{ .once = &.{ |
| 112601 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114082 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112602 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114083 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112603 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114084 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112604 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114085 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112605 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 114086 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 114087 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 114088 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 114089 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 112606 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114090 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112607 | } }, | 114091 | } }, |
| 112608 | }, .{ | 114092 | }, .{ |
| 112609 | .required_features = .{ .avx, null, null, null }, | 114093 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 112610 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 114094 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112611 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114095 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112612 | .patterns = &.{ | 114096 | .patterns = &.{ |
| 112613 | .{ .src = .{ .to_mem, .none, .none } }, | 114097 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112614 | }, | 114098 | }, |
| 112615 | .call_frame = .{ .alignment = .@"16" }, | 114099 | .call_frame = .{ .alignment = .@"16" }, |
| 112616 | .extra_temps = .{ | 114100 | .extra_temps = .{ |
| | 114101 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112617 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114102 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112618 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114103 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112619 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114104 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 114105 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112620 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114106 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112621 | .unused, | 114107 | .unused, |
| 112622 | .unused, | 114108 | .unused, |
| 112623 | .unused, | 114109 | .unused, |
| 112624 | .unused, | 114110 | .unused, |
| 112625 | .unused, | 114111 | .unused, |
| 112626 | .unused, | | |
| 112627 | .unused, | | |
| 112628 | }, | 114112 | }, |
| 112629 | .dst_temps = .{ .mem, .unused }, | 114113 | .dst_temps = .{ .mem, .unused }, |
| 112630 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114114 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112631 | .each = .{ .once = &.{ | 114115 | .each = .{ .once = &.{ |
| 112632 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114116 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112633 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114117 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112634 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114118 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112635 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114119 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112636 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 114120 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 112637 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 114121 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 114122 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 114123 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 114124 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112638 | } }, | 114125 | } }, |
| 112639 | }, .{ | 114126 | }, .{ |
| 112640 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 114127 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112641 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 114128 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112642 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114129 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112643 | .patterns = &.{ | 114130 | .patterns = &.{ |
| 112644 | .{ .src = .{ .to_mem, .none, .none } }, | 114131 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112645 | }, | 114132 | }, |
| 112646 | .call_frame = .{ .alignment = .@"16" }, | 114133 | .call_frame = .{ .alignment = .@"16" }, |
| 112647 | .extra_temps = .{ | 114134 | .extra_temps = .{ |
| | 114135 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112648 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114136 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112649 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114137 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112650 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114138 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 114139 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112651 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114140 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112652 | .unused, | 114141 | .unused, |
| 112653 | .unused, | 114142 | .unused, |
| 112654 | .unused, | 114143 | .unused, |
| 112655 | .unused, | 114144 | .unused, |
| 112656 | .unused, | 114145 | .unused, |
| 112657 | .unused, | | |
| 112658 | .unused, | | |
| 112659 | }, | 114146 | }, |
| 112660 | .dst_temps = .{ .mem, .unused }, | 114147 | .dst_temps = .{ .mem, .unused }, |
| 112661 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114148 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112662 | .each = .{ .once = &.{ | 114149 | .each = .{ .once = &.{ |
| 112663 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114150 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112664 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114151 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112665 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114152 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112666 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114153 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112667 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 114154 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 114155 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 114156 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 114157 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 112668 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114158 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112669 | } }, | 114159 | } }, |
| 112670 | }, .{ | 114160 | }, .{ |
| 112671 | .required_features = .{ .sse2, null, null, null }, | 114161 | .required_features = .{ .x87, null, null, null }, |
| 112672 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 114162 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 112673 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114163 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112674 | .patterns = &.{ | 114164 | .patterns = &.{ |
| 112675 | .{ .src = .{ .to_mem, .none, .none } }, | 114165 | .{ .src = .{ .mem, .none, .none } }, |
| | 114166 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 112676 | }, | 114167 | }, |
| 112677 | .call_frame = .{ .alignment = .@"16" }, | | |
| 112678 | .extra_temps = .{ | 114168 | .extra_temps = .{ |
| 112679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114169 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 112680 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114170 | .{ .type = .i16, .kind = .mem }, |
| 112681 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114171 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 112682 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114172 | .unused, |
| 112683 | .unused, | 114173 | .unused, |
| 112684 | .unused, | 114174 | .unused, |
| 112685 | .unused, | 114175 | .unused, |
| ... | @@ -112688,29 +114178,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112688,29 +114178,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112688 | .unused, | 114178 | .unused, |
| 112689 | .unused, | 114179 | .unused, |
| 112690 | }, | 114180 | }, |
| 112691 | .dst_temps = .{ .mem, .unused }, | 114181 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112692 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 112693 | .each = .{ .once = &.{ | 114182 | .each = .{ .once = &.{ |
| 112694 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114183 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 112695 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114184 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 112696 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114185 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 112697 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114186 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112698 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 112699 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 112700 | } }, | 114187 | } }, |
| 112701 | }, .{ | 114188 | }, .{ |
| 112702 | .required_features = .{ .sse, .slow_incdec, null, null }, | 114189 | .required_features = .{ .x87, null, null, null }, |
| 112703 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 114190 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 112704 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114191 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112705 | .patterns = &.{ | 114192 | .patterns = &.{ |
| 112706 | .{ .src = .{ .to_mem, .none, .none } }, | 114193 | .{ .src = .{ .mem, .none, .none } }, |
| | 114194 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 112707 | }, | 114195 | }, |
| 112708 | .call_frame = .{ .alignment = .@"16" }, | | |
| 112709 | .extra_temps = .{ | 114196 | .extra_temps = .{ |
| 112710 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114197 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 112711 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114198 | .{ .type = .i16, .kind = .mem }, |
| 112712 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114199 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 112713 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114200 | .unused, |
| 112714 | .unused, | 114201 | .unused, |
| 112715 | .unused, | 114202 | .unused, |
| 112716 | .unused, | 114203 | .unused, |
| ... | @@ -112719,29 +114206,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112719,29 +114206,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112719 | .unused, | 114206 | .unused, |
| 112720 | .unused, | 114207 | .unused, |
| 112721 | }, | 114208 | }, |
| 112722 | .dst_temps = .{ .mem, .unused }, | 114209 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112723 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 112724 | .each = .{ .once = &.{ | 114210 | .each = .{ .once = &.{ |
| 112725 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114211 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 112726 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114212 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 112727 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114213 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 112728 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114214 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112729 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 112730 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 112731 | } }, | 114215 | } }, |
| 112732 | }, .{ | 114216 | }, .{ |
| 112733 | .required_features = .{ .sse, null, null, null }, | 114217 | .required_features = .{ .x87, null, null, null }, |
| 112734 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 114218 | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, |
| 112735 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114219 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112736 | .patterns = &.{ | 114220 | .patterns = &.{ |
| 112737 | .{ .src = .{ .to_mem, .none, .none } }, | 114221 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112738 | }, | 114222 | }, |
| 112739 | .call_frame = .{ .alignment = .@"16" }, | | |
| 112740 | .extra_temps = .{ | 114223 | .extra_temps = .{ |
| 112741 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114224 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 112742 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114225 | .unused, |
| 112743 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114226 | .unused, |
| 112744 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114227 | .unused, |
| 112745 | .unused, | 114228 | .unused, |
| 112746 | .unused, | 114229 | .unused, |
| 112747 | .unused, | 114230 | .unused, |
| ... | @@ -112750,104 +114233,184 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112750,104 +114233,184 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112750 | .unused, | 114233 | .unused, |
| 112751 | .unused, | 114234 | .unused, |
| 112752 | }, | 114235 | }, |
| 112753 | .dst_temps = .{ .mem, .unused }, | 114236 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112754 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 112755 | .each = .{ .once = &.{ | 114237 | .each = .{ .once = &.{ |
| 112756 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114238 | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, |
| 112757 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 114239 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112758 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 112759 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 112760 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 112761 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 112762 | } }, | 114240 | } }, |
| 112763 | }, .{ | 114241 | }, .{ |
| 112764 | .required_features = .{ .avx, null, null, null }, | 114242 | .required_features = .{ .x87, null, null, null }, |
| 112765 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114243 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, |
| 112766 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114244 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112767 | .patterns = &.{ | 114245 | .patterns = &.{ |
| 112768 | .{ .src = .{ .mem, .none, .none } }, | 114246 | .{ .src = .{ .mem, .none, .none } }, |
| 112769 | .{ .src = .{ .to_sse, .none, .none } }, | 114247 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 112770 | }, | 114248 | }, |
| 112771 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 114249 | .extra_temps = .{ |
| | 114250 | .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| | 114251 | .{ .type = .i32, .kind = .mem }, |
| | 114252 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 114253 | .unused, |
| | 114254 | .unused, |
| | 114255 | .unused, |
| | 114256 | .unused, |
| | 114257 | .unused, |
| | 114258 | .unused, |
| | 114259 | .unused, |
| | 114260 | .unused, |
| | 114261 | }, |
| | 114262 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112772 | .each = .{ .once = &.{ | 114263 | .each = .{ .once = &.{ |
| 112773 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 114264 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 112774 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | 114265 | .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, |
| | 114266 | .{ ._, .fi_, .ld, .tmp1d, ._, ._, ._ }, |
| | 114267 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112775 | } }, | 114268 | } }, |
| 112776 | }, .{ | 114269 | }, .{ |
| 112777 | .required_features = .{ .sse4_1, null, null, null }, | 114270 | .required_features = .{ .x87, null, null, null }, |
| 112778 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114271 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 112779 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114272 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112780 | .patterns = &.{ | 114273 | .patterns = &.{ |
| 112781 | .{ .src = .{ .mem, .none, .none } }, | 114274 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112782 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112783 | }, | 114275 | }, |
| 112784 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 114276 | .extra_temps = .{ |
| | 114277 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 114278 | .unused, |
| | 114279 | .unused, |
| | 114280 | .unused, |
| | 114281 | .unused, |
| | 114282 | .unused, |
| | 114283 | .unused, |
| | 114284 | .unused, |
| | 114285 | .unused, |
| | 114286 | .unused, |
| | 114287 | .unused, |
| | 114288 | }, |
| | 114289 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112785 | .each = .{ .once = &.{ | 114290 | .each = .{ .once = &.{ |
| 112786 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 114291 | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, |
| 112787 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | 114292 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112788 | } }, | 114293 | } }, |
| 112789 | }, .{ | 114294 | }, .{ |
| 112790 | .required_features = .{ .avx2, null, null, null }, | 114295 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 112791 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 114296 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 112792 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | 114297 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112793 | .patterns = &.{ | 114298 | .patterns = &.{ |
| 112794 | .{ .src = .{ .mem, .none, .none } }, | 114299 | .{ .src = .{ .mem, .none, .none } }, |
| 112795 | .{ .src = .{ .to_sse, .none, .none } }, | 114300 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 112796 | }, | 114301 | }, |
| 112797 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 114302 | .extra_temps = .{ |
| | 114303 | .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| | 114304 | .{ .type = .i64, .kind = .mem }, |
| | 114305 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 114306 | .unused, |
| | 114307 | .unused, |
| | 114308 | .unused, |
| | 114309 | .unused, |
| | 114310 | .unused, |
| | 114311 | .unused, |
| | 114312 | .unused, |
| | 114313 | .unused, |
| | 114314 | }, |
| | 114315 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112798 | .each = .{ .once = &.{ | 114316 | .each = .{ .once = &.{ |
| 112799 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, | 114317 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 112800 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, | 114318 | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, |
| | 114319 | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, |
| | 114320 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112801 | } }, | 114321 | } }, |
| 112802 | }, .{ | 114322 | }, .{ |
| 112803 | .required_features = .{ .avx, null, null, null }, | 114323 | .required_features = .{ .x87, null, null, null }, |
| 112804 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114324 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 112805 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114325 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112806 | .patterns = &.{ | 114326 | .patterns = &.{ |
| 112807 | .{ .src = .{ .mem, .none, .none } }, | 114327 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112808 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112809 | }, | 114328 | }, |
| 112810 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 114329 | .extra_temps = .{ |
| | 114330 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 114331 | .unused, |
| | 114332 | .unused, |
| | 114333 | .unused, |
| | 114334 | .unused, |
| | 114335 | .unused, |
| | 114336 | .unused, |
| | 114337 | .unused, |
| | 114338 | .unused, |
| | 114339 | .unused, |
| | 114340 | .unused, |
| | 114341 | }, |
| | 114342 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112811 | .each = .{ .once = &.{ | 114343 | .each = .{ .once = &.{ |
| 112812 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 114344 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 112813 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | 114345 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112814 | } }, | 114346 | } }, |
| 112815 | }, .{ | 114347 | }, .{ |
| 112816 | .required_features = .{ .sse4_1, null, null, null }, | 114348 | .required_features = .{ .x87, null, null, null }, |
| 112817 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114349 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 112818 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114350 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112819 | .patterns = &.{ | 114351 | .patterns = &.{ |
| 112820 | .{ .src = .{ .mem, .none, .none } }, | 114352 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112821 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112822 | }, | 114353 | }, |
| 112823 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 114354 | .extra_temps = .{ |
| | 114355 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 114356 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| | 114357 | .{ .type = .vector_2_f32, .kind = .f32_0_0x1p64_mem }, |
| | 114358 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| | 114359 | .unused, |
| | 114360 | .unused, |
| | 114361 | .unused, |
| | 114362 | .unused, |
| | 114363 | .unused, |
| | 114364 | .unused, |
| | 114365 | .unused, |
| | 114366 | }, |
| | 114367 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| | 114368 | .clobbers = .{ .eflags = true }, |
| 112824 | .each = .{ .once = &.{ | 114369 | .each = .{ .once = &.{ |
| 112825 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 114370 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 112826 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, | 114371 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 114372 | .{ ._, ._, .mov, .tmp1d, .memd(.src0d, 4), ._, ._ }, |
| | 114373 | .{ ._, ._r, .sh, .tmp1d, .ui(31), ._, ._ }, |
| | 114374 | .{ ._, .f_, .add, .leasi(.tmp0d, .@"4", .tmp1), ._, ._, ._ }, |
| | 114375 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112827 | } }, | 114376 | } }, |
| 112828 | }, .{ | 114377 | }, .{ |
| 112829 | .required_features = .{ .avx2, null, null, null }, | 114378 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112830 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 114379 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 112831 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | 114380 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112832 | .patterns = &.{ | 114381 | .patterns = &.{ |
| 112833 | .{ .src = .{ .mem, .none, .none } }, | 114382 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 112834 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 112835 | }, | 114383 | }, |
| 112836 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | 114384 | .call_frame = .{ .alignment = .@"16" }, |
| | 114385 | .extra_temps = .{ |
| | 114386 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattixf" } } }, |
| | 114387 | .unused, |
| | 114388 | .unused, |
| | 114389 | .unused, |
| | 114390 | .unused, |
| | 114391 | .unused, |
| | 114392 | .unused, |
| | 114393 | .unused, |
| | 114394 | .unused, |
| | 114395 | .unused, |
| | 114396 | .unused, |
| | 114397 | }, |
| | 114398 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| | 114399 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112837 | .each = .{ .once = &.{ | 114400 | .each = .{ .once = &.{ |
| 112838 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, | 114401 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 112839 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, | | |
| 112840 | } }, | 114402 | } }, |
| 112841 | }, .{ | 114403 | }, .{ |
| 112842 | .required_features = .{ .avx2, null, null, null }, | 114404 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112843 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 114405 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 112844 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | 114406 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112845 | .patterns = &.{ | 114407 | .patterns = &.{ |
| 112846 | .{ .src = .{ .to_mem, .none, .none } }, | 114408 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 112847 | }, | 114409 | }, |
| | 114410 | .call_frame = .{ .alignment = .@"16" }, |
| 112848 | .extra_temps = .{ | 114411 | .extra_temps = .{ |
| 112849 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114412 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, |
| 112850 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 114413 | .unused, |
| 112851 | .unused, | 114414 | .unused, |
| 112852 | .unused, | 114415 | .unused, |
| 112853 | .unused, | 114416 | .unused, |
| ... | @@ -112858,27 +114421,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112858,27 +114421,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112858 | .unused, | 114421 | .unused, |
| 112859 | .unused, | 114422 | .unused, |
| 112860 | }, | 114423 | }, |
| 112861 | .dst_temps = .{ .mem, .unused }, | 114424 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 112862 | .clobbers = .{ .eflags = true }, | 114425 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112863 | .each = .{ .once = &.{ | 114426 | .each = .{ .once = &.{ |
| 112864 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114427 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 112865 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 112866 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, | | |
| 112867 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | | |
| 112868 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 112869 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 112870 | } }, | 114428 | } }, |
| 112871 | }, .{ | 114429 | }, .{ |
| 112872 | .required_features = .{ .avx, null, null, null }, | 114430 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112873 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114431 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112874 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114432 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112875 | .patterns = &.{ | 114433 | .patterns = &.{ |
| 112876 | .{ .src = .{ .to_mem, .none, .none } }, | 114434 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112877 | }, | 114435 | }, |
| | 114436 | .call_frame = .{ .alignment = .@"16" }, |
| 112878 | .extra_temps = .{ | 114437 | .extra_temps = .{ |
| 112879 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114438 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112880 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 114439 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 112881 | .unused, | 114440 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, |
| 112882 | .unused, | 114441 | .unused, |
| 112883 | .unused, | 114442 | .unused, |
| 112884 | .unused, | 114443 | .unused, |
| ... | @@ -112888,28 +114447,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112888,28 +114447,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112888 | .unused, | 114447 | .unused, |
| 112889 | .unused, | 114448 | .unused, |
| 112890 | }, | 114449 | }, |
| 112891 | .dst_temps = .{ .mem, .unused }, | 114450 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 112892 | .clobbers = .{ .eflags = true }, | 114451 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112893 | .each = .{ .once = &.{ | 114452 | .each = .{ .once = &.{ |
| 112894 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114453 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112895 | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114454 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112896 | .{ ._, .vp_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, | 114455 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112897 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | | |
| 112898 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 112899 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 112900 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 112901 | } }, | 114456 | } }, |
| 112902 | }, .{ | 114457 | }, .{ |
| 112903 | .required_features = .{ .sse4_1, null, null, null }, | 114458 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112904 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114459 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112905 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114460 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112906 | .patterns = &.{ | 114461 | .patterns = &.{ |
| 112907 | .{ .src = .{ .to_mem, .none, .none } }, | 114462 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112908 | }, | 114463 | }, |
| | 114464 | .call_frame = .{ .alignment = .@"16" }, |
| 112909 | .extra_temps = .{ | 114465 | .extra_temps = .{ |
| 112910 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114466 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112911 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 114467 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 112912 | .unused, | 114468 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, |
| 112913 | .unused, | 114469 | .unused, |
| 112914 | .unused, | 114470 | .unused, |
| 112915 | .unused, | 114471 | .unused, |
| ... | @@ -112919,30 +114475,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112919,30 +114475,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112919 | .unused, | 114475 | .unused, |
| 112920 | .unused, | 114476 | .unused, |
| 112921 | }, | 114477 | }, |
| 112922 | .dst_temps = .{ .mem, .unused }, | 114478 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 112923 | .clobbers = .{ .eflags = true }, | 114479 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112924 | .each = .{ .once = &.{ | 114480 | .each = .{ .once = &.{ |
| 112925 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114481 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112926 | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114482 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112927 | .{ ._, .p_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, | 114483 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112928 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | | |
| 112929 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | | |
| 112930 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 112931 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 112932 | } }, | 114484 | } }, |
| 112933 | }, .{ | 114485 | }, .{ |
| 112934 | .required_features = .{ .avx2, null, null, null }, | 114486 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 112935 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, | 114487 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112936 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | 114488 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 112937 | .patterns = &.{ | 114489 | .patterns = &.{ |
| 112938 | .{ .src = .{ .to_mem, .none, .none } }, | 114490 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112939 | }, | 114491 | }, |
| 112940 | .extra_temps = .{ | 114492 | .extra_temps = .{ |
| 112941 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114493 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112942 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 114494 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112943 | .unused, | 114495 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 112944 | .unused, | 114496 | .{ .type = .i16, .kind = .mem }, |
| 112945 | .unused, | 114497 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 112946 | .unused, | 114498 | .unused, |
| 112947 | .unused, | 114499 | .unused, |
| 112948 | .unused, | 114500 | .unused, |
| ... | @@ -112954,25 +114506,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112954,25 +114506,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112954 | .clobbers = .{ .eflags = true }, | 114506 | .clobbers = .{ .eflags = true }, |
| 112955 | .each = .{ .once = &.{ | 114507 | .each = .{ .once = &.{ |
| 112956 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114508 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112957 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 114509 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 112958 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, | 114510 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112959 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 114511 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 112960 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 114512 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| | 114513 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| | 114514 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114515 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 112961 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114516 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112962 | } }, | 114517 | } }, |
| 112963 | }, .{ | 114518 | }, .{ |
| 112964 | .required_features = .{ .avx, null, null, null }, | 114519 | .required_features = .{ .x87, null, null, null }, |
| 112965 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114520 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112966 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114521 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 112967 | .patterns = &.{ | 114522 | .patterns = &.{ |
| 112968 | .{ .src = .{ .to_mem, .none, .none } }, | 114523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112969 | }, | 114524 | }, |
| 112970 | .extra_temps = .{ | 114525 | .extra_temps = .{ |
| 112971 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112972 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 114527 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112973 | .unused, | 114528 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 112974 | .unused, | 114529 | .{ .type = .i16, .kind = .mem }, |
| 112975 | .unused, | 114530 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 112976 | .unused, | 114531 | .unused, |
| 112977 | .unused, | 114532 | .unused, |
| 112978 | .unused, | 114533 | .unused, |
| ... | @@ -112984,26 +114539,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -112984,26 +114539,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112984 | .clobbers = .{ .eflags = true }, | 114539 | .clobbers = .{ .eflags = true }, |
| 112985 | .each = .{ .once = &.{ | 114540 | .each = .{ .once = &.{ |
| 112986 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114541 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112987 | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114542 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 112988 | .{ ._, .vp_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, | 114543 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112989 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | 114544 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 112990 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 114545 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 112991 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 114546 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 112992 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114547 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114548 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 114549 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112993 | } }, | 114550 | } }, |
| 112994 | }, .{ | 114551 | }, .{ |
| 112995 | .required_features = .{ .sse4_1, null, null, null }, | 114552 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 112996 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, | 114553 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112997 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114554 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 112998 | .patterns = &.{ | 114555 | .patterns = &.{ |
| 112999 | .{ .src = .{ .to_mem, .none, .none } }, | 114556 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113000 | }, | 114557 | }, |
| 113001 | .extra_temps = .{ | 114558 | .extra_temps = .{ |
| 113002 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114559 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113003 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 114560 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113004 | .unused, | 114561 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 113005 | .unused, | 114562 | .{ .type = .i16, .kind = .mem }, |
| 113006 | .unused, | 114563 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113007 | .unused, | 114564 | .unused, |
| 113008 | .unused, | 114565 | .unused, |
| 113009 | .unused, | 114566 | .unused, |
| ... | @@ -113015,27 +114572,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113015,27 +114572,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113015 | .clobbers = .{ .eflags = true }, | 114572 | .clobbers = .{ .eflags = true }, |
| 113016 | .each = .{ .once = &.{ | 114573 | .each = .{ .once = &.{ |
| 113017 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114574 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113018 | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114575 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 113019 | .{ ._, .p_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, | 114576 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113020 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, | 114577 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 113021 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 114578 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 113022 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 114579 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| | 114580 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114581 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113023 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114582 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113024 | } }, | 114583 | } }, |
| 113025 | }, .{ | 114584 | }, .{ |
| 113026 | .required_features = .{ .avx, null, null, null }, | 114585 | .required_features = .{ .x87, null, null, null }, |
| 113027 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 114586 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113028 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114587 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113029 | .patterns = &.{ | 114588 | .patterns = &.{ |
| 113030 | .{ .src = .{ .to_mem, .none, .none } }, | 114589 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113031 | }, | 114590 | }, |
| 113032 | .call_frame = .{ .alignment = .@"16" }, | | |
| 113033 | .extra_temps = .{ | 114591 | .extra_temps = .{ |
| 113034 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114592 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113035 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114593 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113036 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114594 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 113037 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114595 | .{ .type = .i16, .kind = .mem }, |
| 113038 | .unused, | 114596 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113039 | .unused, | 114597 | .unused, |
| 113040 | .unused, | 114598 | .unused, |
| 113041 | .unused, | 114599 | .unused, |
| ... | @@ -113044,29 +114602,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113044,29 +114602,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113044 | .unused, | 114602 | .unused, |
| 113045 | }, | 114603 | }, |
| 113046 | .dst_temps = .{ .mem, .unused }, | 114604 | .dst_temps = .{ .mem, .unused }, |
| 113047 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114605 | .clobbers = .{ .eflags = true }, |
| 113048 | .each = .{ .once = &.{ | 114606 | .each = .{ .once = &.{ |
| 113049 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114607 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113050 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 114608 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 113051 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114609 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113052 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114610 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 113053 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 114611 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 113054 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114612 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| | 114613 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114614 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 114615 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 113055 | } }, | 114616 | } }, |
| 113056 | }, .{ | 114617 | }, .{ |
| 113057 | .required_features = .{ .sse2, null, null, null }, | 114618 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 113058 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 114619 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113059 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114620 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113060 | .patterns = &.{ | 114621 | .patterns = &.{ |
| 113061 | .{ .src = .{ .to_mem, .none, .none } }, | 114622 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113062 | }, | 114623 | }, |
| 113063 | .call_frame = .{ .alignment = .@"16" }, | 114624 | .call_frame = .{ .alignment = .@"16" }, |
| 113064 | .extra_temps = .{ | 114625 | .extra_temps = .{ |
| 113065 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114626 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 114627 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113066 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114628 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113067 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114629 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 113068 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114630 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113069 | .unused, | | |
| 113070 | .unused, | 114631 | .unused, |
| 113071 | .unused, | 114632 | .unused, |
| 113072 | .unused, | 114633 | .unused, |
| ... | @@ -113078,26 +114639,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113078,26 +114639,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113078 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114639 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113079 | .each = .{ .once = &.{ | 114640 | .each = .{ .once = &.{ |
| 113080 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114641 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113081 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 114642 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 113082 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114643 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113083 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114644 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113084 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 114645 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 114646 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| | 114647 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114648 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113085 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114649 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113086 | } }, | 114650 | } }, |
| 113087 | }, .{ | 114651 | }, .{ |
| 113088 | .required_features = .{ .sse, null, null, null }, | 114652 | .required_features = .{ .x87, null, null, null }, |
| 113089 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 114653 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113090 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114654 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113091 | .patterns = &.{ | 114655 | .patterns = &.{ |
| 113092 | .{ .src = .{ .to_mem, .none, .none } }, | 114656 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113093 | }, | 114657 | }, |
| 113094 | .call_frame = .{ .alignment = .@"16" }, | 114658 | .call_frame = .{ .alignment = .@"16" }, |
| 113095 | .extra_temps = .{ | 114659 | .extra_temps = .{ |
| 113096 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114660 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 114661 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113097 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114662 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113098 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114663 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 113099 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114664 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113100 | .unused, | | |
| 113101 | .unused, | 114665 | .unused, |
| 113102 | .unused, | 114666 | .unused, |
| 113103 | .unused, | 114667 | .unused, |
| ... | @@ -113109,26 +114673,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113109,26 +114673,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113109 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114673 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113110 | .each = .{ .once = &.{ | 114674 | .each = .{ .once = &.{ |
| 113111 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114675 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113112 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 114676 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 113113 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114677 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113114 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114678 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113115 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 114679 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 113116 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114680 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| | 114681 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114682 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 114683 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 113117 | } }, | 114684 | } }, |
| 113118 | }, .{ | 114685 | }, .{ |
| 113119 | .required_features = .{ .avx, null, null, null }, | 114686 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 113120 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 114687 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113121 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114688 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113122 | .patterns = &.{ | 114689 | .patterns = &.{ |
| 113123 | .{ .src = .{ .to_mem, .none, .none } }, | 114690 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113124 | }, | 114691 | }, |
| 113125 | .call_frame = .{ .alignment = .@"16" }, | 114692 | .call_frame = .{ .alignment = .@"16" }, |
| 113126 | .extra_temps = .{ | 114693 | .extra_temps = .{ |
| 113127 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114694 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 114695 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113128 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114696 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113129 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114697 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 113130 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114698 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113131 | .unused, | | |
| 113132 | .unused, | 114699 | .unused, |
| 113133 | .unused, | 114700 | .unused, |
| 113134 | .unused, | 114701 | .unused, |
| ... | @@ -113140,26 +114707,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113140,26 +114707,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113140 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114707 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113141 | .each = .{ .once = &.{ | 114708 | .each = .{ .once = &.{ |
| 113142 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114709 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113143 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 114710 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 113144 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114711 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113145 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114712 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113146 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 114713 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 114714 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| | 114715 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114716 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113147 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114717 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113148 | } }, | 114718 | } }, |
| 113149 | }, .{ | 114719 | }, .{ |
| 113150 | .required_features = .{ .sse2, null, null, null }, | 114720 | .required_features = .{ .x87, null, null, null }, |
| 113151 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 114721 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113152 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114722 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113153 | .patterns = &.{ | 114723 | .patterns = &.{ |
| 113154 | .{ .src = .{ .to_mem, .none, .none } }, | 114724 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113155 | }, | 114725 | }, |
| 113156 | .call_frame = .{ .alignment = .@"16" }, | 114726 | .call_frame = .{ .alignment = .@"16" }, |
| 113157 | .extra_temps = .{ | 114727 | .extra_temps = .{ |
| 113158 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114728 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 114729 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113159 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114730 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113160 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114731 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 113161 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114732 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113162 | .unused, | | |
| 113163 | .unused, | 114733 | .unused, |
| 113164 | .unused, | 114734 | .unused, |
| 113165 | .unused, | 114735 | .unused, |
| ... | @@ -113171,25 +114741,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113171,25 +114741,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113171 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114741 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113172 | .each = .{ .once = &.{ | 114742 | .each = .{ .once = &.{ |
| 113173 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114743 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113174 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 114744 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 113175 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114745 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113176 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114746 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113177 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 114747 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 113178 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114748 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| | 114749 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 114750 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 114751 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 113179 | } }, | 114752 | } }, |
| 113180 | }, .{ | 114753 | }, .{ |
| 113181 | .required_features = .{ .sse, null, null, null }, | 114754 | .required_features = .{ .x87, null, null, null }, |
| 113182 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 114755 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113183 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114756 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113184 | .patterns = &.{ | 114757 | .patterns = &.{ |
| 113185 | .{ .src = .{ .to_mem, .none, .none } }, | 114758 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113186 | }, | 114759 | }, |
| 113187 | .call_frame = .{ .alignment = .@"16" }, | | |
| 113188 | .extra_temps = .{ | 114760 | .extra_temps = .{ |
| 113189 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114761 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113190 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114762 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113191 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114763 | .unused, |
| 113192 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114764 | .unused, |
| 113193 | .unused, | 114765 | .unused, |
| 113194 | .unused, | 114766 | .unused, |
| 113195 | .unused, | 114767 | .unused, |
| ... | @@ -113199,63 +114771,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113199,63 +114771,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113199 | .unused, | 114771 | .unused, |
| 113200 | }, | 114772 | }, |
| 113201 | .dst_temps = .{ .mem, .unused }, | 114773 | .dst_temps = .{ .mem, .unused }, |
| 113202 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114774 | .clobbers = .{ .eflags = true }, |
| 113203 | .each = .{ .once = &.{ | 114775 | .each = .{ .once = &.{ |
| 113204 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114776 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113205 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 114777 | .{ .@"0:", .fi_, .ld, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113206 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114778 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113207 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 113208 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 114779 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113209 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114780 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113210 | } }, | 114781 | } }, |
| 113211 | }, .{ | 114782 | }, .{ |
| 113212 | .required_features = .{ .avx, null, null, null }, | 114783 | .required_features = .{ .x87, null, null, null }, |
| 113213 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 114784 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113214 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114785 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113215 | .patterns = &.{ | | |
| 113216 | .{ .src = .{ .mem, .none, .none } }, | | |
| 113217 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 113218 | }, | | |
| 113219 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 113220 | .each = .{ .once = &.{ | | |
| 113221 | .{ ._, .v_pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, | | |
| 113222 | } }, | | |
| 113223 | }, .{ | | |
| 113224 | .required_features = .{ .sse2, null, null, null }, | | |
| 113225 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | | |
| 113226 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | | |
| 113227 | .patterns = &.{ | | |
| 113228 | .{ .src = .{ .mem, .none, .none } }, | | |
| 113229 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 113230 | }, | | |
| 113231 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 113232 | .each = .{ .once = &.{ | | |
| 113233 | .{ ._, ._pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, | | |
| 113234 | } }, | | |
| 113235 | }, .{ | | |
| 113236 | .required_features = .{ .avx2, null, null, null }, | | |
| 113237 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | | |
| 113238 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 113239 | .patterns = &.{ | | |
| 113240 | .{ .src = .{ .mem, .none, .none } }, | | |
| 113241 | .{ .src = .{ .to_sse, .none, .none } }, | | |
| 113242 | }, | | |
| 113243 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, | | |
| 113244 | .each = .{ .once = &.{ | | |
| 113245 | .{ ._, .v_pd, .cvtdq2, .dst0y, .src0x, ._, ._ }, | | |
| 113246 | } }, | | |
| 113247 | }, .{ | | |
| 113248 | .required_features = .{ .avx2, null, null, null }, | | |
| 113249 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, | | |
| 113250 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, | | |
| 113251 | .patterns = &.{ | 114786 | .patterns = &.{ |
| 113252 | .{ .src = .{ .to_mem, .none, .none } }, | 114787 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113253 | }, | 114788 | }, |
| | 114789 | .call_frame = .{ .alignment = .@"16" }, |
| 113254 | .extra_temps = .{ | 114790 | .extra_temps = .{ |
| 113255 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114791 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113256 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, | 114792 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113257 | .unused, | 114793 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 113258 | .unused, | 114794 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113259 | .unused, | 114795 | .unused, |
| 113260 | .unused, | 114796 | .unused, |
| 113261 | .unused, | 114797 | .unused, |
| ... | @@ -113265,26 +114801,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113265,26 +114801,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113265 | .unused, | 114801 | .unused, |
| 113266 | }, | 114802 | }, |
| 113267 | .dst_temps = .{ .mem, .unused }, | 114803 | .dst_temps = .{ .mem, .unused }, |
| 113268 | .clobbers = .{ .eflags = true }, | 114804 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113269 | .each = .{ .once = &.{ | 114805 | .each = .{ .once = &.{ |
| 113270 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114806 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113271 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, | 114807 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113272 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, | 114808 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113273 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 114809 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 114810 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 114811 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113274 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114812 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113275 | } }, | 114813 | } }, |
| 113276 | }, .{ | 114814 | }, .{ |
| 113277 | .required_features = .{ .avx, null, null, null }, | 114815 | .required_features = .{ .x87, null, null, null }, |
| 113278 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 114816 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113279 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114817 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113280 | .patterns = &.{ | 114818 | .patterns = &.{ |
| 113281 | .{ .src = .{ .to_mem, .none, .none } }, | 114819 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113282 | }, | 114820 | }, |
| | 114821 | .call_frame = .{ .alignment = .@"16" }, |
| 113283 | .extra_temps = .{ | 114822 | .extra_temps = .{ |
| 113284 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114823 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113285 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 114824 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113286 | .unused, | 114825 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 113287 | .unused, | 114826 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113288 | .unused, | 114827 | .unused, |
| 113289 | .unused, | 114828 | .unused, |
| 113290 | .unused, | 114829 | .unused, |
| ... | @@ -113294,24 +114833,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113294,24 +114833,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113294 | .unused, | 114833 | .unused, |
| 113295 | }, | 114834 | }, |
| 113296 | .dst_temps = .{ .mem, .unused }, | 114835 | .dst_temps = .{ .mem, .unused }, |
| 113297 | .clobbers = .{ .eflags = true }, | 114836 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113298 | .each = .{ .once = &.{ | 114837 | .each = .{ .once = &.{ |
| 113299 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114838 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113300 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 114839 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113301 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 114840 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113302 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 114841 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 114842 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 114843 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113303 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114844 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113304 | } }, | 114845 | } }, |
| 113305 | }, .{ | 114846 | }, .{ |
| 113306 | .required_features = .{ .sse2, null, null, null }, | 114847 | .required_features = .{ .x87, null, null, null }, |
| 113307 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, | 114848 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113308 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, | 114849 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113309 | .patterns = &.{ | 114850 | .patterns = &.{ |
| 113310 | .{ .src = .{ .to_mem, .none, .none } }, | 114851 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113311 | }, | 114852 | }, |
| 113312 | .extra_temps = .{ | 114853 | .extra_temps = .{ |
| 113313 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114854 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113314 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, | 114855 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113315 | .unused, | 114856 | .unused, |
| 113316 | .unused, | 114857 | .unused, |
| 113317 | .unused, | 114858 | .unused, |
| ... | @@ -113326,15 +114867,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113326,15 +114867,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113326 | .clobbers = .{ .eflags = true }, | 114867 | .clobbers = .{ .eflags = true }, |
| 113327 | .each = .{ .once = &.{ | 114868 | .each = .{ .once = &.{ |
| 113328 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114869 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113329 | .{ .@"0:", ._pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 114870 | .{ .@"0:", .fi_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113330 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 114871 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113331 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 114872 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113332 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114873 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113333 | } }, | 114874 | } }, |
| 113334 | }, .{ | 114875 | }, .{ |
| 113335 | .required_features = .{ .avx, null, null, null }, | 114876 | .required_features = .{ .x87, null, null, null }, |
| 113336 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 114877 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113337 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114878 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113338 | .patterns = &.{ | 114879 | .patterns = &.{ |
| 113339 | .{ .src = .{ .to_mem, .none, .none } }, | 114880 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113340 | }, | 114881 | }, |
| ... | @@ -113342,8 +114883,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113342,8 +114883,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113342 | .extra_temps = .{ | 114883 | .extra_temps = .{ |
| 113343 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114884 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113344 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114885 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113345 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114886 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 113346 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114887 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113347 | .unused, | 114888 | .unused, |
| 113348 | .unused, | 114889 | .unused, |
| 113349 | .unused, | 114890 | .unused, |
| ... | @@ -113358,23 +114899,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113358,23 +114899,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113358 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114899 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113359 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114900 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113360 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114901 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113361 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114902 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 114903 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113362 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 114904 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113363 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114905 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113364 | } }, | 114906 | } }, |
| 113365 | }, .{ | 114907 | }, .{ |
| 113366 | .required_features = .{ .sse2, null, null, null }, | 114908 | .required_features = .{ .x87, null, null, null }, |
| 113367 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 114909 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113368 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114910 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113369 | .patterns = &.{ | 114911 | .patterns = &.{ |
| 113370 | .{ .src = .{ .to_mem, .none, .none } }, | 114912 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113371 | }, | 114913 | }, |
| 113372 | .call_frame = .{ .alignment = .@"16" }, | 114914 | .call_frame = .{ .alignment = .@"16" }, |
| 113373 | .extra_temps = .{ | 114915 | .extra_temps = .{ |
| 113374 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113375 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114917 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113376 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114918 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 113377 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114919 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113378 | .unused, | 114920 | .unused, |
| 113379 | .unused, | 114921 | .unused, |
| 113380 | .unused, | 114922 | .unused, |
| ... | @@ -113389,23 +114931,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113389,23 +114931,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113389 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114931 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113390 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114932 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113391 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114933 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113392 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114934 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 114935 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113393 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 114936 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113394 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114937 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113395 | } }, | 114938 | } }, |
| 113396 | }, .{ | 114939 | }, .{ |
| 113397 | .required_features = .{ .sse, null, null, null }, | 114940 | .required_features = .{ .x87, null, null, null }, |
| 113398 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 114941 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113399 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114942 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113400 | .patterns = &.{ | 114943 | .patterns = &.{ |
| 113401 | .{ .src = .{ .to_mem, .none, .none } }, | 114944 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113402 | }, | 114945 | }, |
| 113403 | .call_frame = .{ .alignment = .@"16" }, | | |
| 113404 | .extra_temps = .{ | 114946 | .extra_temps = .{ |
| 113405 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114947 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113406 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 114948 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113407 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, | 114949 | .unused, |
| 113408 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114950 | .unused, |
| 113409 | .unused, | 114951 | .unused, |
| 113410 | .unused, | 114952 | .unused, |
| 113411 | .unused, | 114953 | .unused, |
| ... | @@ -113415,28 +114957,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113415,28 +114957,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113415 | .unused, | 114957 | .unused, |
| 113416 | }, | 114958 | }, |
| 113417 | .dst_temps = .{ .mem, .unused }, | 114959 | .dst_temps = .{ .mem, .unused }, |
| 113418 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114960 | .clobbers = .{ .eflags = true }, |
| 113419 | .each = .{ .once = &.{ | 114961 | .each = .{ .once = &.{ |
| 113420 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114962 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113421 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114963 | .{ .@"0:", .fi_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113422 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114964 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113423 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114965 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113424 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 113425 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114966 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113426 | } }, | 114967 | } }, |
| 113427 | }, .{ | 114968 | }, .{ |
| 113428 | .required_features = .{ .avx, null, null, null }, | 114969 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 113429 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 114970 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113430 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 114971 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113431 | .patterns = &.{ | 114972 | .patterns = &.{ |
| 113432 | .{ .src = .{ .to_mem, .none, .none } }, | 114973 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113433 | }, | 114974 | }, |
| 113434 | .call_frame = .{ .alignment = .@"16" }, | 114975 | .call_frame = .{ .alignment = .@"16" }, |
| 113435 | .extra_temps = .{ | 114976 | .extra_temps = .{ |
| 113436 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 114977 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113437 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 114978 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113438 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 114979 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdixf" } } }, |
| 113439 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 114980 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113440 | .unused, | 114981 | .unused, |
| 113441 | .unused, | 114982 | .unused, |
| 113442 | .unused, | 114983 | .unused, |
| ... | @@ -113449,25 +114990,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113449,25 +114990,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113449 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 114990 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113450 | .each = .{ .once = &.{ | 114991 | .each = .{ .once = &.{ |
| 113451 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 114992 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113452 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 114993 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113453 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 114994 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113454 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 114995 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 113455 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 114996 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 114997 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113456 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 114998 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113457 | } }, | 114999 | } }, |
| 113458 | }, .{ | 115000 | }, .{ |
| 113459 | .required_features = .{ .sse2, null, null, null }, | 115001 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 113460 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115002 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113461 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115003 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113462 | .patterns = &.{ | 115004 | .patterns = &.{ |
| 113463 | .{ .src = .{ .to_mem, .none, .none } }, | 115005 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113464 | }, | 115006 | }, |
| 113465 | .call_frame = .{ .alignment = .@"16" }, | 115007 | .call_frame = .{ .alignment = .@"16" }, |
| 113466 | .extra_temps = .{ | 115008 | .extra_temps = .{ |
| 113467 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115009 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113468 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 115010 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113469 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 115011 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundixf" } } }, |
| 113470 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115012 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113471 | .unused, | 115013 | .unused, |
| 113472 | .unused, | 115014 | .unused, |
| 113473 | .unused, | 115015 | .unused, |
| ... | @@ -113480,26 +115022,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113480,26 +115022,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113480 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115022 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113481 | .each = .{ .once = &.{ | 115023 | .each = .{ .once = &.{ |
| 113482 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115024 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113483 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 115025 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113484 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 115026 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113485 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 115027 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 113486 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 115028 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 115029 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113487 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115030 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113488 | } }, | 115031 | } }, |
| 113489 | }, .{ | 115032 | }, .{ |
| 113490 | .required_features = .{ .sse, null, null, null }, | 115033 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 113491 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115034 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113492 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115035 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113493 | .patterns = &.{ | 115036 | .patterns = &.{ |
| 113494 | .{ .src = .{ .to_mem, .none, .none } }, | 115037 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113495 | }, | 115038 | }, |
| 113496 | .call_frame = .{ .alignment = .@"16" }, | 115039 | .call_frame = .{ .alignment = .@"16" }, |
| 113497 | .extra_temps = .{ | 115040 | .extra_temps = .{ |
| 113498 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115041 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113499 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 115042 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113500 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, | 115043 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113501 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115044 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattixf" } } }, |
| 113502 | .unused, | 115045 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113503 | .unused, | 115046 | .unused, |
| 113504 | .unused, | 115047 | .unused, |
| 113505 | .unused, | 115048 | .unused, |
| ... | @@ -113511,25 +115054,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113511,25 +115054,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113511 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115054 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113512 | .each = .{ .once = &.{ | 115055 | .each = .{ .once = &.{ |
| 113513 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115056 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113514 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 115057 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113515 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 115058 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113516 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 115059 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113517 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 115060 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 115061 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 115062 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 113518 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113519 | } }, | 115064 | } }, |
| 113520 | }, .{ | 115065 | }, .{ |
| 113521 | .required_features = .{ .@"64bit", .avx, null, null }, | 115066 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 113522 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115067 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113523 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115068 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113524 | .patterns = &.{ | 115069 | .patterns = &.{ |
| 113525 | .{ .src = .{ .to_mem, .none, .none } }, | 115070 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113526 | }, | 115071 | }, |
| | 115072 | .call_frame = .{ .alignment = .@"16" }, |
| 113527 | .extra_temps = .{ | 115073 | .extra_temps = .{ |
| 113528 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115074 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113529 | .{ .type = .f64, .kind = .{ .rc = .sse } }, | 115075 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113530 | .unused, | 115076 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 113531 | .unused, | 115077 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, |
| 113532 | .unused, | 115078 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113533 | .unused, | 115079 | .unused, |
| 113534 | .unused, | 115080 | .unused, |
| 113535 | .unused, | 115081 | .unused, |
| ... | @@ -113538,29 +115084,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113538,29 +115084,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113538 | .unused, | 115084 | .unused, |
| 113539 | }, | 115085 | }, |
| 113540 | .dst_temps = .{ .mem, .unused }, | 115086 | .dst_temps = .{ .mem, .unused }, |
| 113541 | .clobbers = .{ .eflags = true }, | 115087 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113542 | .each = .{ .once = &.{ | 115088 | .each = .{ .once = &.{ |
| 113543 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115089 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113544 | .{ .@"0:", .v_pd, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, | 115090 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113545 | .{ ._, .v_sd, .cvtsi2, .tmp1x, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ }, | 115091 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113546 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 115092 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113547 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 115093 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 115094 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| | 115095 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 113548 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115096 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113549 | } }, | 115097 | } }, |
| 113550 | }, .{ | 115098 | }, .{ |
| 113551 | .required_features = .{ .@"64bit", .sse2, null, null }, | 115099 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 113552 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115100 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113553 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115101 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113554 | .patterns = &.{ | 115102 | .patterns = &.{ |
| 113555 | .{ .src = .{ .to_mem, .none, .none } }, | 115103 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113556 | }, | 115104 | }, |
| | 115105 | .call_frame = .{ .alignment = .@"16" }, |
| 113557 | .extra_temps = .{ | 115106 | .extra_temps = .{ |
| | 115107 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113558 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115108 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113559 | .{ .type = .f64, .kind = .{ .rc = .sse } }, | 115109 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113560 | .unused, | 115110 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 113561 | .unused, | 115111 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, |
| 113562 | .unused, | 115112 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113563 | .unused, | | |
| 113564 | .unused, | 115113 | .unused, |
| 113565 | .unused, | 115114 | .unused, |
| 113566 | .unused, | 115115 | .unused, |
| ... | @@ -113568,30 +115117,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113568,30 +115117,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113568 | .unused, | 115117 | .unused, |
| 113569 | }, | 115118 | }, |
| 113570 | .dst_temps = .{ .mem, .unused }, | 115119 | .dst_temps = .{ .mem, .unused }, |
| 113571 | .clobbers = .{ .eflags = true }, | 115120 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113572 | .each = .{ .once = &.{ | 115121 | .each = .{ .once = &.{ |
| 113573 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115122 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 113574 | .{ .@"0:", ._pd, .xor, .tmp1x, .tmp1x, ._, ._ }, | 115123 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113575 | .{ ._, ._sd, .cvtsi2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 115124 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 113576 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, | 115125 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 113577 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 115126 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 115127 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 115128 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| | 115129 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 115130 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 113578 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115131 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113579 | } }, | 115132 | } }, |
| 113580 | }, .{ | 115133 | }, .{ |
| 113581 | .required_features = .{ .@"64bit", .avx, null, null }, | 115134 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 113582 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115135 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113583 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115136 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113584 | .patterns = &.{ | 115137 | .patterns = &.{ |
| 113585 | .{ .src = .{ .to_mem, .none, .none } }, | 115138 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113586 | }, | 115139 | }, |
| 113587 | .call_frame = .{ .alignment = .@"16" }, | 115140 | .call_frame = .{ .alignment = .@"16" }, |
| 113588 | .extra_temps = .{ | 115141 | .extra_temps = .{ |
| | 115142 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113589 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115143 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113590 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 115144 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113591 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, | 115145 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 113592 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115146 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, |
| 113593 | .unused, | 115147 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113594 | .unused, | | |
| 113595 | .unused, | 115148 | .unused, |
| 113596 | .unused, | 115149 | .unused, |
| 113597 | .unused, | 115150 | .unused, |
| ... | @@ -113601,26 +115154,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113601,26 +115154,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113601 | .dst_temps = .{ .mem, .unused }, | 115154 | .dst_temps = .{ .mem, .unused }, |
| 113602 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115155 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113603 | .each = .{ .once = &.{ | 115156 | .each = .{ .once = &.{ |
| 113604 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115157 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 113605 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 115158 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113606 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 115159 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 113607 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 115160 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 113608 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 115161 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 115162 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| | 115163 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| | 115164 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 115165 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 113609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115166 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113610 | } }, | 115167 | } }, |
| 113611 | }, .{ | 115168 | }, .{ |
| 113612 | .required_features = .{ .@"64bit", .sse2, null, null }, | 115169 | .required_features = .{ .sse, null, null, null }, |
| 113613 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115170 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 113614 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115171 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113615 | .patterns = &.{ | 115172 | .patterns = &.{ |
| 113616 | .{ .src = .{ .to_mem, .none, .none } }, | 115173 | .{ .src = .{ .mem, .none, .none } }, |
| | 115174 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113617 | }, | 115175 | }, |
| 113618 | .call_frame = .{ .alignment = .@"16" }, | 115176 | .call_frame = .{ .alignment = .@"16" }, |
| 113619 | .extra_temps = .{ | 115177 | .extra_temps = .{ |
| 113620 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115178 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113621 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 115179 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 113622 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, | 115180 | .unused, |
| 113623 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115181 | .unused, |
| 113624 | .unused, | 115182 | .unused, |
| 113625 | .unused, | 115183 | .unused, |
| 113626 | .unused, | 115184 | .unused, |
| ... | @@ -113629,29 +115187,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113629,29 +115187,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113629 | .unused, | 115187 | .unused, |
| 113630 | .unused, | 115188 | .unused, |
| 113631 | }, | 115189 | }, |
| 113632 | .dst_temps = .{ .mem, .unused }, | 115190 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113633 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115191 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113634 | .each = .{ .once = &.{ | 115192 | .each = .{ .once = &.{ |
| 113635 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115193 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 113636 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 115194 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113637 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 113638 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 113639 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113640 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113641 | } }, | 115195 | } }, |
| 113642 | }, .{ | 115196 | }, .{ |
| 113643 | .required_features = .{ .@"64bit", .sse, null, null }, | 115197 | .required_features = .{ .sse, null, null, null }, |
| 113644 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115198 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 113645 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115199 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113646 | .patterns = &.{ | 115200 | .patterns = &.{ |
| 113647 | .{ .src = .{ .to_mem, .none, .none } }, | 115201 | .{ .src = .{ .mem, .none, .none } }, |
| | 115202 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113648 | }, | 115203 | }, |
| 113649 | .call_frame = .{ .alignment = .@"16" }, | 115204 | .call_frame = .{ .alignment = .@"16" }, |
| 113650 | .extra_temps = .{ | 115205 | .extra_temps = .{ |
| 113651 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115206 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113652 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 115207 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 113653 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, | 115208 | .unused, |
| 113654 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115209 | .unused, |
| 113655 | .unused, | 115210 | .unused, |
| 113656 | .unused, | 115211 | .unused, |
| 113657 | .unused, | 115212 | .unused, |
| ... | @@ -113660,29 +115215,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113660,29 +115215,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113660 | .unused, | 115215 | .unused, |
| 113661 | .unused, | 115216 | .unused, |
| 113662 | }, | 115217 | }, |
| 113663 | .dst_temps = .{ .mem, .unused }, | 115218 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113664 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115219 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113665 | .each = .{ .once = &.{ | 115220 | .each = .{ .once = &.{ |
| 113666 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115221 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 113667 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 115222 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113668 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 113669 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 113670 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113671 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113672 | } }, | 115223 | } }, |
| 113673 | }, .{ | 115224 | }, .{ |
| 113674 | .required_features = .{ .@"64bit", .avx, null, null }, | 115225 | .required_features = .{ .sse, null, null, null }, |
| 113675 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115226 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 113676 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115227 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113677 | .patterns = &.{ | 115228 | .patterns = &.{ |
| 113678 | .{ .src = .{ .to_mem, .none, .none } }, | 115229 | .{ .src = .{ .mem, .none, .none } }, |
| | 115230 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113679 | }, | 115231 | }, |
| 113680 | .call_frame = .{ .alignment = .@"16" }, | 115232 | .call_frame = .{ .alignment = .@"16" }, |
| 113681 | .extra_temps = .{ | 115233 | .extra_temps = .{ |
| 113682 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115234 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113683 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115235 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 113684 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, | 115236 | .unused, |
| 113685 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115237 | .unused, |
| 113686 | .unused, | 115238 | .unused, |
| 113687 | .unused, | 115239 | .unused, |
| 113688 | .unused, | 115240 | .unused, |
| ... | @@ -113691,29 +115243,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113691,29 +115243,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113691 | .unused, | 115243 | .unused, |
| 113692 | .unused, | 115244 | .unused, |
| 113693 | }, | 115245 | }, |
| 113694 | .dst_temps = .{ .mem, .unused }, | 115246 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113695 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115247 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113696 | .each = .{ .once = &.{ | 115248 | .each = .{ .once = &.{ |
| 113697 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115249 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 113698 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 115250 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113699 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 113700 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 113701 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113702 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113703 | } }, | 115251 | } }, |
| 113704 | }, .{ | 115252 | }, .{ |
| 113705 | .required_features = .{ .@"64bit", .sse2, null, null }, | 115253 | .required_features = .{ .sse, null, null, null }, |
| 113706 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115254 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 113707 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115255 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113708 | .patterns = &.{ | 115256 | .patterns = &.{ |
| 113709 | .{ .src = .{ .to_mem, .none, .none } }, | 115257 | .{ .src = .{ .mem, .none, .none } }, |
| | 115258 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113710 | }, | 115259 | }, |
| 113711 | .call_frame = .{ .alignment = .@"16" }, | 115260 | .call_frame = .{ .alignment = .@"16" }, |
| 113712 | .extra_temps = .{ | 115261 | .extra_temps = .{ |
| 113713 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115262 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113714 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115263 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 113715 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, | 115264 | .unused, |
| 113716 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115265 | .unused, |
| 113717 | .unused, | 115266 | .unused, |
| 113718 | .unused, | 115267 | .unused, |
| 113719 | .unused, | 115268 | .unused, |
| ... | @@ -113722,29 +115271,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113722,29 +115271,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113722 | .unused, | 115271 | .unused, |
| 113723 | .unused, | 115272 | .unused, |
| 113724 | }, | 115273 | }, |
| 113725 | .dst_temps = .{ .mem, .unused }, | 115274 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113726 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115275 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113727 | .each = .{ .once = &.{ | 115276 | .each = .{ .once = &.{ |
| 113728 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115277 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 113729 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 115278 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113730 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 113731 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 113732 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113733 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113734 | } }, | 115279 | } }, |
| 113735 | }, .{ | 115280 | }, .{ |
| 113736 | .required_features = .{ .@"64bit", .sse, null, null }, | 115281 | .required_features = .{ .sse, null, null, null }, |
| 113737 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 115282 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 113738 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115283 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113739 | .patterns = &.{ | 115284 | .patterns = &.{ |
| 113740 | .{ .src = .{ .to_mem, .none, .none } }, | 115285 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 113741 | }, | 115286 | }, |
| 113742 | .call_frame = .{ .alignment = .@"16" }, | 115287 | .call_frame = .{ .alignment = .@"16" }, |
| 113743 | .extra_temps = .{ | 115288 | .extra_temps = .{ |
| 113744 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115289 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 113745 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115290 | .unused, |
| 113746 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, | 115291 | .unused, |
| 113747 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115292 | .unused, |
| 113748 | .unused, | 115293 | .unused, |
| 113749 | .unused, | 115294 | .unused, |
| 113750 | .unused, | 115295 | .unused, |
| ... | @@ -113753,30 +115298,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113753,30 +115298,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113753 | .unused, | 115298 | .unused, |
| 113754 | .unused, | 115299 | .unused, |
| 113755 | }, | 115300 | }, |
| 113756 | .dst_temps = .{ .mem, .unused }, | 115301 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113757 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115302 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113758 | .each = .{ .once = &.{ | 115303 | .each = .{ .once = &.{ |
| 113759 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 115304 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113760 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 113761 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | | |
| 113762 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | | |
| 113763 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113764 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113765 | } }, | 115305 | } }, |
| 113766 | }, .{ | 115306 | }, .{ |
| 113767 | .required_features = .{ .@"64bit", .avx, null, null }, | 115307 | .required_features = .{ .sse, null, null, null }, |
| 113768 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 115308 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 113769 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115309 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113770 | .patterns = &.{ | 115310 | .patterns = &.{ |
| 113771 | .{ .src = .{ .to_mem, .none, .none } }, | 115311 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 113772 | }, | 115312 | }, |
| 113773 | .call_frame = .{ .alignment = .@"16" }, | 115313 | .call_frame = .{ .alignment = .@"16" }, |
| 113774 | .extra_temps = .{ | 115314 | .extra_temps = .{ |
| 113775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115315 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 113776 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115316 | .unused, |
| 113777 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 115317 | .unused, |
| 113778 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, | 115318 | .unused, |
| 113779 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115319 | .unused, |
| 113780 | .unused, | 115320 | .unused, |
| 113781 | .unused, | 115321 | .unused, |
| 113782 | .unused, | 115322 | .unused, |
| ... | @@ -113784,31 +115324,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113784,31 +115324,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113784 | .unused, | 115324 | .unused, |
| 113785 | .unused, | 115325 | .unused, |
| 113786 | }, | 115326 | }, |
| 113787 | .dst_temps = .{ .mem, .unused }, | 115327 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113788 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115328 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113789 | .each = .{ .once = &.{ | 115329 | .each = .{ .once = &.{ |
| 113790 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115330 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113791 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 113792 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, | | |
| 113793 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 113794 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 113795 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113796 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113797 | } }, | 115331 | } }, |
| 113798 | }, .{ | 115332 | }, .{ |
| 113799 | .required_features = .{ .@"64bit", .sse2, null, null }, | 115333 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113800 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 115334 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 113801 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115335 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113802 | .patterns = &.{ | 115336 | .patterns = &.{ |
| 113803 | .{ .src = .{ .to_mem, .none, .none } }, | 115337 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 113804 | }, | 115338 | }, |
| 113805 | .call_frame = .{ .alignment = .@"16" }, | 115339 | .call_frame = .{ .alignment = .@"16" }, |
| 113806 | .extra_temps = .{ | 115340 | .extra_temps = .{ |
| 113807 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115341 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 113808 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115342 | .unused, |
| 113809 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 115343 | .unused, |
| 113810 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, | 115344 | .unused, |
| 113811 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115345 | .unused, |
| 113812 | .unused, | 115346 | .unused, |
| 113813 | .unused, | 115347 | .unused, |
| 113814 | .unused, | 115348 | .unused, |
| ... | @@ -113816,31 +115350,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113816,31 +115350,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113816 | .unused, | 115350 | .unused, |
| 113817 | .unused, | 115351 | .unused, |
| 113818 | }, | 115352 | }, |
| 113819 | .dst_temps = .{ .mem, .unused }, | 115353 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113820 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115354 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113821 | .each = .{ .once = &.{ | 115355 | .each = .{ .once = &.{ |
| 113822 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115356 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113823 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 113824 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, | | |
| 113825 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 113826 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 113827 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113828 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113829 | } }, | 115357 | } }, |
| 113830 | }, .{ | 115358 | }, .{ |
| 113831 | .required_features = .{ .@"64bit", .sse, null, null }, | 115359 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113832 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 115360 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 113833 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115361 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113834 | .patterns = &.{ | 115362 | .patterns = &.{ |
| 113835 | .{ .src = .{ .to_mem, .none, .none } }, | 115363 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 113836 | }, | 115364 | }, |
| 113837 | .call_frame = .{ .alignment = .@"16" }, | 115365 | .call_frame = .{ .alignment = .@"16" }, |
| 113838 | .extra_temps = .{ | 115366 | .extra_temps = .{ |
| 113839 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115367 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 113840 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115368 | .unused, |
| 113841 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 115369 | .unused, |
| 113842 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, | 115370 | .unused, |
| 113843 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115371 | .unused, |
| 113844 | .unused, | 115372 | .unused, |
| 113845 | .unused, | 115373 | .unused, |
| 113846 | .unused, | 115374 | .unused, |
| ... | @@ -113848,31 +115376,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113848,31 +115376,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113848 | .unused, | 115376 | .unused, |
| 113849 | .unused, | 115377 | .unused, |
| 113850 | }, | 115378 | }, |
| 113851 | .dst_temps = .{ .mem, .unused }, | 115379 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113852 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115380 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113853 | .each = .{ .once = &.{ | 115381 | .each = .{ .once = &.{ |
| 113854 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115382 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113855 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 113856 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, | | |
| 113857 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 113858 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 113859 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113860 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113861 | } }, | 115383 | } }, |
| 113862 | }, .{ | 115384 | }, .{ |
| 113863 | .required_features = .{ .@"64bit", .avx, null, null }, | 115385 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113864 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 115386 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 113865 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115387 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113866 | .patterns = &.{ | 115388 | .patterns = &.{ |
| 113867 | .{ .src = .{ .to_mem, .none, .none } }, | 115389 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 113868 | }, | 115390 | }, |
| 113869 | .call_frame = .{ .alignment = .@"16" }, | 115391 | .call_frame = .{ .alignment = .@"16" }, |
| 113870 | .extra_temps = .{ | 115392 | .extra_temps = .{ |
| 113871 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115393 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 113872 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115394 | .unused, |
| 113873 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 115395 | .unused, |
| 113874 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, | 115396 | .unused, |
| 113875 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115397 | .unused, |
| 113876 | .unused, | 115398 | .unused, |
| 113877 | .unused, | 115399 | .unused, |
| 113878 | .unused, | 115400 | .unused, |
| ... | @@ -113880,31 +115402,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113880,31 +115402,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113880 | .unused, | 115402 | .unused, |
| 113881 | .unused, | 115403 | .unused, |
| 113882 | }, | 115404 | }, |
| 113883 | .dst_temps = .{ .mem, .unused }, | 115405 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113884 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113885 | .each = .{ .once = &.{ | 115407 | .each = .{ .once = &.{ |
| 113886 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115408 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113887 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 113888 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, | | |
| 113889 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 113890 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 113891 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113892 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113893 | } }, | 115409 | } }, |
| 113894 | }, .{ | 115410 | }, .{ |
| 113895 | .required_features = .{ .@"64bit", .sse2, null, null }, | 115411 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113896 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 115412 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 113897 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115413 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113898 | .patterns = &.{ | 115414 | .patterns = &.{ |
| 113899 | .{ .src = .{ .to_mem, .none, .none } }, | 115415 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 113900 | }, | 115416 | }, |
| 113901 | .call_frame = .{ .alignment = .@"16" }, | 115417 | .call_frame = .{ .alignment = .@"16" }, |
| 113902 | .extra_temps = .{ | 115418 | .extra_temps = .{ |
| 113903 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115419 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 113904 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115420 | .unused, |
| 113905 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 115421 | .unused, |
| 113906 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, | 115422 | .unused, |
| 113907 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115423 | .unused, |
| 113908 | .unused, | 115424 | .unused, |
| 113909 | .unused, | 115425 | .unused, |
| 113910 | .unused, | 115426 | .unused, |
| ... | @@ -113912,31 +115428,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113912,31 +115428,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113912 | .unused, | 115428 | .unused, |
| 113913 | .unused, | 115429 | .unused, |
| 113914 | }, | 115430 | }, |
| 113915 | .dst_temps = .{ .mem, .unused }, | 115431 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113916 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115432 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113917 | .each = .{ .once = &.{ | 115433 | .each = .{ .once = &.{ |
| 113918 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115434 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113919 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 113920 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, | | |
| 113921 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 113922 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 113923 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113924 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113925 | } }, | 115435 | } }, |
| 113926 | }, .{ | 115436 | }, .{ |
| 113927 | .required_features = .{ .@"64bit", .sse, null, null }, | 115437 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113928 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 115438 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113929 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115439 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113930 | .patterns = &.{ | 115440 | .patterns = &.{ |
| 113931 | .{ .src = .{ .to_mem, .none, .none } }, | 115441 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113932 | }, | 115442 | }, |
| 113933 | .call_frame = .{ .alignment = .@"16" }, | 115443 | .call_frame = .{ .alignment = .@"16" }, |
| 113934 | .extra_temps = .{ | 115444 | .extra_temps = .{ |
| 113935 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115445 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113936 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 115446 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 113937 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 115447 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 113938 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, | 115448 | .unused, |
| 113939 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115449 | .unused, |
| 113940 | .unused, | 115450 | .unused, |
| 113941 | .unused, | 115451 | .unused, |
| 113942 | .unused, | 115452 | .unused, |
| ... | @@ -113944,66 +115454,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -113944,66 +115454,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113944 | .unused, | 115454 | .unused, |
| 113945 | .unused, | 115455 | .unused, |
| 113946 | }, | 115456 | }, |
| 113947 | .dst_temps = .{ .mem, .unused }, | 115457 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113948 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115458 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113949 | .each = .{ .once = &.{ | 115459 | .each = .{ .once = &.{ |
| 113950 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115460 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 113951 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 115461 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 113952 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, | 115462 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113953 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 113954 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 113955 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 113956 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113957 | } }, | 115463 | } }, |
| 113958 | }, .{ | 115464 | }, .{ |
| 113959 | .required_features = .{ .@"64bit", .avx, null, null }, | 115465 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113960 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115466 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113961 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115467 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113962 | .patterns = &.{ | 115468 | .patterns = &.{ |
| 113963 | .{ .src = .{ .to_mem, .none, .none } }, | 115469 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113964 | }, | 115470 | }, |
| 113965 | .call_frame = .{ .alignment = .@"16" }, | 115471 | .call_frame = .{ .alignment = .@"16" }, |
| 113966 | .extra_temps = .{ | 115472 | .extra_temps = .{ |
| 113967 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 113968 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 113969 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 115473 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113970 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 115474 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 113971 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, | 115475 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 113972 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115476 | .unused, |
| | 115477 | .unused, |
| | 115478 | .unused, |
| 113973 | .unused, | 115479 | .unused, |
| 113974 | .unused, | 115480 | .unused, |
| 113975 | .unused, | 115481 | .unused, |
| 113976 | .unused, | 115482 | .unused, |
| 113977 | .unused, | 115483 | .unused, |
| 113978 | }, | 115484 | }, |
| 113979 | .dst_temps = .{ .mem, .unused }, | 115485 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113980 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115486 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113981 | .each = .{ .once = &.{ | 115487 | .each = .{ .once = &.{ |
| 113982 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 115488 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 113983 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115489 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 113984 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 115490 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113985 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | | |
| 113986 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | | |
| 113987 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 113988 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 113989 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 113990 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 113991 | } }, | 115491 | } }, |
| 113992 | }, .{ | 115492 | }, .{ |
| 113993 | .required_features = .{ .@"64bit", .sse2, null, null }, | 115493 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 113994 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115494 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113995 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115495 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 113996 | .patterns = &.{ | 115496 | .patterns = &.{ |
| 113997 | .{ .src = .{ .to_mem, .none, .none } }, | 115497 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113998 | }, | 115498 | }, |
| 113999 | .call_frame = .{ .alignment = .@"16" }, | 115499 | .call_frame = .{ .alignment = .@"16" }, |
| 114000 | .extra_temps = .{ | 115500 | .extra_temps = .{ |
| 114001 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 114002 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115501 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114003 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 115502 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114004 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 115503 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114005 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, | 115504 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114006 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115505 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 115506 | .unused, |
| 114007 | .unused, | 115507 | .unused, |
| 114008 | .unused, | 115508 | .unused, |
| 114009 | .unused, | 115509 | .unused, |
| ... | @@ -114013,31 +115513,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114013,31 +115513,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114013 | .dst_temps = .{ .mem, .unused }, | 115513 | .dst_temps = .{ .mem, .unused }, |
| 114014 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115514 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114015 | .each = .{ .once = &.{ | 115515 | .each = .{ .once = &.{ |
| 114016 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 115516 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114017 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115517 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114018 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 115518 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114019 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 115519 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114020 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 115520 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 114021 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 115521 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114022 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 115522 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114023 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 114024 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115523 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114025 | } }, | 115524 | } }, |
| 114026 | }, .{ | 115525 | }, .{ |
| 114027 | .required_features = .{ .@"64bit", .sse, null, null }, | 115526 | .required_features = .{ .avx, null, null, null }, |
| 114028 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115527 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114029 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115528 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114030 | .patterns = &.{ | 115529 | .patterns = &.{ |
| 114031 | .{ .src = .{ .to_mem, .none, .none } }, | 115530 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114032 | }, | 115531 | }, |
| 114033 | .call_frame = .{ .alignment = .@"16" }, | 115532 | .call_frame = .{ .alignment = .@"16" }, |
| 114034 | .extra_temps = .{ | 115533 | .extra_temps = .{ |
| 114035 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 114036 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115534 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114037 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 115535 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114038 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 115536 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114039 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, | 115537 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114040 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115538 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 115539 | .unused, |
| 114041 | .unused, | 115540 | .unused, |
| 114042 | .unused, | 115541 | .unused, |
| 114043 | .unused, | 115542 | .unused, |
| ... | @@ -114047,31 +115546,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114047,31 +115546,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114047 | .dst_temps = .{ .mem, .unused }, | 115546 | .dst_temps = .{ .mem, .unused }, |
| 114048 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115547 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114049 | .each = .{ .once = &.{ | 115548 | .each = .{ .once = &.{ |
| 114050 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 115549 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114051 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115550 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114052 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 115551 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114053 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 115552 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114054 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 115553 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 114055 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 115554 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114056 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 115555 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 114057 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, | 115556 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114058 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 114059 | } }, | 115557 | } }, |
| 114060 | }, .{ | 115558 | }, .{ |
| 114061 | .required_features = .{ .@"64bit", .avx, null, null }, | 115559 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 114062 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115560 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114063 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115561 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114064 | .patterns = &.{ | 115562 | .patterns = &.{ |
| 114065 | .{ .src = .{ .to_mem, .none, .none } }, | 115563 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114066 | }, | 115564 | }, |
| 114067 | .call_frame = .{ .alignment = .@"16" }, | 115565 | .call_frame = .{ .alignment = .@"16" }, |
| 114068 | .extra_temps = .{ | 115566 | .extra_temps = .{ |
| 114069 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 114070 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115567 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114071 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 115568 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114072 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 115569 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114073 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, | 115570 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114074 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115571 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 115572 | .unused, |
| 114075 | .unused, | 115573 | .unused, |
| 114076 | .unused, | 115574 | .unused, |
| 114077 | .unused, | 115575 | .unused, |
| ... | @@ -114081,31 +115579,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114081,31 +115579,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114081 | .dst_temps = .{ .mem, .unused }, | 115579 | .dst_temps = .{ .mem, .unused }, |
| 114082 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115580 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114083 | .each = .{ .once = &.{ | 115581 | .each = .{ .once = &.{ |
| 114084 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 115582 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114085 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115583 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114086 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 115584 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114087 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 115585 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114088 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 115586 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 114089 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 115587 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114090 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 115588 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114091 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 114092 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115589 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114093 | } }, | 115590 | } }, |
| 114094 | }, .{ | 115591 | }, .{ |
| 114095 | .required_features = .{ .@"64bit", .sse2, null, null }, | 115592 | .required_features = .{ .sse2, null, null, null }, |
| 114096 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115593 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114097 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115594 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114098 | .patterns = &.{ | 115595 | .patterns = &.{ |
| 114099 | .{ .src = .{ .to_mem, .none, .none } }, | 115596 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114100 | }, | 115597 | }, |
| 114101 | .call_frame = .{ .alignment = .@"16" }, | 115598 | .call_frame = .{ .alignment = .@"16" }, |
| 114102 | .extra_temps = .{ | 115599 | .extra_temps = .{ |
| 114103 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 114104 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115600 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114105 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 115601 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114106 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 115602 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114107 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, | 115603 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114108 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115604 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 115605 | .unused, |
| 114109 | .unused, | 115606 | .unused, |
| 114110 | .unused, | 115607 | .unused, |
| 114111 | .unused, | 115608 | .unused, |
| ... | @@ -114115,31 +115612,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114115,31 +115612,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114115 | .dst_temps = .{ .mem, .unused }, | 115612 | .dst_temps = .{ .mem, .unused }, |
| 114116 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115613 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114117 | .each = .{ .once = &.{ | 115614 | .each = .{ .once = &.{ |
| 114118 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 115615 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114119 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115616 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114120 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 115617 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114121 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 115618 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114122 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 115619 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 114123 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 115620 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114124 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 115621 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 114125 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, | 115622 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114126 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 114127 | } }, | 115623 | } }, |
| 114128 | }, .{ | 115624 | }, .{ |
| 114129 | .required_features = .{ .@"64bit", .sse, null, null }, | 115625 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 114130 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115626 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114131 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, | 115627 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114132 | .patterns = &.{ | 115628 | .patterns = &.{ |
| 114133 | .{ .src = .{ .to_mem, .none, .none } }, | 115629 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114134 | }, | 115630 | }, |
| 114135 | .call_frame = .{ .alignment = .@"16" }, | 115631 | .call_frame = .{ .alignment = .@"16" }, |
| 114136 | .extra_temps = .{ | 115632 | .extra_temps = .{ |
| 114137 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 114138 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 115633 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114139 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 115634 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114140 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 115635 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114141 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, | 115636 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114142 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, | 115637 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 115638 | .unused, |
| 114143 | .unused, | 115639 | .unused, |
| 114144 | .unused, | 115640 | .unused, |
| 114145 | .unused, | 115641 | .unused, |
| ... | @@ -114149,30 +115645,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114149,30 +115645,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114149 | .dst_temps = .{ .mem, .unused }, | 115645 | .dst_temps = .{ .mem, .unused }, |
| 114150 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115646 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114151 | .each = .{ .once = &.{ | 115647 | .each = .{ .once = &.{ |
| 114152 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 115648 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114153 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 115649 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114154 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 115650 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114155 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 115651 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114156 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 115652 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 114157 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 115653 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114158 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 115654 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114159 | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 114160 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 115655 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114161 | } }, | 115656 | } }, |
| 114162 | }, .{ | 115657 | }, .{ |
| 114163 | .required_features = .{ .x87, null, null, null }, | 115658 | .required_features = .{ .sse, null, null, null }, |
| 114164 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | 115659 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114165 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115660 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114166 | .patterns = &.{ | 115661 | .patterns = &.{ |
| 114167 | .{ .src = .{ .mem, .none, .none } }, | 115662 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114168 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 114169 | }, | 115663 | }, |
| | 115664 | .call_frame = .{ .alignment = .@"16" }, |
| 114170 | .extra_temps = .{ | 115665 | .extra_temps = .{ |
| 114171 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 115666 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114172 | .{ .type = .i16, .kind = .mem }, | 115667 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114173 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115668 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114174 | .unused, | 115669 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114175 | .unused, | 115670 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114176 | .unused, | 115671 | .unused, |
| 114177 | .unused, | 115672 | .unused, |
| 114178 | .unused, | 115673 | .unused, |
| ... | @@ -114180,27 +115675,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114180,27 +115675,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114180 | .unused, | 115675 | .unused, |
| 114181 | .unused, | 115676 | .unused, |
| 114182 | }, | 115677 | }, |
| 114183 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115678 | .dst_temps = .{ .mem, .unused }, |
| | 115679 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114184 | .each = .{ .once = &.{ | 115680 | .each = .{ .once = &.{ |
| 114185 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 115681 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114186 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, | 115682 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114187 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, | 115683 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114188 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115684 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 115685 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| | 115686 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 115687 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 115688 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114189 | } }, | 115689 | } }, |
| 114190 | }, .{ | 115690 | }, .{ |
| 114191 | .required_features = .{ .x87, null, null, null }, | 115691 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 114192 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 115692 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114193 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115693 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114194 | .patterns = &.{ | 115694 | .patterns = &.{ |
| 114195 | .{ .src = .{ .mem, .none, .none } }, | 115695 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114196 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 114197 | }, | 115696 | }, |
| | 115697 | .call_frame = .{ .alignment = .@"16" }, |
| 114198 | .extra_temps = .{ | 115698 | .extra_temps = .{ |
| 114199 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 115699 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114200 | .{ .type = .i16, .kind = .mem }, | 115700 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114201 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115701 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114202 | .unused, | 115702 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114203 | .unused, | 115703 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114204 | .unused, | 115704 | .unused, |
| 114205 | .unused, | 115705 | .unused, |
| 114206 | .unused, | 115706 | .unused, |
| ... | @@ -114208,26 +115708,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114208,26 +115708,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114208 | .unused, | 115708 | .unused, |
| 114209 | .unused, | 115709 | .unused, |
| 114210 | }, | 115710 | }, |
| 114211 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115711 | .dst_temps = .{ .mem, .unused }, |
| | 115712 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114212 | .each = .{ .once = &.{ | 115713 | .each = .{ .once = &.{ |
| 114213 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 115714 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114214 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, | 115715 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114215 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, | 115716 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114216 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115717 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 115718 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| | 115719 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 115720 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 115721 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114217 | } }, | 115722 | } }, |
| 114218 | }, .{ | 115723 | }, .{ |
| 114219 | .required_features = .{ .x87, null, null, null }, | 115724 | .required_features = .{ .avx, null, null, null }, |
| 114220 | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, | 115725 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114221 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115726 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114222 | .patterns = &.{ | 115727 | .patterns = &.{ |
| 114223 | .{ .src = .{ .to_mem, .none, .none } }, | 115728 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114224 | }, | 115729 | }, |
| | 115730 | .call_frame = .{ .alignment = .@"16" }, |
| 114225 | .extra_temps = .{ | 115731 | .extra_temps = .{ |
| 114226 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115732 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114227 | .unused, | 115733 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114228 | .unused, | 115734 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114229 | .unused, | 115735 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114230 | .unused, | 115736 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114231 | .unused, | 115737 | .unused, |
| 114232 | .unused, | 115738 | .unused, |
| 114233 | .unused, | 115739 | .unused, |
| ... | @@ -114235,25 +115741,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114235,25 +115741,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114235 | .unused, | 115741 | .unused, |
| 114236 | .unused, | 115742 | .unused, |
| 114237 | }, | 115743 | }, |
| 114238 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115744 | .dst_temps = .{ .mem, .unused }, |
| | 115745 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114239 | .each = .{ .once = &.{ | 115746 | .each = .{ .once = &.{ |
| 114240 | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, | 115747 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114241 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115748 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 115749 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 115750 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 115751 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| | 115752 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 115753 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 115754 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114242 | } }, | 115755 | } }, |
| 114243 | }, .{ | 115756 | }, .{ |
| 114244 | .required_features = .{ .x87, null, null, null }, | 115757 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 114245 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, | 115758 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114246 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115759 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114247 | .patterns = &.{ | 115760 | .patterns = &.{ |
| 114248 | .{ .src = .{ .mem, .none, .none } }, | 115761 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114249 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 114250 | }, | 115762 | }, |
| | 115763 | .call_frame = .{ .alignment = .@"16" }, |
| 114251 | .extra_temps = .{ | 115764 | .extra_temps = .{ |
| 114252 | .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 115765 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114253 | .{ .type = .i32, .kind = .mem }, | 115766 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114254 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115767 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114255 | .unused, | 115768 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114256 | .unused, | 115769 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114257 | .unused, | 115770 | .unused, |
| 114258 | .unused, | 115771 | .unused, |
| 114259 | .unused, | 115772 | .unused, |
| ... | @@ -114261,26 +115774,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114261,26 +115774,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114261 | .unused, | 115774 | .unused, |
| 114262 | .unused, | 115775 | .unused, |
| 114263 | }, | 115776 | }, |
| 114264 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115777 | .dst_temps = .{ .mem, .unused }, |
| | 115778 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114265 | .each = .{ .once = &.{ | 115779 | .each = .{ .once = &.{ |
| 114266 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | 115780 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114267 | .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, | 115781 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114268 | .{ ._, .fi_, .ld, .tmp1d, ._, ._, ._ }, | 115782 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114269 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115783 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 115784 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| | 115785 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 115786 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 115787 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114270 | } }, | 115788 | } }, |
| 114271 | }, .{ | 115789 | }, .{ |
| 114272 | .required_features = .{ .x87, null, null, null }, | 115790 | .required_features = .{ .sse2, null, null, null }, |
| 114273 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, | 115791 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114274 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115792 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114275 | .patterns = &.{ | 115793 | .patterns = &.{ |
| 114276 | .{ .src = .{ .to_mem, .none, .none } }, | 115794 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114277 | }, | 115795 | }, |
| | 115796 | .call_frame = .{ .alignment = .@"16" }, |
| 114278 | .extra_temps = .{ | 115797 | .extra_temps = .{ |
| 114279 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115798 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114280 | .unused, | 115799 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114281 | .unused, | 115800 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114282 | .unused, | 115801 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114283 | .unused, | 115802 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114284 | .unused, | 115803 | .unused, |
| 114285 | .unused, | 115804 | .unused, |
| 114286 | .unused, | 115805 | .unused, |
| ... | @@ -114288,25 +115807,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114288,25 +115807,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114288 | .unused, | 115807 | .unused, |
| 114289 | .unused, | 115808 | .unused, |
| 114290 | }, | 115809 | }, |
| 114291 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115810 | .dst_temps = .{ .mem, .unused }, |
| | 115811 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114292 | .each = .{ .once = &.{ | 115812 | .each = .{ .once = &.{ |
| 114293 | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, | 115813 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114294 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115814 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 115815 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 115816 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 115817 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| | 115818 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 115819 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 115820 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114295 | } }, | 115821 | } }, |
| 114296 | }, .{ | 115822 | }, .{ |
| 114297 | .required_features = .{ .@"64bit", .x87, null, null }, | 115823 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 114298 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, | 115824 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114299 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115825 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114300 | .patterns = &.{ | 115826 | .patterns = &.{ |
| 114301 | .{ .src = .{ .mem, .none, .none } }, | 115827 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114302 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 114303 | }, | 115828 | }, |
| | 115829 | .call_frame = .{ .alignment = .@"16" }, |
| 114304 | .extra_temps = .{ | 115830 | .extra_temps = .{ |
| 114305 | .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, | 115831 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114306 | .{ .type = .i64, .kind = .mem }, | 115832 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114307 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115833 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114308 | .unused, | 115834 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114309 | .unused, | 115835 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114310 | .unused, | 115836 | .unused, |
| 114311 | .unused, | 115837 | .unused, |
| 114312 | .unused, | 115838 | .unused, |
| ... | @@ -114314,26 +115840,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114314,26 +115840,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114314 | .unused, | 115840 | .unused, |
| 114315 | .unused, | 115841 | .unused, |
| 114316 | }, | 115842 | }, |
| 114317 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115843 | .dst_temps = .{ .mem, .unused }, |
| | 115844 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114318 | .each = .{ .once = &.{ | 115845 | .each = .{ .once = &.{ |
| 114319 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, | 115846 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114320 | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, | 115847 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114321 | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, | 115848 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114322 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115849 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 115850 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| | 115851 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 115852 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 115853 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114323 | } }, | 115854 | } }, |
| 114324 | }, .{ | 115855 | }, .{ |
| 114325 | .required_features = .{ .x87, null, null, null }, | 115856 | .required_features = .{ .sse, null, null, null }, |
| 114326 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, | 115857 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114327 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115858 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114328 | .patterns = &.{ | 115859 | .patterns = &.{ |
| 114329 | .{ .src = .{ .to_mem, .none, .none } }, | 115860 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114330 | }, | 115861 | }, |
| | 115862 | .call_frame = .{ .alignment = .@"16" }, |
| 114331 | .extra_temps = .{ | 115863 | .extra_temps = .{ |
| 114332 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115864 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114333 | .unused, | 115865 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114334 | .unused, | 115866 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114335 | .unused, | 115867 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114336 | .unused, | 115868 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114337 | .unused, | 115869 | .unused, |
| 114338 | .unused, | 115870 | .unused, |
| 114339 | .unused, | 115871 | .unused, |
| ... | @@ -114341,23 +115873,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114341,23 +115873,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114341 | .unused, | 115873 | .unused, |
| 114342 | .unused, | 115874 | .unused, |
| 114343 | }, | 115875 | }, |
| 114344 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115876 | .dst_temps = .{ .mem, .unused }, |
| | 115877 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114345 | .each = .{ .once = &.{ | 115878 | .each = .{ .once = &.{ |
| 114346 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, | 115879 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114347 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115880 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 115881 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 115882 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 115883 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| | 115884 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| | 115885 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 115886 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114348 | } }, | 115887 | } }, |
| 114349 | }, .{ | 115888 | }, .{ |
| 114350 | .required_features = .{ .x87, null, null, null }, | 115889 | .required_features = .{ .avx, null, null, null }, |
| 114351 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, | 115890 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114352 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115891 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114353 | .patterns = &.{ | 115892 | .patterns = &.{ |
| 114354 | .{ .src = .{ .to_mem, .none, .none } }, | 115893 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114355 | }, | 115894 | }, |
| | 115895 | .call_frame = .{ .alignment = .@"16" }, |
| 114356 | .extra_temps = .{ | 115896 | .extra_temps = .{ |
| 114357 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 115897 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114358 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, | 115898 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114359 | .{ .type = .vector_2_f32, .kind = .f32_0_0x1p64_mem }, | 115899 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114360 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 115900 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114361 | .unused, | 115901 | .unused, |
| 114362 | .unused, | 115902 | .unused, |
| 114363 | .unused, | 115903 | .unused, |
| ... | @@ -114366,29 +115906,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114366,29 +115906,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114366 | .unused, | 115906 | .unused, |
| 114367 | .unused, | 115907 | .unused, |
| 114368 | }, | 115908 | }, |
| 114369 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, | 115909 | .dst_temps = .{ .mem, .unused }, |
| 114370 | .clobbers = .{ .eflags = true }, | 115910 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114371 | .each = .{ .once = &.{ | 115911 | .each = .{ .once = &.{ |
| 114372 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, | 115912 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114373 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, | 115913 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114374 | .{ ._, ._, .mov, .tmp1d, .memd(.src0d, 4), ._, ._ }, | 115914 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114375 | .{ ._, ._r, .sh, .tmp1d, .ui(31), ._, ._ }, | 115915 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114376 | .{ ._, .f_, .add, .leasi(.tmp0d, .@"4", .tmp1), ._, ._, ._ }, | 115916 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114377 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, | 115917 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114378 | } }, | 115918 | } }, |
| 114379 | }, .{ | 115919 | }, .{ |
| 114380 | .required_features = .{ .@"64bit", .sse, null, null }, | 115920 | .required_features = .{ .sse2, null, null, null }, |
| 114381 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, | 115921 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114382 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115922 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114383 | .patterns = &.{ | 115923 | .patterns = &.{ |
| 114384 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 115924 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114385 | }, | 115925 | }, |
| 114386 | .call_frame = .{ .alignment = .@"16" }, | 115926 | .call_frame = .{ .alignment = .@"16" }, |
| 114387 | .extra_temps = .{ | 115927 | .extra_temps = .{ |
| 114388 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattixf" } } }, | 115928 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114389 | .unused, | 115929 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114390 | .unused, | 115930 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114391 | .unused, | 115931 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114392 | .unused, | 115932 | .unused, |
| 114393 | .unused, | 115933 | .unused, |
| 114394 | .unused, | 115934 | .unused, |
| ... | @@ -114397,24 +115937,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114397,24 +115937,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114397 | .unused, | 115937 | .unused, |
| 114398 | .unused, | 115938 | .unused, |
| 114399 | }, | 115939 | }, |
| 114400 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, | 115940 | .dst_temps = .{ .mem, .unused }, |
| 114401 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115941 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114402 | .each = .{ .once = &.{ | 115942 | .each = .{ .once = &.{ |
| 114403 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 115943 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 115944 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 115945 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 115946 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 115947 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 115948 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114404 | } }, | 115949 | } }, |
| 114405 | }, .{ | 115950 | }, .{ |
| 114406 | .required_features = .{ .@"64bit", .sse, null, null }, | 115951 | .required_features = .{ .sse, null, null, null }, |
| 114407 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, | 115952 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114408 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115953 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114409 | .patterns = &.{ | 115954 | .patterns = &.{ |
| 114410 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 115955 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114411 | }, | 115956 | }, |
| 114412 | .call_frame = .{ .alignment = .@"16" }, | 115957 | .call_frame = .{ .alignment = .@"16" }, |
| 114413 | .extra_temps = .{ | 115958 | .extra_temps = .{ |
| 114414 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, | 115959 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114415 | .unused, | 115960 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114416 | .unused, | 115961 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114417 | .unused, | 115962 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114418 | .unused, | 115963 | .unused, |
| 114419 | .unused, | 115964 | .unused, |
| 114420 | .unused, | 115965 | .unused, |
| ... | @@ -114423,24 +115968,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114423,24 +115968,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114423 | .unused, | 115968 | .unused, |
| 114424 | .unused, | 115969 | .unused, |
| 114425 | }, | 115970 | }, |
| 114426 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, | 115971 | .dst_temps = .{ .mem, .unused }, |
| 114427 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 115972 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114428 | .each = .{ .once = &.{ | 115973 | .each = .{ .once = &.{ |
| 114429 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 115974 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| | 115975 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 115976 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 115977 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 115978 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 115979 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114430 | } }, | 115980 | } }, |
| 114431 | }, .{ | 115981 | }, .{ |
| 114432 | .required_features = .{ .@"64bit", .sse, null, null }, | 115982 | .required_features = .{ .avx, null, null, null }, |
| 114433 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 115983 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114434 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 115984 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114435 | .patterns = &.{ | 115985 | .patterns = &.{ |
| 114436 | .{ .src = .{ .to_mem, .none, .none } }, | 115986 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114437 | }, | 115987 | }, |
| 114438 | .call_frame = .{ .alignment = .@"16" }, | 115988 | .call_frame = .{ .alignment = .@"16" }, |
| 114439 | .extra_temps = .{ | 115989 | .extra_temps = .{ |
| 114440 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 115990 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114441 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 115991 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114442 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, | 115992 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114443 | .unused, | 115993 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114444 | .unused, | 115994 | .unused, |
| 114445 | .unused, | 115995 | .unused, |
| 114446 | .unused, | 115996 | .unused, |
| ... | @@ -114449,26 +115999,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114449,26 +115999,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114449 | .unused, | 115999 | .unused, |
| 114450 | .unused, | 116000 | .unused, |
| 114451 | }, | 116001 | }, |
| 114452 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, | 116002 | .dst_temps = .{ .mem, .unused }, |
| 114453 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116003 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114454 | .each = .{ .once = &.{ | 116004 | .each = .{ .once = &.{ |
| 114455 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 116005 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114456 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 116006 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114457 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116007 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 116008 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 116009 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 116010 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114458 | } }, | 116011 | } }, |
| 114459 | }, .{ | 116012 | }, .{ |
| 114460 | .required_features = .{ .@"64bit", .sse, null, null }, | 116013 | .required_features = .{ .sse2, null, null, null }, |
| 114461 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 116014 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114462 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, | 116015 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114463 | .patterns = &.{ | 116016 | .patterns = &.{ |
| 114464 | .{ .src = .{ .to_mem, .none, .none } }, | 116017 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114465 | }, | 116018 | }, |
| 114466 | .call_frame = .{ .alignment = .@"16" }, | 116019 | .call_frame = .{ .alignment = .@"16" }, |
| 114467 | .extra_temps = .{ | 116020 | .extra_temps = .{ |
| 114468 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 116021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114469 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 116022 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114470 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, | 116023 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114471 | .unused, | 116024 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114472 | .unused, | 116025 | .unused, |
| 114473 | .unused, | 116026 | .unused, |
| 114474 | .unused, | 116027 | .unused, |
| ... | @@ -114477,26 +116030,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114477,26 +116030,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114477 | .unused, | 116030 | .unused, |
| 114478 | .unused, | 116031 | .unused, |
| 114479 | }, | 116032 | }, |
| 114480 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, | 116033 | .dst_temps = .{ .mem, .unused }, |
| 114481 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116034 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114482 | .each = .{ .once = &.{ | 116035 | .each = .{ .once = &.{ |
| 114483 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 116036 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114484 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 116037 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114485 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116038 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| | 116039 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 116040 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 116041 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114486 | } }, | 116042 | } }, |
| 114487 | }, .{ | 116043 | }, .{ |
| 114488 | .required_features = .{ .x87, .slow_incdec, null, null }, | 116044 | .required_features = .{ .sse, null, null, null }, |
| 114489 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116045 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114490 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116046 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114491 | .patterns = &.{ | 116047 | .patterns = &.{ |
| 114492 | .{ .src = .{ .to_mem, .none, .none } }, | 116048 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114493 | }, | 116049 | }, |
| | 116050 | .call_frame = .{ .alignment = .@"16" }, |
| 114494 | .extra_temps = .{ | 116051 | .extra_temps = .{ |
| 114495 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116052 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114496 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 116053 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114497 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 116054 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114498 | .{ .type = .i16, .kind = .mem }, | 116055 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114499 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116056 | .unused, |
| 114500 | .unused, | 116057 | .unused, |
| 114501 | .unused, | 116058 | .unused, |
| 114502 | .unused, | 116059 | .unused, |
| ... | @@ -114505,31 +116062,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114505,31 +116062,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114505 | .unused, | 116062 | .unused, |
| 114506 | }, | 116063 | }, |
| 114507 | .dst_temps = .{ .mem, .unused }, | 116064 | .dst_temps = .{ .mem, .unused }, |
| 114508 | .clobbers = .{ .eflags = true }, | 116065 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114509 | .each = .{ .once = &.{ | 116066 | .each = .{ .once = &.{ |
| 114510 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116067 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114511 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116068 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114512 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116069 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114513 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, | 116070 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114514 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, | 116071 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114515 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | | |
| 114516 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114517 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 114518 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116072 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114519 | } }, | 116073 | } }, |
| 114520 | }, .{ | 116074 | }, .{ |
| 114521 | .required_features = .{ .x87, null, null, null }, | 116075 | .required_features = .{ .avx, null, null, null }, |
| 114522 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116076 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114523 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116077 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114524 | .patterns = &.{ | 116078 | .patterns = &.{ |
| 114525 | .{ .src = .{ .to_mem, .none, .none } }, | 116079 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114526 | }, | 116080 | }, |
| | 116081 | .call_frame = .{ .alignment = .@"16" }, |
| 114527 | .extra_temps = .{ | 116082 | .extra_temps = .{ |
| 114528 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116083 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114529 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 116084 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114530 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 116085 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114531 | .{ .type = .i16, .kind = .mem }, | 116086 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114532 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116087 | .unused, |
| 114533 | .unused, | 116088 | .unused, |
| 114534 | .unused, | 116089 | .unused, |
| 114535 | .unused, | 116090 | .unused, |
| ... | @@ -114538,31 +116093,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114538,31 +116093,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114538 | .unused, | 116093 | .unused, |
| 114539 | }, | 116094 | }, |
| 114540 | .dst_temps = .{ .mem, .unused }, | 116095 | .dst_temps = .{ .mem, .unused }, |
| 114541 | .clobbers = .{ .eflags = true }, | 116096 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114542 | .each = .{ .once = &.{ | 116097 | .each = .{ .once = &.{ |
| 114543 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116098 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114544 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116099 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114545 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116100 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114546 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, | 116101 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114547 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, | 116102 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114548 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | 116103 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114549 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114550 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 114551 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 114552 | } }, | 116104 | } }, |
| 114553 | }, .{ | 116105 | }, .{ |
| 114554 | .required_features = .{ .x87, .slow_incdec, null, null }, | 116106 | .required_features = .{ .sse2, null, null, null }, |
| 114555 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116107 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114556 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116108 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114557 | .patterns = &.{ | 116109 | .patterns = &.{ |
| 114558 | .{ .src = .{ .to_mem, .none, .none } }, | 116110 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114559 | }, | 116111 | }, |
| | 116112 | .call_frame = .{ .alignment = .@"16" }, |
| 114560 | .extra_temps = .{ | 116113 | .extra_temps = .{ |
| 114561 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116114 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114562 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 116115 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114563 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 116116 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114564 | .{ .type = .i16, .kind = .mem }, | 116117 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114565 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116118 | .unused, |
| 114566 | .unused, | 116119 | .unused, |
| 114567 | .unused, | 116120 | .unused, |
| 114568 | .unused, | 116121 | .unused, |
| ... | @@ -114571,31 +116124,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114571,31 +116124,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114571 | .unused, | 116124 | .unused, |
| 114572 | }, | 116125 | }, |
| 114573 | .dst_temps = .{ .mem, .unused }, | 116126 | .dst_temps = .{ .mem, .unused }, |
| 114574 | .clobbers = .{ .eflags = true }, | 116127 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114575 | .each = .{ .once = &.{ | 116128 | .each = .{ .once = &.{ |
| 114576 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116129 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114577 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116130 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114578 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116131 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114579 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, | 116132 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114580 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, | 116133 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114581 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | | |
| 114582 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114583 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 114584 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114585 | } }, | 116135 | } }, |
| 114586 | }, .{ | 116136 | }, .{ |
| 114587 | .required_features = .{ .x87, null, null, null }, | 116137 | .required_features = .{ .sse, null, null, null }, |
| 114588 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116138 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114589 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116139 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114590 | .patterns = &.{ | 116140 | .patterns = &.{ |
| 114591 | .{ .src = .{ .to_mem, .none, .none } }, | 116141 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114592 | }, | 116142 | }, |
| | 116143 | .call_frame = .{ .alignment = .@"16" }, |
| 114593 | .extra_temps = .{ | 116144 | .extra_temps = .{ |
| 114594 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114595 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 116146 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114596 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, | 116147 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 114597 | .{ .type = .i16, .kind = .mem }, | 116148 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114598 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116149 | .unused, |
| 114599 | .unused, | 116150 | .unused, |
| 114600 | .unused, | 116151 | .unused, |
| 114601 | .unused, | 116152 | .unused, |
| ... | @@ -114604,32 +116155,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114604,32 +116155,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114604 | .unused, | 116155 | .unused, |
| 114605 | }, | 116156 | }, |
| 114606 | .dst_temps = .{ .mem, .unused }, | 116157 | .dst_temps = .{ .mem, .unused }, |
| 114607 | .clobbers = .{ .eflags = true }, | 116158 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114608 | .each = .{ .once = &.{ | 116159 | .each = .{ .once = &.{ |
| 114609 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116160 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114610 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116161 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114611 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116162 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114612 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, | 116163 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114613 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, | 116164 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114614 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | 116165 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114615 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114616 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 114617 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 114618 | } }, | 116166 | } }, |
| 114619 | }, .{ | 116167 | }, .{ |
| 114620 | .required_features = .{ .x87, .slow_incdec, null, null }, | 116168 | .required_features = .{ .avx, null, null, null }, |
| 114621 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116169 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114622 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116170 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114623 | .patterns = &.{ | 116171 | .patterns = &.{ |
| 114624 | .{ .src = .{ .to_mem, .none, .none } }, | 116172 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114625 | }, | 116173 | }, |
| 114626 | .call_frame = .{ .alignment = .@"16" }, | 116174 | .call_frame = .{ .alignment = .@"16" }, |
| 114627 | .extra_temps = .{ | 116175 | .extra_temps = .{ |
| 114628 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116176 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114629 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 116177 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114630 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 116178 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114631 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, | 116179 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114632 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116180 | .unused, |
| 114633 | .unused, | 116181 | .unused, |
| 114634 | .unused, | 116182 | .unused, |
| 114635 | .unused, | 116183 | .unused, |
| ... | @@ -114641,29 +116189,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114641,29 +116189,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114641 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116189 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114642 | .each = .{ .once = &.{ | 116190 | .each = .{ .once = &.{ |
| 114643 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116191 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114644 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116192 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114645 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116193 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114646 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 116194 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114647 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116195 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114648 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | | |
| 114649 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114650 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 114651 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116196 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114652 | } }, | 116197 | } }, |
| 114653 | }, .{ | 116198 | }, .{ |
| 114654 | .required_features = .{ .x87, null, null, null }, | 116199 | .required_features = .{ .sse2, null, null, null }, |
| 114655 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116200 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114656 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116201 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114657 | .patterns = &.{ | 116202 | .patterns = &.{ |
| 114658 | .{ .src = .{ .to_mem, .none, .none } }, | 116203 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114659 | }, | 116204 | }, |
| 114660 | .call_frame = .{ .alignment = .@"16" }, | 116205 | .call_frame = .{ .alignment = .@"16" }, |
| 114661 | .extra_temps = .{ | 116206 | .extra_temps = .{ |
| 114662 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116207 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114663 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 116208 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114664 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 116209 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114665 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, | 116210 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114666 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116211 | .unused, |
| 114667 | .unused, | 116212 | .unused, |
| 114668 | .unused, | 116213 | .unused, |
| 114669 | .unused, | 116214 | .unused, |
| ... | @@ -114675,29 +116220,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114675,29 +116220,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114675 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116220 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114676 | .each = .{ .once = &.{ | 116221 | .each = .{ .once = &.{ |
| 114677 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116222 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114678 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116223 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114679 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116224 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114680 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 116225 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114681 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116226 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114682 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | 116227 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114683 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114684 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 114685 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 114686 | } }, | 116228 | } }, |
| 114687 | }, .{ | 116229 | }, .{ |
| 114688 | .required_features = .{ .x87, .slow_incdec, null, null }, | 116230 | .required_features = .{ .sse, null, null, null }, |
| 114689 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116231 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114690 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116232 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114691 | .patterns = &.{ | 116233 | .patterns = &.{ |
| 114692 | .{ .src = .{ .to_mem, .none, .none } }, | 116234 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114693 | }, | 116235 | }, |
| 114694 | .call_frame = .{ .alignment = .@"16" }, | 116236 | .call_frame = .{ .alignment = .@"16" }, |
| 114695 | .extra_temps = .{ | 116237 | .extra_temps = .{ |
| 114696 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116238 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114697 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 114698 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 116239 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114699 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, | 116240 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 114700 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116241 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| | 116242 | .unused, |
| 114701 | .unused, | 116243 | .unused, |
| 114702 | .unused, | 116244 | .unused, |
| 114703 | .unused, | 116245 | .unused, |
| ... | @@ -114709,29 +116251,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114709,29 +116251,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114709 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116251 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114710 | .each = .{ .once = &.{ | 116252 | .each = .{ .once = &.{ |
| 114711 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116253 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114712 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116254 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114713 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116255 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114714 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 116256 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114715 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116257 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114716 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | | |
| 114717 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114718 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 114719 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116258 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114720 | } }, | 116259 | } }, |
| 114721 | }, .{ | 116260 | }, .{ |
| 114722 | .required_features = .{ .x87, null, null, null }, | 116261 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 114723 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 116262 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114724 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116263 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114725 | .patterns = &.{ | 116264 | .patterns = &.{ |
| 114726 | .{ .src = .{ .to_mem, .none, .none } }, | 116265 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114727 | }, | 116266 | }, |
| 114728 | .call_frame = .{ .alignment = .@"16" }, | 116267 | .call_frame = .{ .alignment = .@"16" }, |
| 114729 | .extra_temps = .{ | 116268 | .extra_temps = .{ |
| 114730 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114731 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 116270 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 114732 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 116271 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 114733 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, | 116272 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114734 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116273 | .unused, |
| 114735 | .unused, | 116274 | .unused, |
| 114736 | .unused, | 116275 | .unused, |
| 114737 | .unused, | 116276 | .unused, |
| ... | @@ -114743,27 +116282,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114743,27 +116282,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114743 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116282 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114744 | .each = .{ .once = &.{ | 116283 | .each = .{ .once = &.{ |
| 114745 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116284 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114746 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 116285 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114747 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 116286 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114748 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 116287 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114749 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116288 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114750 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, | 116289 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114751 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 114752 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 114753 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 114754 | } }, | 116290 | } }, |
| 114755 | }, .{ | 116291 | }, .{ |
| 114756 | .required_features = .{ .x87, null, null, null }, | 116292 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 114757 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 116293 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114758 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116294 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114759 | .patterns = &.{ | 116295 | .patterns = &.{ |
| 114760 | .{ .src = .{ .to_mem, .none, .none } }, | 116296 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114761 | }, | 116297 | }, |
| | 116298 | .call_frame = .{ .alignment = .@"16" }, |
| 114762 | .extra_temps = .{ | 116299 | .extra_temps = .{ |
| 114763 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116300 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114764 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116301 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 114765 | .unused, | 116302 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 114766 | .unused, | 116303 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114767 | .unused, | 116304 | .unused, |
| 114768 | .unused, | 116305 | .unused, |
| 114769 | .unused, | 116306 | .unused, |
| ... | @@ -114773,27 +116310,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114773,27 +116310,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114773 | .unused, | 116310 | .unused, |
| 114774 | }, | 116311 | }, |
| 114775 | .dst_temps = .{ .mem, .unused }, | 116312 | .dst_temps = .{ .mem, .unused }, |
| 114776 | .clobbers = .{ .eflags = true }, | 116313 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114777 | .each = .{ .once = &.{ | 116314 | .each = .{ .once = &.{ |
| 114778 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116315 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114779 | .{ .@"0:", .fi_, .ld, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116316 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114780 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116317 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114781 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 116318 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 116319 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114782 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116320 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114783 | } }, | 116321 | } }, |
| 114784 | }, .{ | 116322 | }, .{ |
| 114785 | .required_features = .{ .x87, null, null, null }, | 116323 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114786 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 116324 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114787 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116325 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114788 | .patterns = &.{ | 116326 | .patterns = &.{ |
| 114789 | .{ .src = .{ .to_mem, .none, .none } }, | 116327 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114790 | }, | 116328 | }, |
| 114791 | .call_frame = .{ .alignment = .@"16" }, | 116329 | .call_frame = .{ .alignment = .@"16" }, |
| 114792 | .extra_temps = .{ | 116330 | .extra_temps = .{ |
| 114793 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116331 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114794 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 116332 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 114795 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, | 116333 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 114796 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116334 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114797 | .unused, | 116335 | .unused, |
| 114798 | .unused, | 116336 | .unused, |
| 114799 | .unused, | 116337 | .unused, |
| ... | @@ -114806,26 +116344,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114806,26 +116344,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114806 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116344 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114807 | .each = .{ .once = &.{ | 116345 | .each = .{ .once = &.{ |
| 114808 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116346 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114809 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 116347 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114810 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116348 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114811 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116349 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114812 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116350 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114813 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 114814 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116351 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114815 | } }, | 116352 | } }, |
| 114816 | }, .{ | 116353 | }, .{ |
| 114817 | .required_features = .{ .x87, null, null, null }, | 116354 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 114818 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 116355 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114819 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116356 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114820 | .patterns = &.{ | 116357 | .patterns = &.{ |
| 114821 | .{ .src = .{ .to_mem, .none, .none } }, | 116358 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114822 | }, | 116359 | }, |
| 114823 | .call_frame = .{ .alignment = .@"16" }, | 116360 | .call_frame = .{ .alignment = .@"16" }, |
| 114824 | .extra_temps = .{ | 116361 | .extra_temps = .{ |
| 114825 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116362 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114826 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 116363 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 114827 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, | 116364 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 114828 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116365 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114829 | .unused, | 116366 | .unused, |
| 114830 | .unused, | 116367 | .unused, |
| 114831 | .unused, | 116368 | .unused, |
| ... | @@ -114838,25 +116375,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114838,25 +116375,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114838 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116375 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114839 | .each = .{ .once = &.{ | 116376 | .each = .{ .once = &.{ |
| 114840 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116377 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114841 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 116378 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114842 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116379 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114843 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116380 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114844 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116381 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114845 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | | |
| 114846 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116382 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114847 | } }, | 116383 | } }, |
| 114848 | }, .{ | 116384 | }, .{ |
| 114849 | .required_features = .{ .x87, null, null, null }, | 116385 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 114850 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 116386 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114851 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116387 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114852 | .patterns = &.{ | 116388 | .patterns = &.{ |
| 114853 | .{ .src = .{ .to_mem, .none, .none } }, | 116389 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114854 | }, | 116390 | }, |
| | 116391 | .call_frame = .{ .alignment = .@"16" }, |
| 114855 | .extra_temps = .{ | 116392 | .extra_temps = .{ |
| 114856 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116393 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114857 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116394 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 114858 | .unused, | 116395 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 114859 | .unused, | 116396 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114860 | .unused, | 116397 | .unused, |
| 114861 | .unused, | 116398 | .unused, |
| 114862 | .unused, | 116399 | .unused, |
| ... | @@ -114866,27 +116403,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114866,27 +116403,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114866 | .unused, | 116403 | .unused, |
| 114867 | }, | 116404 | }, |
| 114868 | .dst_temps = .{ .mem, .unused }, | 116405 | .dst_temps = .{ .mem, .unused }, |
| 114869 | .clobbers = .{ .eflags = true }, | 116406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114870 | .each = .{ .once = &.{ | 116407 | .each = .{ .once = &.{ |
| 114871 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116408 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114872 | .{ .@"0:", .fi_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116409 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114873 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116410 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114874 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 116411 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 116412 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114875 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116413 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114876 | } }, | 116414 | } }, |
| 114877 | }, .{ | 116415 | }, .{ |
| 114878 | .required_features = .{ .x87, null, null, null }, | 116416 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114879 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 116417 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114880 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116418 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114881 | .patterns = &.{ | 116419 | .patterns = &.{ |
| 114882 | .{ .src = .{ .to_mem, .none, .none } }, | 116420 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114883 | }, | 116421 | }, |
| 114884 | .call_frame = .{ .alignment = .@"16" }, | 116422 | .call_frame = .{ .alignment = .@"16" }, |
| 114885 | .extra_temps = .{ | 116423 | .extra_temps = .{ |
| 114886 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116424 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114887 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 116425 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 114888 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, | 116426 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 114889 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116427 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114890 | .unused, | 116428 | .unused, |
| 114891 | .unused, | 116429 | .unused, |
| 114892 | .unused, | 116430 | .unused, |
| ... | @@ -114899,27 +116437,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114899,27 +116437,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114899 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116437 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114900 | .each = .{ .once = &.{ | 116438 | .each = .{ .once = &.{ |
| 114901 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116439 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114902 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 116440 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114903 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116441 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114904 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116442 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114905 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116443 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114906 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | | |
| 114907 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116444 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114908 | } }, | 116445 | } }, |
| 114909 | }, .{ | 116446 | }, .{ |
| 114910 | .required_features = .{ .x87, null, null, null }, | 116447 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 114911 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 116448 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114912 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116449 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114913 | .patterns = &.{ | 116450 | .patterns = &.{ |
| 114914 | .{ .src = .{ .to_mem, .none, .none } }, | 116451 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114915 | }, | 116452 | }, |
| 114916 | .call_frame = .{ .alignment = .@"16" }, | 116453 | .call_frame = .{ .alignment = .@"16" }, |
| 114917 | .extra_temps = .{ | 116454 | .extra_temps = .{ |
| 114918 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116455 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114919 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 116456 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 114920 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, | 116457 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 114921 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116458 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 114922 | .unused, | 116459 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114923 | .unused, | 116460 | .unused, |
| 114924 | .unused, | 116461 | .unused, |
| 114925 | .unused, | 116462 | .unused, |
| ... | @@ -114931,26 +116468,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114931,26 +116468,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114931 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116468 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114932 | .each = .{ .once = &.{ | 116469 | .each = .{ .once = &.{ |
| 114933 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116470 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114934 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 116471 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114935 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116472 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 114936 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116473 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114937 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116474 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 114938 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 116475 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 114939 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116476 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114940 | } }, | 116477 | } }, |
| 114941 | }, .{ | 116478 | }, .{ |
| 114942 | .required_features = .{ .x87, null, null, null }, | 116479 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 114943 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 116480 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114944 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116481 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114945 | .patterns = &.{ | 116482 | .patterns = &.{ |
| 114946 | .{ .src = .{ .to_mem, .none, .none } }, | 116483 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114947 | }, | 116484 | }, |
| | 116485 | .call_frame = .{ .alignment = .@"16" }, |
| 114948 | .extra_temps = .{ | 116486 | .extra_temps = .{ |
| 114949 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116487 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114950 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116488 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 114951 | .unused, | 116489 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 114952 | .unused, | 116490 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 114953 | .unused, | 116491 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114954 | .unused, | 116492 | .unused, |
| 114955 | .unused, | 116493 | .unused, |
| 114956 | .unused, | 116494 | .unused, |
| ... | @@ -114959,28 +116497,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114959,28 +116497,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114959 | .unused, | 116497 | .unused, |
| 114960 | }, | 116498 | }, |
| 114961 | .dst_temps = .{ .mem, .unused }, | 116499 | .dst_temps = .{ .mem, .unused }, |
| 114962 | .clobbers = .{ .eflags = true }, | 116500 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114963 | .each = .{ .once = &.{ | 116501 | .each = .{ .once = &.{ |
| 114964 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116502 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114965 | .{ .@"0:", .fi_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116503 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114966 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116504 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 114967 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 116505 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| | 116506 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| | 116507 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 114968 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116508 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114969 | } }, | 116509 | } }, |
| 114970 | }, .{ | 116510 | }, .{ |
| 114971 | .required_features = .{ .@"64bit", .x87, null, null }, | 116511 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114972 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 116512 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114973 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116513 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114974 | .patterns = &.{ | 116514 | .patterns = &.{ |
| 114975 | .{ .src = .{ .to_mem, .none, .none } }, | 116515 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114976 | }, | 116516 | }, |
| 114977 | .call_frame = .{ .alignment = .@"16" }, | 116517 | .call_frame = .{ .alignment = .@"16" }, |
| 114978 | .extra_temps = .{ | 116518 | .extra_temps = .{ |
| 114979 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116519 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114980 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 116520 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 114981 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdixf" } } }, | 116521 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 114982 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116522 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 114983 | .unused, | 116523 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114984 | .unused, | 116524 | .unused, |
| 114985 | .unused, | 116525 | .unused, |
| 114986 | .unused, | 116526 | .unused, |
| ... | @@ -114993,16 +116533,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -114993,16 +116533,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114993 | .each = .{ .once = &.{ | 116533 | .each = .{ .once = &.{ |
| 114994 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116534 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114995 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 116535 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114996 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116536 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 114997 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116537 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114998 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116538 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 114999 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 116539 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115000 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116540 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115001 | } }, | 116541 | } }, |
| 115002 | }, .{ | 116542 | }, .{ |
| 115003 | .required_features = .{ .@"64bit", .x87, null, null }, | 116543 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 115004 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 116544 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115005 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116545 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115006 | .patterns = &.{ | 116546 | .patterns = &.{ |
| 115007 | .{ .src = .{ .to_mem, .none, .none } }, | 116547 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115008 | }, | 116548 | }, |
| ... | @@ -115010,9 +116550,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115010,9 +116550,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115010 | .extra_temps = .{ | 116550 | .extra_temps = .{ |
| 115011 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116551 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115012 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 116552 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115013 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundixf" } } }, | 116553 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 115014 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116554 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 115015 | .unused, | 116555 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115016 | .unused, | 116556 | .unused, |
| 115017 | .unused, | 116557 | .unused, |
| 115018 | .unused, | 116558 | .unused, |
| ... | @@ -115025,16 +116565,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115025,16 +116565,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115025 | .each = .{ .once = &.{ | 116565 | .each = .{ .once = &.{ |
| 115026 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 116566 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115027 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 116567 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115028 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 116568 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115029 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116569 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115030 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, | 116570 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115031 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 116571 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115032 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116572 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115033 | } }, | 116573 | } }, |
| 115034 | }, .{ | 116574 | }, .{ |
| 115035 | .required_features = .{ .@"64bit", .x87, null, null }, | 116575 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 115036 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 116576 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115037 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116577 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115038 | .patterns = &.{ | 116578 | .patterns = &.{ |
| 115039 | .{ .src = .{ .to_mem, .none, .none } }, | 116579 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115040 | }, | 116580 | }, |
| ... | @@ -115042,9 +116582,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115042,9 +116582,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115042 | .extra_temps = .{ | 116582 | .extra_temps = .{ |
| 115043 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116583 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115044 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 116584 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115045 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 116585 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 115046 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattixf" } } }, | 116586 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 115047 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116587 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115048 | .unused, | 116588 | .unused, |
| 115049 | .unused, | 116589 | .unused, |
| 115050 | .unused, | 116590 | .unused, |
| ... | @@ -115059,15 +116599,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115059,15 +116599,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115059 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 116599 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115060 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 116600 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115061 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 116601 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115062 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116602 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115063 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | | |
| 115064 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 116603 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115065 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116604 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115066 | } }, | 116605 | } }, |
| 115067 | }, .{ | 116606 | }, .{ |
| 115068 | .required_features = .{ .@"64bit", .x87, null, null }, | 116607 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115069 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 116608 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115070 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116609 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115071 | .patterns = &.{ | 116610 | .patterns = &.{ |
| 115072 | .{ .src = .{ .to_mem, .none, .none } }, | 116611 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115073 | }, | 116612 | }, |
| ... | @@ -115076,8 +116615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115076,8 +116615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115076 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116615 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115077 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 116616 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115078 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 116617 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 115079 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, | 116618 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 115080 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116619 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115081 | .unused, | 116620 | .unused, |
| 115082 | .unused, | 116621 | .unused, |
| 115083 | .unused, | 116622 | .unused, |
| ... | @@ -115092,15 +116631,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115092,15 +116631,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115092 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 116631 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115093 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 116632 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115094 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 116633 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115095 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116634 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115096 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, | | |
| 115097 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 116635 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115098 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116636 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115099 | } }, | 116637 | } }, |
| 115100 | }, .{ | 116638 | }, .{ |
| 115101 | .required_features = .{ .@"64bit", .x87, null, null }, | 116639 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 115102 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 116640 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115103 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116641 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115104 | .patterns = &.{ | 116642 | .patterns = &.{ |
| 115105 | .{ .src = .{ .to_mem, .none, .none } }, | 116643 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115106 | }, | 116644 | }, |
| ... | @@ -115110,8 +116648,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115110,8 +116648,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115110 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116648 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115111 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 116649 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115112 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 116650 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115113 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, | 116651 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 115114 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116652 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115115 | .unused, | 116653 | .unused, |
| 115116 | .unused, | 116654 | .unused, |
| 115117 | .unused, | 116655 | .unused, |
| ... | @@ -115126,16 +116664,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115126,16 +116664,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115126 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 116664 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115127 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 116665 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115128 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 116666 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115129 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116667 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115130 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, | | |
| 115131 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 116668 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115132 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | 116669 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 115133 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116670 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115134 | } }, | 116671 | } }, |
| 115135 | }, .{ | 116672 | }, .{ |
| 115136 | .required_features = .{ .@"64bit", .x87, null, null }, | 116673 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 115137 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 116674 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115138 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, | 116675 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115139 | .patterns = &.{ | 116676 | .patterns = &.{ |
| 115140 | .{ .src = .{ .to_mem, .none, .none } }, | 116677 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115141 | }, | 116678 | }, |
| ... | @@ -115145,8 +116682,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115145,8 +116682,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 116682 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115146 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 116683 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115147 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 116684 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115148 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, | 116685 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 115149 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, | 116686 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115150 | .unused, | 116687 | .unused, |
| 115151 | .unused, | 116688 | .unused, |
| 115152 | .unused, | 116689 | .unused, |
| ... | @@ -115161,134 +116698,185 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115161,134 +116698,185 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115161 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 116698 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115162 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 116699 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115163 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 116700 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115164 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, | 116701 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115165 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, | | |
| 115166 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 116702 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115167 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | 116703 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 115168 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 116704 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115169 | } }, | 116705 | } }, |
| 115170 | }, .{ | 116706 | }, .{ |
| 115171 | .required_features = .{ .sse, null, null, null }, | 116707 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115172 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, | 116708 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115173 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116709 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115174 | .patterns = &.{ | 116710 | .patterns = &.{ |
| 115175 | .{ .src = .{ .mem, .none, .none } }, | 116711 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115176 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 115177 | }, | 116712 | }, |
| 115178 | .call_frame = .{ .alignment = .@"16" }, | 116713 | .call_frame = .{ .alignment = .@"16" }, |
| 115179 | .extra_temps = .{ | 116714 | .extra_temps = .{ |
| 115180 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 116715 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115181 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 116716 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115182 | .unused, | 116717 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115183 | .unused, | 116718 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115184 | .unused, | 116719 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 115185 | .unused, | 116720 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115186 | .unused, | 116721 | .unused, |
| 115187 | .unused, | 116722 | .unused, |
| 115188 | .unused, | 116723 | .unused, |
| 115189 | .unused, | 116724 | .unused, |
| 115190 | .unused, | 116725 | .unused, |
| 115191 | }, | 116726 | }, |
| 115192 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116727 | .dst_temps = .{ .mem, .unused }, |
| 115193 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116728 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115194 | .each = .{ .once = &.{ | 116729 | .each = .{ .once = &.{ |
| 115195 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, | 116730 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115196 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | 116731 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 116732 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| | 116733 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| | 116734 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 116735 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 116736 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 116737 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| | 116738 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115197 | } }, | 116739 | } }, |
| 115198 | }, .{ | 116740 | }, .{ |
| 115199 | .required_features = .{ .sse, null, null, null }, | 116741 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 115200 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, | 116742 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115201 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116743 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115202 | .patterns = &.{ | 116744 | .patterns = &.{ |
| 115203 | .{ .src = .{ .mem, .none, .none } }, | 116745 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115204 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 115205 | }, | 116746 | }, |
| 115206 | .call_frame = .{ .alignment = .@"16" }, | 116747 | .call_frame = .{ .alignment = .@"16" }, |
| 115207 | .extra_temps = .{ | 116748 | .extra_temps = .{ |
| 115208 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 116749 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115209 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 116750 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115210 | .unused, | 116751 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115211 | .unused, | 116752 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115212 | .unused, | 116753 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 115213 | .unused, | 116754 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115214 | .unused, | 116755 | .unused, |
| 115215 | .unused, | 116756 | .unused, |
| 115216 | .unused, | 116757 | .unused, |
| 115217 | .unused, | 116758 | .unused, |
| 115218 | .unused, | 116759 | .unused, |
| 115219 | }, | 116760 | }, |
| 115220 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116761 | .dst_temps = .{ .mem, .unused }, |
| 115221 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116762 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115222 | .each = .{ .once = &.{ | 116763 | .each = .{ .once = &.{ |
| 115223 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, | 116764 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115224 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | 116765 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 116766 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| | 116767 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| | 116768 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 116769 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 116770 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 116771 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| | 116772 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115225 | } }, | 116773 | } }, |
| 115226 | }, .{ | 116774 | }, .{ |
| 115227 | .required_features = .{ .sse, null, null, null }, | 116775 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 115228 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, | 116776 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115229 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116777 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115230 | .patterns = &.{ | 116778 | .patterns = &.{ |
| 115231 | .{ .src = .{ .mem, .none, .none } }, | 116779 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115232 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 115233 | }, | 116780 | }, |
| 115234 | .call_frame = .{ .alignment = .@"16" }, | 116781 | .call_frame = .{ .alignment = .@"16" }, |
| 115235 | .extra_temps = .{ | 116782 | .extra_temps = .{ |
| 115236 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 116783 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115237 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 116784 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115238 | .unused, | 116785 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115239 | .unused, | 116786 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115240 | .unused, | 116787 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 115241 | .unused, | 116788 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115242 | .unused, | 116789 | .unused, |
| 115243 | .unused, | 116790 | .unused, |
| 115244 | .unused, | 116791 | .unused, |
| 115245 | .unused, | 116792 | .unused, |
| 115246 | .unused, | 116793 | .unused, |
| 115247 | }, | 116794 | }, |
| 115248 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116795 | .dst_temps = .{ .mem, .unused }, |
| 115249 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116796 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115250 | .each = .{ .once = &.{ | 116797 | .each = .{ .once = &.{ |
| 115251 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, | 116798 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115252 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | 116799 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 116800 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| | 116801 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| | 116802 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 116803 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 116804 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 116805 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| | 116806 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115253 | } }, | 116807 | } }, |
| 115254 | }, .{ | 116808 | }, .{ |
| 115255 | .required_features = .{ .sse, null, null, null }, | 116809 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115256 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, | 116810 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115257 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116811 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115258 | .patterns = &.{ | 116812 | .patterns = &.{ |
| 115259 | .{ .src = .{ .mem, .none, .none } }, | 116813 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115260 | .{ .src = .{ .to_gpr, .none, .none } }, | | |
| 115261 | }, | 116814 | }, |
| 115262 | .call_frame = .{ .alignment = .@"16" }, | 116815 | .call_frame = .{ .alignment = .@"16" }, |
| 115263 | .extra_temps = .{ | 116816 | .extra_temps = .{ |
| 115264 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 116817 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115265 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 116818 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115266 | .unused, | 116819 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115267 | .unused, | 116820 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115268 | .unused, | 116821 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 115269 | .unused, | 116822 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115270 | .unused, | 116823 | .unused, |
| 115271 | .unused, | 116824 | .unused, |
| 115272 | .unused, | 116825 | .unused, |
| 115273 | .unused, | 116826 | .unused, |
| 115274 | .unused, | 116827 | .unused, |
| 115275 | }, | 116828 | }, |
| 115276 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116829 | .dst_temps = .{ .mem, .unused }, |
| 115277 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | 116830 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115278 | .each = .{ .once = &.{ | 116831 | .each = .{ .once = &.{ |
| 115279 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, | 116832 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115280 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | 116833 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 116834 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| | 116835 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| | 116836 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| | 116837 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| | 116838 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| | 116839 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| | 116840 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 116841 | } }, |
| | 116842 | } }) catch |err| switch (err) { |
| | 116843 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| | 116844 | @tagName(air_tag), |
| | 116845 | ty_op.ty.toType().fmt(pt), |
| | 116846 | cg.typeOf(ty_op.operand).fmt(pt), |
| | 116847 | ops[0].tracking(cg), |
| | 116848 | }), |
| | 116849 | else => |e| return e, |
| | 116850 | }; |
| | 116851 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 116852 | }, |
| | 116853 | |
| | 116854 | .splat => |air_tag| if (use_old) try cg.airSplat(inst) else fallback: { |
| | 116855 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 116856 | if (cg.typeOf(ty_op.operand).toIntern() == .bool_type) break :fallback try cg.airSplat(inst); |
| | 116857 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 116858 | var res: [1]Temp = undefined; |
| | 116859 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| | 116860 | .required_features = .{ .avx2, null, null, null }, |
| | 116861 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 116862 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| | 116863 | .patterns = &.{ |
| | 116864 | .{ .src = .{ .mem, .none, .none } }, |
| | 116865 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 116866 | }, |
| | 116867 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 116868 | .each = .{ .once = &.{ |
| | 116869 | .{ ._, .vp_b, .broadcast, .dst0x, .src0b, ._, ._ }, |
| 115281 | } }, | 116870 | } }, |
| 115282 | }, .{ | 116871 | }, .{ |
| 115283 | .required_features = .{ .sse, null, null, null }, | 116872 | .required_features = .{ .avx, null, null, null }, |
| 115284 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, | 116873 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 115285 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116874 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115286 | .patterns = &.{ | 116875 | .patterns = &.{ |
| 115287 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, | 116876 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115288 | }, | 116877 | }, |
| 115289 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115290 | .extra_temps = .{ | 116878 | .extra_temps = .{ |
| 115291 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 116879 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 115292 | .unused, | 116880 | .unused, |
| 115293 | .unused, | 116881 | .unused, |
| 115294 | .unused, | 116882 | .unused, |
| ... | @@ -115300,21 +116888,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115300,21 +116888,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115300 | .unused, | 116888 | .unused, |
| 115301 | .unused, | 116889 | .unused, |
| 115302 | }, | 116890 | }, |
| 115303 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116891 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 115304 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115305 | .each = .{ .once = &.{ | 116892 | .each = .{ .once = &.{ |
| 115306 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 116893 | .{ ._, .vp_, .xor, .tmp0x, .tmp0x, .tmp0x, ._ }, |
| | 116894 | .{ ._, .vp_b, .shuf, .dst0x, .src0x, .tmp0x, ._ }, |
| 115307 | } }, | 116895 | } }, |
| 115308 | }, .{ | 116896 | }, .{ |
| 115309 | .required_features = .{ .sse, null, null, null }, | 116897 | .required_features = .{ .ssse3, null, null, null }, |
| 115310 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, | 116898 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 115311 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116899 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115312 | .patterns = &.{ | 116900 | .patterns = &.{ |
| 115313 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, | 116901 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115314 | }, | 116902 | }, |
| 115315 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115316 | .extra_temps = .{ | 116903 | .extra_temps = .{ |
| 115317 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 116904 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 115318 | .unused, | 116905 | .unused, |
| 115319 | .unused, | 116906 | .unused, |
| 115320 | .unused, | 116907 | .unused, |
| ... | @@ -115326,22 +116913,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115326,22 +116913,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115326 | .unused, | 116913 | .unused, |
| 115327 | .unused, | 116914 | .unused, |
| 115328 | }, | 116915 | }, |
| 115329 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116916 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 115330 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115331 | .each = .{ .once = &.{ | 116917 | .each = .{ .once = &.{ |
| 115332 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 116918 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 116919 | .{ ._, .p_b, .shuf, .dst0x, .tmp0x, ._, ._ }, |
| 115333 | } }, | 116920 | } }, |
| 115334 | }, .{ | 116921 | }, .{ |
| 115335 | .required_features = .{ .@"64bit", .sse, null, null }, | 116922 | .required_features = .{ .sse2, null, null, null }, |
| 115336 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, | 116923 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 115337 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116924 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115338 | .patterns = &.{ | 116925 | .patterns = &.{ |
| 115339 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, | 116926 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 116927 | }, |
| | 116928 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 116929 | .each = .{ .once = &.{ |
| | 116930 | .{ ._, .p_, .unpcklbw, .src0x, .src0x, ._, ._ }, |
| | 116931 | .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 116932 | .{ ._, .p_d, .shuf, .dst0x, .dst0x, .ui(0b00_00_00_00), ._ }, |
| | 116933 | } }, |
| | 116934 | }, .{ |
| | 116935 | .required_features = .{ .avx2, null, null, null }, |
| | 116936 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .byte } }, .any }, |
| | 116937 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| | 116938 | .patterns = &.{ |
| | 116939 | .{ .src = .{ .mem, .none, .none } }, |
| | 116940 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 116941 | }, |
| | 116942 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 116943 | .each = .{ .once = &.{ |
| | 116944 | .{ ._, .vp_b, .broadcast, .dst0y, .src0b, ._, ._ }, |
| | 116945 | } }, |
| | 116946 | }, .{ |
| | 116947 | .required_features = .{ .avx2, null, null, null }, |
| | 116948 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .byte } }, .any }, |
| | 116949 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| | 116950 | .patterns = &.{ |
| | 116951 | .{ .src = .{ .mem, .none, .none } }, |
| | 116952 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115340 | }, | 116953 | }, |
| 115341 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115342 | .extra_temps = .{ | 116954 | .extra_temps = .{ |
| 115343 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, | 116955 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115344 | .unused, | 116956 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115345 | .unused, | 116957 | .unused, |
| 115346 | .unused, | 116958 | .unused, |
| 115347 | .unused, | 116959 | .unused, |
| ... | @@ -115352,23 +116964,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115352,23 +116964,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115352 | .unused, | 116964 | .unused, |
| 115353 | .unused, | 116965 | .unused, |
| 115354 | }, | 116966 | }, |
| 115355 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116967 | .dst_temps = .{ .mem, .unused }, |
| 115356 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115357 | .each = .{ .once = &.{ | 116968 | .each = .{ .once = &.{ |
| 115358 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 116969 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| | 116970 | .{ ._, .vp_b, .broadcast, .tmp1y, .src0b, ._, ._ }, |
| | 116971 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| | 116972 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| | 116973 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115359 | } }, | 116974 | } }, |
| 115360 | }, .{ | 116975 | }, .{ |
| 115361 | .required_features = .{ .@"64bit", .sse, null, null }, | 116976 | .required_features = .{ .avx, null, null, null }, |
| 115362 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, | 116977 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 115363 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 116978 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115364 | .patterns = &.{ | 116979 | .patterns = &.{ |
| 115365 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, | 116980 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115366 | }, | 116981 | }, |
| 115367 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115368 | .extra_temps = .{ | 116982 | .extra_temps = .{ |
| 115369 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, | 116983 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 115370 | .unused, | 116984 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115371 | .unused, | 116985 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115372 | .unused, | 116986 | .unused, |
| 115373 | .unused, | 116987 | .unused, |
| 115374 | .unused, | 116988 | .unused, |
| ... | @@ -115378,22 +116992,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115378,22 +116992,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115378 | .unused, | 116992 | .unused, |
| 115379 | .unused, | 116993 | .unused, |
| 115380 | }, | 116994 | }, |
| 115381 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 116995 | .dst_temps = .{ .mem, .unused }, |
| 115382 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115383 | .each = .{ .once = &.{ | 116996 | .each = .{ .once = &.{ |
| 115384 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 116997 | .{ ._, .vp_, .xor, .tmp0x, .tmp0x, .tmp0x, ._ }, |
| | 116998 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| | 116999 | .{ ._, .vp_b, .shuf, .tmp2x, .src0x, .tmp0x, ._ }, |
| | 117000 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp1), .tmp2x, ._, ._ }, |
| | 117001 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| | 117002 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115385 | } }, | 117003 | } }, |
| 115386 | }, .{ | 117004 | }, .{ |
| 115387 | .required_features = .{ .@"64bit", .sse, null, null }, | 117005 | .required_features = .{ .ssse3, null, null, null }, |
| 115388 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, | 117006 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 115389 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 117007 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115390 | .patterns = &.{ | 117008 | .patterns = &.{ |
| 115391 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 117009 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115392 | }, | 117010 | }, |
| 115393 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115394 | .extra_temps = .{ | 117011 | .extra_temps = .{ |
| 115395 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, | 117012 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 115396 | .unused, | 117013 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115397 | .unused, | 117014 | .unused, |
| 115398 | .unused, | 117015 | .unused, |
| 115399 | .unused, | 117016 | .unused, |
| ... | @@ -115404,21 +117021,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115404,21 +117021,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115404 | .unused, | 117021 | .unused, |
| 115405 | .unused, | 117022 | .unused, |
| 115406 | }, | 117023 | }, |
| 115407 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 117024 | .dst_temps = .{ .mem, .unused }, |
| 115408 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115409 | .each = .{ .once = &.{ | 117025 | .each = .{ .once = &.{ |
| 115410 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 117026 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| | 117027 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| | 117028 | .{ ._, .p_b, .shuf, .src0x, .tmp0x, ._, ._ }, |
| | 117029 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp1), .src0x, ._, ._ }, |
| | 117030 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| | 117031 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115411 | } }, | 117032 | } }, |
| 115412 | }, .{ | 117033 | }, .{ |
| 115413 | .required_features = .{ .@"64bit", .sse, null, null }, | 117034 | .required_features = .{ .sse2, null, null, null }, |
| 115414 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, | 117035 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 115415 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 117036 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115416 | .patterns = &.{ | 117037 | .patterns = &.{ |
| 115417 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, | 117038 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115418 | }, | 117039 | }, |
| 115419 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115420 | .extra_temps = .{ | 117040 | .extra_temps = .{ |
| 115421 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, | 117041 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115422 | .unused, | 117042 | .unused, |
| 115423 | .unused, | 117043 | .unused, |
| 115424 | .unused, | 117044 | .unused, |
| ... | @@ -115430,23 +117050,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115430,23 +117050,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115430 | .unused, | 117050 | .unused, |
| 115431 | .unused, | 117051 | .unused, |
| 115432 | }, | 117052 | }, |
| 115433 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 117053 | .dst_temps = .{ .mem, .unused }, |
| 115434 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115435 | .each = .{ .once = &.{ | 117054 | .each = .{ .once = &.{ |
| 115436 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 117055 | .{ ._, .p_, .unpcklbw, .src0x, .src0x, ._, ._ }, |
| | 117056 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| | 117057 | .{ ._, .p_w, .shufl, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117058 | .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117059 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| | 117060 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| | 117061 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115437 | } }, | 117062 | } }, |
| 115438 | }, .{ | 117063 | }, .{ |
| 115439 | .required_features = .{ .@"64bit", .sse, null, null }, | 117064 | .required_features = .{ .slow_incdec, null, null, null }, |
| 115440 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 117065 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 115441 | .dst_constraints = .{ .{ .float = .xword }, .any }, | 117066 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115442 | .patterns = &.{ | 117067 | .patterns = &.{ |
| 115443 | .{ .src = .{ .to_mem, .none, .none } }, | 117068 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115444 | }, | 117069 | }, |
| 115445 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115446 | .extra_temps = .{ | 117070 | .extra_temps = .{ |
| 115447 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 117071 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115448 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 117072 | .unused, |
| 115449 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, | 117073 | .unused, |
| 115450 | .unused, | 117074 | .unused, |
| 115451 | .unused, | 117075 | .unused, |
| 115452 | .unused, | 117076 | .unused, |
| ... | @@ -115456,25 +117080,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115456,25 +117080,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115456 | .unused, | 117080 | .unused, |
| 115457 | .unused, | 117081 | .unused, |
| 115458 | }, | 117082 | }, |
| 115459 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 117083 | .dst_temps = .{ .mem, .unused }, |
| 115460 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115461 | .each = .{ .once = &.{ | 117084 | .each = .{ .once = &.{ |
| 115462 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 117085 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ }, |
| 115463 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 117086 | .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ }, |
| 115464 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117087 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 117088 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115465 | } }, | 117089 | } }, |
| 115466 | }, .{ | 117090 | }, .{ |
| 115467 | .required_features = .{ .@"64bit", .sse, null, null }, | 117091 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 115468 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 117092 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115469 | .dst_constraints = .{ .{ .float = .xword }, .any }, | | |
| 115470 | .patterns = &.{ | 117093 | .patterns = &.{ |
| 115471 | .{ .src = .{ .to_mem, .none, .none } }, | 117094 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115472 | }, | 117095 | }, |
| 115473 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115474 | .extra_temps = .{ | 117096 | .extra_temps = .{ |
| 115475 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 117097 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115476 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 117098 | .unused, |
| 115477 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, | 117099 | .unused, |
| 115478 | .unused, | 117100 | .unused, |
| 115479 | .unused, | 117101 | .unused, |
| 115480 | .unused, | 117102 | .unused, |
| ... | @@ -115484,60 +117106,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115484,60 +117106,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115484 | .unused, | 117106 | .unused, |
| 115485 | .unused, | 117107 | .unused, |
| 115486 | }, | 117108 | }, |
| 115487 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, | 117109 | .dst_temps = .{ .mem, .unused }, |
| 115488 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115489 | .each = .{ .once = &.{ | 117110 | .each = .{ .once = &.{ |
| 115490 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 117111 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ }, |
| 115491 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, | 117112 | .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ }, |
| 115492 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117113 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 117114 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 115493 | } }, | 117115 | } }, |
| 115494 | }, .{ | 117116 | }, .{ |
| 115495 | .required_features = .{ .avx, .slow_incdec, null, null }, | 117117 | .required_features = .{ .avx2, null, null, null }, |
| 115496 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117118 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 115497 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117119 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115498 | .patterns = &.{ | 117120 | .patterns = &.{ |
| 115499 | .{ .src = .{ .to_mem, .none, .none } }, | 117121 | .{ .src = .{ .mem, .none, .none } }, |
| 115500 | }, | 117122 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115501 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115502 | .extra_temps = .{ | | |
| 115503 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 115504 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | | |
| 115505 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | | |
| 115506 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | | |
| 115507 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | | |
| 115508 | .unused, | | |
| 115509 | .unused, | | |
| 115510 | .unused, | | |
| 115511 | .unused, | | |
| 115512 | .unused, | | |
| 115513 | .unused, | | |
| 115514 | }, | 117123 | }, |
| 115515 | .dst_temps = .{ .mem, .unused }, | 117124 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 115516 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115517 | .each = .{ .once = &.{ | 117125 | .each = .{ .once = &.{ |
| 115518 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117126 | .{ ._, .vp_w, .broadcast, .dst0x, .src0w, ._, ._ }, |
| 115519 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | | |
| 115520 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 115521 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 115522 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | | |
| 115523 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115524 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 115525 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115526 | } }, | 117127 | } }, |
| 115527 | }, .{ | 117128 | }, .{ |
| 115528 | .required_features = .{ .avx, null, null, null }, | 117129 | .required_features = .{ .avx, null, null, null }, |
| 115529 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117130 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 115530 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117131 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115531 | .patterns = &.{ | 117132 | .patterns = &.{ |
| 115532 | .{ .src = .{ .to_mem, .none, .none } }, | 117133 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115533 | }, | 117134 | }, |
| 115534 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115535 | .extra_temps = .{ | 117135 | .extra_temps = .{ |
| 115536 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 115537 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117136 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115538 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117137 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 115539 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117138 | .unused, |
| 115540 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117139 | .unused, |
| | 117140 | .unused, |
| 115541 | .unused, | 117141 | .unused, |
| 115542 | .unused, | 117142 | .unused, |
| 115543 | .unused, | 117143 | .unused, |
| ... | @@ -115545,32 +117145,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115545,32 +117145,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115545 | .unused, | 117145 | .unused, |
| 115546 | .unused, | 117146 | .unused, |
| 115547 | }, | 117147 | }, |
| 115548 | .dst_temps = .{ .mem, .unused }, | 117148 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 115549 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115550 | .each = .{ .once = &.{ | 117149 | .each = .{ .once = &.{ |
| 115551 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117150 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 115552 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117151 | .{ ._, .vp_b, .shuf, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 115553 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 115554 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 115555 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | | |
| 115556 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115557 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 115558 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 115559 | } }, | 117152 | } }, |
| 115560 | }, .{ | 117153 | }, .{ |
| 115561 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 117154 | .required_features = .{ .ssse3, null, null, null }, |
| 115562 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117155 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 115563 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117156 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115564 | .patterns = &.{ | 117157 | .patterns = &.{ |
| 115565 | .{ .src = .{ .to_mem, .none, .none } }, | 117158 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115566 | }, | 117159 | }, |
| 115567 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115568 | .extra_temps = .{ | 117160 | .extra_temps = .{ |
| 115569 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 115570 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117161 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115571 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117162 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 115572 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117163 | .unused, |
| 115573 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117164 | .unused, |
| | 117165 | .unused, |
| 115574 | .unused, | 117166 | .unused, |
| 115575 | .unused, | 117167 | .unused, |
| 115576 | .unused, | 117168 | .unused, |
| ... | @@ -115578,32 +117170,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115578,32 +117170,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115578 | .unused, | 117170 | .unused, |
| 115579 | .unused, | 117171 | .unused, |
| 115580 | }, | 117172 | }, |
| 115581 | .dst_temps = .{ .mem, .unused }, | 117173 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 115582 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115583 | .each = .{ .once = &.{ | 117174 | .each = .{ .once = &.{ |
| 115584 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117175 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 115585 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117176 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 115586 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | | |
| 115587 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | | |
| 115588 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | | |
| 115589 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115590 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 115591 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115592 | } }, | 117177 | } }, |
| 115593 | }, .{ | 117178 | }, .{ |
| 115594 | .required_features = .{ .sse2, null, null, null }, | 117179 | .required_features = .{ .sse2, null, null, null }, |
| 115595 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117180 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 115596 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117181 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115597 | .patterns = &.{ | 117182 | .patterns = &.{ |
| 115598 | .{ .src = .{ .to_mem, .none, .none } }, | 117183 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117184 | }, |
| | 117185 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117186 | .each = .{ .once = &.{ |
| | 117187 | .{ ._, .p_w, .shufl, .dst0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117188 | .{ ._, .p_d, .shuf, .dst0x, .dst0x, .ui(0b00_00_00_00), ._ }, |
| | 117189 | } }, |
| | 117190 | }, .{ |
| | 117191 | .required_features = .{ .avx2, null, null, null }, |
| | 117192 | .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .word } }, .any }, |
| | 117193 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| | 117194 | .patterns = &.{ |
| | 117195 | .{ .src = .{ .mem, .none, .none } }, |
| | 117196 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117197 | }, |
| | 117198 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117199 | .each = .{ .once = &.{ |
| | 117200 | .{ ._, .vp_w, .broadcast, .dst0y, .src0w, ._, ._ }, |
| | 117201 | } }, |
| | 117202 | }, .{ |
| | 117203 | .required_features = .{ .avx2, null, null, null }, |
| | 117204 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .word } }, .any }, |
| | 117205 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| | 117206 | .patterns = &.{ |
| | 117207 | .{ .src = .{ .mem, .none, .none } }, |
| | 117208 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115599 | }, | 117209 | }, |
| 115600 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115601 | .extra_temps = .{ | 117210 | .extra_temps = .{ |
| 115602 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117211 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115603 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117212 | .{ .type = .vector_16_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115604 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117213 | .unused, |
| 115605 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117214 | .unused, |
| 115606 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117215 | .unused, |
| 115607 | .unused, | 117216 | .unused, |
| 115608 | .unused, | 117217 | .unused, |
| 115609 | .unused, | 117218 | .unused, |
| ... | @@ -115612,31 +117221,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115612,31 +117221,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115612 | .unused, | 117221 | .unused, |
| 115613 | }, | 117222 | }, |
| 115614 | .dst_temps = .{ .mem, .unused }, | 117223 | .dst_temps = .{ .mem, .unused }, |
| 115615 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115616 | .each = .{ .once = &.{ | 117224 | .each = .{ .once = &.{ |
| 115617 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117225 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 115618 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117226 | .{ ._, .vp_w, .broadcast, .tmp1y, .src0w, ._, ._ }, |
| 115619 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117227 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 115620 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117228 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 115621 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117229 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115622 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115623 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 115624 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 115625 | } }, | 117230 | } }, |
| 115626 | }, .{ | 117231 | }, .{ |
| 115627 | .required_features = .{ .sse, .slow_incdec, null, null }, | 117232 | .required_features = .{ .avx, null, null, null }, |
| 115628 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117233 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 115629 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117234 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115630 | .patterns = &.{ | 117235 | .patterns = &.{ |
| 115631 | .{ .src = .{ .to_mem, .none, .none } }, | 117236 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115632 | }, | 117237 | }, |
| 115633 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115634 | .extra_temps = .{ | 117238 | .extra_temps = .{ |
| 115635 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117239 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115636 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117240 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 115637 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117241 | .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115638 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117242 | .unused, |
| 115639 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117243 | .unused, |
| 115640 | .unused, | 117244 | .unused, |
| 115641 | .unused, | 117245 | .unused, |
| 115642 | .unused, | 117246 | .unused, |
| ... | @@ -115645,31 +117249,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115645,31 +117249,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115645 | .unused, | 117249 | .unused, |
| 115646 | }, | 117250 | }, |
| 115647 | .dst_temps = .{ .mem, .unused }, | 117251 | .dst_temps = .{ .mem, .unused }, |
| 115648 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115649 | .each = .{ .once = &.{ | 117252 | .each = .{ .once = &.{ |
| 115650 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117253 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 115651 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117254 | .{ ._, .vp_b, .shuf, .tmp2x, .src0x, .lea(.tmp0x), ._ }, |
| 115652 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117255 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115653 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117256 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp2x, ._, ._ }, |
| 115654 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117257 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115655 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | 117258 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115656 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 115657 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115658 | } }, | 117259 | } }, |
| 115659 | }, .{ | 117260 | }, .{ |
| 115660 | .required_features = .{ .sse, null, null, null }, | 117261 | .required_features = .{ .ssse3, null, null, null }, |
| 115661 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117262 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 115662 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117263 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115663 | .patterns = &.{ | 117264 | .patterns = &.{ |
| 115664 | .{ .src = .{ .to_mem, .none, .none } }, | 117265 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115665 | }, | 117266 | }, |
| 115666 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115667 | .extra_temps = .{ | 117267 | .extra_temps = .{ |
| 115668 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117268 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115669 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117269 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 115670 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117270 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 115671 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117271 | .unused, |
| 115672 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117272 | .unused, |
| 115673 | .unused, | 117273 | .unused, |
| 115674 | .unused, | 117274 | .unused, |
| 115675 | .unused, | 117275 | .unused, |
| ... | @@ -115678,31 +117278,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115678,31 +117278,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115678 | .unused, | 117278 | .unused, |
| 115679 | }, | 117279 | }, |
| 115680 | .dst_temps = .{ .mem, .unused }, | 117280 | .dst_temps = .{ .mem, .unused }, |
| 115681 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115682 | .each = .{ .once = &.{ | 117281 | .each = .{ .once = &.{ |
| 115683 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117282 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 115684 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117283 | .{ ._, .p_b, .shuf, .src0x, .lea(.tmp0x), ._, ._ }, |
| 115685 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117284 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115686 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117285 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 115687 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117286 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115688 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | 117287 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115689 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 115690 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 115691 | } }, | 117288 | } }, |
| 115692 | }, .{ | 117289 | }, .{ |
| 115693 | .required_features = .{ .avx, .slow_incdec, null, null }, | 117290 | .required_features = .{ .sse2, null, null, null }, |
| 115694 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117291 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 115695 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117292 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115696 | .patterns = &.{ | 117293 | .patterns = &.{ |
| 115697 | .{ .src = .{ .to_mem, .none, .none } }, | 117294 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115698 | }, | 117295 | }, |
| 115699 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115700 | .extra_temps = .{ | 117296 | .extra_temps = .{ |
| 115701 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117297 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115702 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117298 | .unused, |
| 115703 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117299 | .unused, |
| 115704 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117300 | .unused, |
| 115705 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117301 | .unused, |
| 115706 | .unused, | 117302 | .unused, |
| 115707 | .unused, | 117303 | .unused, |
| 115708 | .unused, | 117304 | .unused, |
| ... | @@ -115711,31 +117307,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115711,31 +117307,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115711 | .unused, | 117307 | .unused, |
| 115712 | }, | 117308 | }, |
| 115713 | .dst_temps = .{ .mem, .unused }, | 117309 | .dst_temps = .{ .mem, .unused }, |
| 115714 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115715 | .each = .{ .once = &.{ | 117310 | .each = .{ .once = &.{ |
| 115716 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117311 | .{ ._, .p_w, .shufl, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 115717 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117312 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115718 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117313 | .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 115719 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117314 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 115720 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117315 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115721 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | 117316 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115722 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 115723 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115724 | } }, | 117317 | } }, |
| 115725 | }, .{ | 117318 | }, .{ |
| 115726 | .required_features = .{ .avx, null, null, null }, | 117319 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .word, .is = .word } }, .any }, |
| 115727 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117320 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115728 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 115729 | .patterns = &.{ | 117321 | .patterns = &.{ |
| 115730 | .{ .src = .{ .to_mem, .none, .none } }, | 117322 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115731 | }, | 117323 | }, |
| 115732 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115733 | .extra_temps = .{ | 117324 | .extra_temps = .{ |
| 115734 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117325 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115735 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117326 | .unused, |
| 115736 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117327 | .unused, |
| 115737 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117328 | .unused, |
| 115738 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117329 | .unused, |
| 115739 | .unused, | 117330 | .unused, |
| 115740 | .unused, | 117331 | .unused, |
| 115741 | .unused, | 117332 | .unused, |
| ... | @@ -115744,31 +117335,151 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115744,31 +117335,151 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115744 | .unused, | 117335 | .unused, |
| 115745 | }, | 117336 | }, |
| 115746 | .dst_temps = .{ .mem, .unused }, | 117337 | .dst_temps = .{ .mem, .unused }, |
| 115747 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115748 | .each = .{ .once = &.{ | 117338 | .each = .{ .once = &.{ |
| 115749 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117339 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_size), ._, ._ }, |
| 115750 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117340 | .{ .@"0:", ._, .mov, .memi(.dst0w, .tmp0), .src0w, ._, ._ }, |
| 115751 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117341 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 115752 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117342 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115753 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | | |
| 115754 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115755 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 115756 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 115757 | } }, | 117343 | } }, |
| 115758 | }, .{ | 117344 | }, .{ |
| 115759 | .required_features = .{ .sse2, .slow_incdec, null, null }, | 117345 | .required_features = .{ .avx2, null, null, null }, |
| 115760 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117346 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 115761 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117347 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| 115762 | .patterns = &.{ | 117348 | .patterns = &.{ |
| 115763 | .{ .src = .{ .to_mem, .none, .none } }, | 117349 | .{ .src = .{ .mem, .none, .none } }, |
| | 117350 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117351 | }, |
| | 117352 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117353 | .each = .{ .once = &.{ |
| | 117354 | .{ ._, .vp_d, .broadcast, .dst0x, .src0d, ._, ._ }, |
| | 117355 | } }, |
| | 117356 | }, .{ |
| | 117357 | .required_features = .{ .avx2, null, null, null }, |
| | 117358 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117359 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| | 117360 | .patterns = &.{ |
| | 117361 | .{ .src = .{ .mem, .none, .none } }, |
| | 117362 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117363 | }, |
| | 117364 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117365 | .each = .{ .once = &.{ |
| | 117366 | .{ ._, .v_ss, .broadcast, .dst0x, .src0d, ._, ._ }, |
| | 117367 | } }, |
| | 117368 | }, .{ |
| | 117369 | .required_features = .{ .avx, null, null, null }, |
| | 117370 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117371 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| | 117372 | .patterns = &.{ |
| | 117373 | .{ .src = .{ .mem, .none, .none } }, |
| | 117374 | }, |
| | 117375 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117376 | .each = .{ .once = &.{ |
| | 117377 | .{ ._, .v_ss, .broadcast, .dst0x, .src0d, ._, ._ }, |
| | 117378 | } }, |
| | 117379 | }, .{ |
| | 117380 | .required_features = .{ .avx, null, null, null }, |
| | 117381 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117382 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| | 117383 | .patterns = &.{ |
| | 117384 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117385 | }, |
| | 117386 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117387 | .each = .{ .once = &.{ |
| | 117388 | .{ ._, .vp_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117389 | } }, |
| | 117390 | }, .{ |
| | 117391 | .required_features = .{ .avx, null, null, null }, |
| | 117392 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117393 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| | 117394 | .patterns = &.{ |
| | 117395 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117396 | }, |
| | 117397 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117398 | .each = .{ .once = &.{ |
| | 117399 | .{ ._, .v_ps, .shuf, .dst0x, .src0x, .src0x, .ui(0b00_00_00_00) }, |
| | 117400 | } }, |
| | 117401 | }, .{ |
| | 117402 | .required_features = .{ .sse2, null, null, null }, |
| | 117403 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117404 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| | 117405 | .patterns = &.{ |
| | 117406 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117407 | }, |
| | 117408 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117409 | .each = .{ .once = &.{ |
| | 117410 | .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117411 | } }, |
| | 117412 | }, .{ |
| | 117413 | .required_features = .{ .sse, null, null, null }, |
| | 117414 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117415 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| | 117416 | .patterns = &.{ |
| | 117417 | .{ .src = .{ .mut_sse, .none, .none } }, |
| | 117418 | }, |
| | 117419 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 117420 | .each = .{ .once = &.{ |
| | 117421 | .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117422 | } }, |
| | 117423 | }, .{ |
| | 117424 | .required_features = .{ .sse2, null, null, null }, |
| | 117425 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117426 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| | 117427 | .patterns = &.{ |
| | 117428 | .{ .src = .{ .sse, .none, .none } }, |
| | 117429 | }, |
| | 117430 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 117431 | .each = .{ .once = &.{ |
| | 117432 | .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117433 | } }, |
| | 117434 | }, .{ |
| | 117435 | .required_features = .{ .sse, null, null, null }, |
| | 117436 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .dword } }, .any }, |
| | 117437 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| | 117438 | .patterns = &.{ |
| | 117439 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 117440 | }, |
| | 117441 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 117442 | .each = .{ .once = &.{ |
| | 117443 | .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| | 117444 | } }, |
| | 117445 | }, .{ |
| | 117446 | .required_features = .{ .avx2, null, null, null }, |
| | 117447 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 117448 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| | 117449 | .patterns = &.{ |
| | 117450 | .{ .src = .{ .mem, .none, .none } }, |
| | 117451 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117452 | }, |
| | 117453 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117454 | .each = .{ .once = &.{ |
| | 117455 | .{ ._, .vp_d, .broadcast, .dst0y, .src0d, ._, ._ }, |
| | 117456 | } }, |
| | 117457 | }, .{ |
| | 117458 | .required_features = .{ .avx2, null, null, null }, |
| | 117459 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| | 117460 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| | 117461 | .patterns = &.{ |
| | 117462 | .{ .src = .{ .mem, .none, .none } }, |
| | 117463 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117464 | }, |
| | 117465 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117466 | .each = .{ .once = &.{ |
| | 117467 | .{ ._, .v_ss, .broadcast, .dst0y, .src0d, ._, ._ }, |
| | 117468 | } }, |
| | 117469 | }, .{ |
| | 117470 | .required_features = .{ .avx2, null, null, null }, |
| | 117471 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 117472 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| | 117473 | .patterns = &.{ |
| | 117474 | .{ .src = .{ .mem, .none, .none } }, |
| | 117475 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115764 | }, | 117476 | }, |
| 115765 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115766 | .extra_temps = .{ | 117477 | .extra_temps = .{ |
| 115767 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117478 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115768 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117479 | .{ .type = .vector_8_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115769 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117480 | .unused, |
| 115770 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117481 | .unused, |
| 115771 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117482 | .unused, |
| 115772 | .unused, | 117483 | .unused, |
| 115773 | .unused, | 117484 | .unused, |
| 115774 | .unused, | 117485 | .unused, |
| ... | @@ -115777,31 +117488,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115777,31 +117488,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115777 | .unused, | 117488 | .unused, |
| 115778 | }, | 117489 | }, |
| 115779 | .dst_temps = .{ .mem, .unused }, | 117490 | .dst_temps = .{ .mem, .unused }, |
| 115780 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115781 | .each = .{ .once = &.{ | 117491 | .each = .{ .once = &.{ |
| 115782 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117492 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 115783 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117493 | .{ ._, .vp_d, .broadcast, .tmp1y, .src0d, ._, ._ }, |
| 115784 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117494 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 115785 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117495 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 115786 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117496 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115787 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115788 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 115789 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115790 | } }, | 117497 | } }, |
| 115791 | }, .{ | 117498 | }, .{ |
| 115792 | .required_features = .{ .sse2, null, null, null }, | 117499 | .required_features = .{ .avx2, null, null, null }, |
| 115793 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117500 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 115794 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117501 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115795 | .patterns = &.{ | 117502 | .patterns = &.{ |
| 115796 | .{ .src = .{ .to_mem, .none, .none } }, | 117503 | .{ .src = .{ .mem, .none, .none } }, |
| | 117504 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115797 | }, | 117505 | }, |
| 115798 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115799 | .extra_temps = .{ | 117506 | .extra_temps = .{ |
| 115800 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117507 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115801 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117508 | .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115802 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117509 | .unused, |
| 115803 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117510 | .unused, |
| 115804 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117511 | .unused, |
| 115805 | .unused, | 117512 | .unused, |
| 115806 | .unused, | 117513 | .unused, |
| 115807 | .unused, | 117514 | .unused, |
| ... | @@ -115810,31 +117517,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115810,31 +117517,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115810 | .unused, | 117517 | .unused, |
| 115811 | }, | 117518 | }, |
| 115812 | .dst_temps = .{ .mem, .unused }, | 117519 | .dst_temps = .{ .mem, .unused }, |
| 115813 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115814 | .each = .{ .once = &.{ | 117520 | .each = .{ .once = &.{ |
| 115815 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117521 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 115816 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117522 | .{ ._, .v_ss, .broadcast, .tmp1y, .src0d, ._, ._ }, |
| 115817 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117523 | .{ .@"0:", .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 115818 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117524 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 115819 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117525 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115820 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115821 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 115822 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 115823 | } }, | 117526 | } }, |
| 115824 | }, .{ | 117527 | }, .{ |
| 115825 | .required_features = .{ .sse, .slow_incdec, null, null }, | 117528 | .required_features = .{ .avx, null, null, null }, |
| 115826 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117529 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any }, |
| 115827 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117530 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| 115828 | .patterns = &.{ | 117531 | .patterns = &.{ |
| 115829 | .{ .src = .{ .to_mem, .none, .none } }, | 117532 | .{ .src = .{ .mem, .none, .none } }, |
| 115830 | }, | 117533 | }, |
| 115831 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115832 | .extra_temps = .{ | 117534 | .extra_temps = .{ |
| 115833 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117535 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115834 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117536 | .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115835 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117537 | .unused, |
| 115836 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117538 | .unused, |
| 115837 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117539 | .unused, |
| 115838 | .unused, | 117540 | .unused, |
| 115839 | .unused, | 117541 | .unused, |
| 115840 | .unused, | 117542 | .unused, |
| ... | @@ -115843,31 +117545,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115843,31 +117545,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115843 | .unused, | 117545 | .unused, |
| 115844 | }, | 117546 | }, |
| 115845 | .dst_temps = .{ .mem, .unused }, | 117547 | .dst_temps = .{ .mem, .unused }, |
| 115846 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115847 | .each = .{ .once = &.{ | 117548 | .each = .{ .once = &.{ |
| 115848 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117549 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115849 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117550 | .{ ._, .v_ss, .broadcast, .tmp1x, .src0d, ._, ._ }, |
| 115850 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117551 | .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 115851 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117552 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115852 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117553 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115853 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115854 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 115855 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115856 | } }, | 117554 | } }, |
| 115857 | }, .{ | 117555 | }, .{ |
| 115858 | .required_features = .{ .sse, null, null, null }, | 117556 | .required_features = .{ .avx, null, null, null }, |
| 115859 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, | 117557 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 115860 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117558 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| 115861 | .patterns = &.{ | 117559 | .patterns = &.{ |
| 115862 | .{ .src = .{ .to_mem, .none, .none } }, | 117560 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115863 | }, | 117561 | }, |
| 115864 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115865 | .extra_temps = .{ | 117562 | .extra_temps = .{ |
| 115866 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117563 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115867 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 117564 | .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115868 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117565 | .unused, |
| 115869 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117566 | .unused, |
| 115870 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117567 | .unused, |
| 115871 | .unused, | 117568 | .unused, |
| 115872 | .unused, | 117569 | .unused, |
| 115873 | .unused, | 117570 | .unused, |
| ... | @@ -115876,30 +117573,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115876,30 +117573,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115876 | .unused, | 117573 | .unused, |
| 115877 | }, | 117574 | }, |
| 115878 | .dst_temps = .{ .mem, .unused }, | 117575 | .dst_temps = .{ .mem, .unused }, |
| 115879 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115880 | .each = .{ .once = &.{ | 117576 | .each = .{ .once = &.{ |
| 115881 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117577 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115882 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 117578 | .{ ._, .vp_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 115883 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 117579 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 115884 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 117580 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115885 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, | 117581 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115886 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, | | |
| 115887 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | | |
| 115888 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | | |
| 115889 | } }, | 117582 | } }, |
| 115890 | }, .{ | 117583 | }, .{ |
| 115891 | .required_features = .{ .avx, null, null, null }, | 117584 | .required_features = .{ .avx, null, null, null }, |
| 115892 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 117585 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 115893 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117586 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115894 | .patterns = &.{ | 117587 | .patterns = &.{ |
| 115895 | .{ .src = .{ .to_mem, .none, .none } }, | 117588 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115896 | }, | 117589 | }, |
| 115897 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115898 | .extra_temps = .{ | 117590 | .extra_temps = .{ |
| 115899 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117591 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115900 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117592 | .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115901 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117593 | .unused, |
| 115902 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117594 | .unused, |
| 115903 | .unused, | 117595 | .unused, |
| 115904 | .unused, | 117596 | .unused, |
| 115905 | .unused, | 117597 | .unused, |
| ... | @@ -115909,28 +117601,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115909,28 +117601,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115909 | .unused, | 117601 | .unused, |
| 115910 | }, | 117602 | }, |
| 115911 | .dst_temps = .{ .mem, .unused }, | 117603 | .dst_temps = .{ .mem, .unused }, |
| 115912 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115913 | .each = .{ .once = &.{ | 117604 | .each = .{ .once = &.{ |
| 115914 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117605 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115915 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 117606 | .{ ._, .v_ps, .shuf, .tmp1x, .tmp1x, .src0x, .ui(0b00_00_00_00) }, |
| 115916 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117607 | .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 115917 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117608 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115918 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 117609 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115919 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115920 | } }, | 117610 | } }, |
| 115921 | }, .{ | 117611 | }, .{ |
| 115922 | .required_features = .{ .sse2, null, null, null }, | 117612 | .required_features = .{ .sse2, null, null, null }, |
| 115923 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 117613 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 115924 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117614 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| 115925 | .patterns = &.{ | 117615 | .patterns = &.{ |
| 115926 | .{ .src = .{ .to_mem, .none, .none } }, | 117616 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115927 | }, | 117617 | }, |
| 115928 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115929 | .extra_temps = .{ | 117618 | .extra_temps = .{ |
| 115930 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117619 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115931 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117620 | .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115932 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117621 | .unused, |
| 115933 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117622 | .unused, |
| 115934 | .unused, | 117623 | .unused, |
| 115935 | .unused, | 117624 | .unused, |
| 115936 | .unused, | 117625 | .unused, |
| ... | @@ -115940,28 +117629,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115940,28 +117629,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115940 | .unused, | 117629 | .unused, |
| 115941 | }, | 117630 | }, |
| 115942 | .dst_temps = .{ .mem, .unused }, | 117631 | .dst_temps = .{ .mem, .unused }, |
| 115943 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115944 | .each = .{ .once = &.{ | 117632 | .each = .{ .once = &.{ |
| 115945 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117633 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115946 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 117634 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 115947 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117635 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 115948 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117636 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115949 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 117637 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115950 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115951 | } }, | 117638 | } }, |
| 115952 | }, .{ | 117639 | }, .{ |
| 115953 | .required_features = .{ .sse, null, null, null }, | 117640 | .required_features = .{ .sse, null, null, null }, |
| 115954 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, | 117641 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 115955 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117642 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115956 | .patterns = &.{ | 117643 | .patterns = &.{ |
| 115957 | .{ .src = .{ .to_mem, .none, .none } }, | 117644 | .{ .src = .{ .mut_sse, .none, .none } }, |
| 115958 | }, | 117645 | }, |
| 115959 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115960 | .extra_temps = .{ | 117646 | .extra_temps = .{ |
| 115961 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117647 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115962 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117648 | .unused, |
| 115963 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117649 | .unused, |
| 115964 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117650 | .unused, |
| 115965 | .unused, | 117651 | .unused, |
| 115966 | .unused, | 117652 | .unused, |
| 115967 | .unused, | 117653 | .unused, |
| ... | @@ -115971,28 +117657,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -115971,28 +117657,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115971 | .unused, | 117657 | .unused, |
| 115972 | }, | 117658 | }, |
| 115973 | .dst_temps = .{ .mem, .unused }, | 117659 | .dst_temps = .{ .mem, .unused }, |
| 115974 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 115975 | .each = .{ .once = &.{ | 117660 | .each = .{ .once = &.{ |
| 115976 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117661 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 115977 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 117662 | .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 115978 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117663 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 115979 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117664 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115980 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 117665 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115981 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 115982 | } }, | 117666 | } }, |
| 115983 | }, .{ | 117667 | }, .{ |
| 115984 | .required_features = .{ .avx, null, null, null }, | 117668 | .required_features = .{ .sse2, null, null, null }, |
| 115985 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 117669 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 115986 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117670 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115987 | .patterns = &.{ | 117671 | .patterns = &.{ |
| 115988 | .{ .src = .{ .to_mem, .none, .none } }, | 117672 | .{ .src = .{ .sse, .none, .none } }, |
| 115989 | }, | 117673 | }, |
| 115990 | .call_frame = .{ .alignment = .@"16" }, | | |
| 115991 | .extra_temps = .{ | 117674 | .extra_temps = .{ |
| 115992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117675 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115993 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117676 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 115994 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117677 | .unused, |
| 115995 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117678 | .unused, |
| 115996 | .unused, | 117679 | .unused, |
| 115997 | .unused, | 117680 | .unused, |
| 115998 | .unused, | 117681 | .unused, |
| ... | @@ -116002,28 +117685,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116002,28 +117685,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116002 | .unused, | 117685 | .unused, |
| 116003 | }, | 117686 | }, |
| 116004 | .dst_temps = .{ .mem, .unused }, | 117687 | .dst_temps = .{ .mem, .unused }, |
| 116005 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116006 | .each = .{ .once = &.{ | 117688 | .each = .{ .once = &.{ |
| 116007 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117689 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116008 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 117690 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 116009 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117691 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116010 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117692 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116011 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 117693 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116012 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116013 | } }, | 117694 | } }, |
| 116014 | }, .{ | 117695 | }, .{ |
| 116015 | .required_features = .{ .sse2, null, null, null }, | 117696 | .required_features = .{ .sse, null, null, null }, |
| 116016 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 117697 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any }, |
| 116017 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117698 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| 116018 | .patterns = &.{ | 117699 | .patterns = &.{ |
| 116019 | .{ .src = .{ .to_mem, .none, .none } }, | 117700 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 116020 | }, | 117701 | }, |
| 116021 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116022 | .extra_temps = .{ | 117702 | .extra_temps = .{ |
| 116023 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117703 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116024 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117704 | .unused, |
| 116025 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117705 | .unused, |
| 116026 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117706 | .unused, |
| 116027 | .unused, | 117707 | .unused, |
| 116028 | .unused, | 117708 | .unused, |
| 116029 | .unused, | 117709 | .unused, |
| ... | @@ -116033,28 +117713,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116033,28 +117713,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116033 | .unused, | 117713 | .unused, |
| 116034 | }, | 117714 | }, |
| 116035 | .dst_temps = .{ .mem, .unused }, | 117715 | .dst_temps = .{ .mem, .unused }, |
| 116036 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116037 | .each = .{ .once = &.{ | 117716 | .each = .{ .once = &.{ |
| 116038 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117717 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116039 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 117718 | .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 116040 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117719 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 116041 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117720 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116042 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 117721 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116043 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116044 | } }, | 117722 | } }, |
| 116045 | }, .{ | 117723 | }, .{ |
| 116046 | .required_features = .{ .sse, null, null, null }, | 117724 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .dword, .is = .dword } }, .any }, |
| 116047 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, | 117725 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| 116048 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | | |
| 116049 | .patterns = &.{ | 117726 | .patterns = &.{ |
| 116050 | .{ .src = .{ .to_mem, .none, .none } }, | 117727 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116051 | }, | 117728 | }, |
| 116052 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116053 | .extra_temps = .{ | 117729 | .extra_temps = .{ |
| 116054 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117730 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116055 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117731 | .unused, |
| 116056 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117732 | .unused, |
| 116057 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117733 | .unused, |
| 116058 | .unused, | 117734 | .unused, |
| 116059 | .unused, | 117735 | .unused, |
| 116060 | .unused, | 117736 | .unused, |
| ... | @@ -116064,28 +117740,152 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116064,28 +117740,152 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116064 | .unused, | 117740 | .unused, |
| 116065 | }, | 117741 | }, |
| 116066 | .dst_temps = .{ .mem, .unused }, | 117742 | .dst_temps = .{ .mem, .unused }, |
| 116067 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116068 | .each = .{ .once = &.{ | 117743 | .each = .{ .once = &.{ |
| 116069 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117744 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 116070 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 117745 | .{ .@"0:", ._, .mov, .memi(.dst0d, .tmp0), .src0d, ._, ._ }, |
| 116071 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117746 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116072 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117747 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116073 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 117748 | } }, |
| 116074 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 117749 | }, .{ |
| | 117750 | .required_features = .{ .avx2, null, null, null }, |
| | 117751 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117752 | .src_constraints = .{ .{ .int = .qword }, .any, .any }, |
| | 117753 | .patterns = &.{ |
| | 117754 | .{ .src = .{ .mem, .none, .none } }, |
| | 117755 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117756 | }, |
| | 117757 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117758 | .each = .{ .once = &.{ |
| | 117759 | .{ ._, .vp_q, .broadcast, .dst0x, .src0q, ._, ._ }, |
| | 117760 | } }, |
| | 117761 | }, .{ |
| | 117762 | .required_features = .{ .avx2, null, null, null }, |
| | 117763 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117764 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 117765 | .patterns = &.{ |
| | 117766 | .{ .src = .{ .mem, .none, .none } }, |
| | 117767 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117768 | }, |
| | 117769 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117770 | .each = .{ .once = &.{ |
| | 117771 | .{ ._, .v_, .movddup, .dst0x, .src0q, ._, ._ }, |
| 116075 | } }, | 117772 | } }, |
| 116076 | }, .{ | 117773 | }, .{ |
| 116077 | .required_features = .{ .avx, null, null, null }, | 117774 | .required_features = .{ .avx, null, null, null }, |
| 116078 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 117775 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 116079 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117776 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116080 | .patterns = &.{ | 117777 | .patterns = &.{ |
| 116081 | .{ .src = .{ .to_mem, .none, .none } }, | 117778 | .{ .src = .{ .mem, .none, .none } }, |
| | 117779 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117780 | }, |
| | 117781 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117782 | .each = .{ .once = &.{ |
| | 117783 | .{ ._, .v_, .movddup, .dst0x, .src0q, ._, ._ }, |
| | 117784 | } }, |
| | 117785 | }, .{ |
| | 117786 | .required_features = .{ .sse3, null, null, null }, |
| | 117787 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117788 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| | 117789 | .patterns = &.{ |
| | 117790 | .{ .src = .{ .mem, .none, .none } }, |
| | 117791 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117792 | }, |
| | 117793 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117794 | .each = .{ .once = &.{ |
| | 117795 | .{ ._, ._, .movddup, .dst0x, .src0q, ._, ._ }, |
| | 117796 | } }, |
| | 117797 | }, .{ |
| | 117798 | .required_features = .{ .sse2, null, null, null }, |
| | 117799 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117800 | .src_constraints = .{ .{ .int = .qword }, .any, .any }, |
| | 117801 | .patterns = &.{ |
| | 117802 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117803 | }, |
| | 117804 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117805 | .each = .{ .once = &.{ |
| | 117806 | .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ }, |
| | 117807 | } }, |
| | 117808 | }, .{ |
| | 117809 | .required_features = .{ .sse2, null, null, null }, |
| | 117810 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117811 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 117812 | .patterns = &.{ |
| | 117813 | .{ .src = .{ .mut_sse, .none, .none } }, |
| | 117814 | }, |
| | 117815 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 117816 | .each = .{ .once = &.{ |
| | 117817 | .{ ._, ._pd, .shuf, .dst0x, .src0x, .ui(0b0_0), ._ }, |
| | 117818 | } }, |
| | 117819 | }, .{ |
| | 117820 | .required_features = .{ .sse2, null, null, null }, |
| | 117821 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117822 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 117823 | .patterns = &.{ |
| | 117824 | .{ .src = .{ .sse, .none, .none } }, |
| | 117825 | }, |
| | 117826 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| | 117827 | .each = .{ .once = &.{ |
| | 117828 | .{ ._, .p_d, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ }, |
| | 117829 | } }, |
| | 117830 | }, .{ |
| | 117831 | .required_features = .{ .sse2, null, null, null }, |
| | 117832 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117833 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 117834 | .patterns = &.{ |
| | 117835 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 117836 | }, |
| | 117837 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 117838 | .each = .{ .once = &.{ |
| | 117839 | .{ ._, ._pd, .shuf, .dst0x, .src0x, .ui(0b0_0), ._ }, |
| | 117840 | } }, |
| | 117841 | }, .{ |
| | 117842 | .required_features = .{ .sse, null, null, null }, |
| | 117843 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| | 117844 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| | 117845 | .patterns = &.{ |
| | 117846 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 117847 | }, |
| | 117848 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 117849 | .each = .{ .once = &.{ |
| | 117850 | .{ ._, ._ps, .shuf, .dst0x, .src0x, .ui(0b01_00_01_00), ._ }, |
| | 117851 | } }, |
| | 117852 | }, .{ |
| | 117853 | .required_features = .{ .avx2, null, null, null }, |
| | 117854 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 117855 | .src_constraints = .{ .{ .int = .qword }, .any, .any }, |
| | 117856 | .patterns = &.{ |
| | 117857 | .{ .src = .{ .mem, .none, .none } }, |
| | 117858 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117859 | }, |
| | 117860 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117861 | .each = .{ .once = &.{ |
| | 117862 | .{ ._, .vp_q, .broadcast, .dst0y, .src0q, ._, ._ }, |
| | 117863 | } }, |
| | 117864 | }, .{ |
| | 117865 | .required_features = .{ .avx2, null, null, null }, |
| | 117866 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| | 117867 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| | 117868 | .patterns = &.{ |
| | 117869 | .{ .src = .{ .mem, .none, .none } }, |
| | 117870 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 117871 | }, |
| | 117872 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 117873 | .each = .{ .once = &.{ |
| | 117874 | .{ ._, .v_sd, .broadcast, .dst0y, .src0q, ._, ._ }, |
| | 117875 | } }, |
| | 117876 | }, .{ |
| | 117877 | .required_features = .{ .avx2, null, null, null }, |
| | 117878 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 117879 | .src_constraints = .{ .{ .int = .qword }, .any, .any }, |
| | 117880 | .patterns = &.{ |
| | 117881 | .{ .src = .{ .mem, .none, .none } }, |
| | 117882 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116082 | }, | 117883 | }, |
| 116083 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116084 | .extra_temps = .{ | 117884 | .extra_temps = .{ |
| 116085 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117885 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116086 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117886 | .{ .type = .vector_4_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116087 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117887 | .unused, |
| 116088 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117888 | .unused, |
| 116089 | .unused, | 117889 | .unused, |
| 116090 | .unused, | 117890 | .unused, |
| 116091 | .unused, | 117891 | .unused, |
| ... | @@ -116095,28 +117895,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116095,28 +117895,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116095 | .unused, | 117895 | .unused, |
| 116096 | }, | 117896 | }, |
| 116097 | .dst_temps = .{ .mem, .unused }, | 117897 | .dst_temps = .{ .mem, .unused }, |
| 116098 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116099 | .each = .{ .once = &.{ | 117898 | .each = .{ .once = &.{ |
| 116100 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117899 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116101 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 117900 | .{ ._, .vp_q, .broadcast, .tmp1y, .src0q, ._, ._ }, |
| 116102 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117901 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116103 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117902 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116104 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 117903 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116105 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116106 | } }, | 117904 | } }, |
| 116107 | }, .{ | 117905 | }, .{ |
| 116108 | .required_features = .{ .sse2, null, null, null }, | 117906 | .required_features = .{ .avx2, null, null, null }, |
| 116109 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 117907 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 116110 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117908 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116111 | .patterns = &.{ | 117909 | .patterns = &.{ |
| 116112 | .{ .src = .{ .to_mem, .none, .none } }, | 117910 | .{ .src = .{ .mem, .none, .none } }, |
| | 117911 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116113 | }, | 117912 | }, |
| 116114 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116115 | .extra_temps = .{ | 117913 | .extra_temps = .{ |
| 116116 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117914 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116117 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117915 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116118 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117916 | .unused, |
| 116119 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117917 | .unused, |
| 116120 | .unused, | 117918 | .unused, |
| 116121 | .unused, | 117919 | .unused, |
| 116122 | .unused, | 117920 | .unused, |
| ... | @@ -116126,28 +117924,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116126,28 +117924,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116126 | .unused, | 117924 | .unused, |
| 116127 | }, | 117925 | }, |
| 116128 | .dst_temps = .{ .mem, .unused }, | 117926 | .dst_temps = .{ .mem, .unused }, |
| 116129 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116130 | .each = .{ .once = &.{ | 117927 | .each = .{ .once = &.{ |
| 116131 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117928 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116132 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 117929 | .{ ._, .v_sd, .broadcast, .tmp1y, .src0q, ._, ._ }, |
| 116133 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117930 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116134 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117931 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116135 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 117932 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116136 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116137 | } }, | 117933 | } }, |
| 116138 | }, .{ | 117934 | }, .{ |
| 116139 | .required_features = .{ .sse, null, null, null }, | 117935 | .required_features = .{ .avx, null, null, null }, |
| 116140 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 117936 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 116141 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117937 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116142 | .patterns = &.{ | 117938 | .patterns = &.{ |
| 116143 | .{ .src = .{ .to_mem, .none, .none } }, | 117939 | .{ .src = .{ .mem, .none, .none } }, |
| | 117940 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116144 | }, | 117941 | }, |
| 116145 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116146 | .extra_temps = .{ | 117942 | .extra_temps = .{ |
| 116147 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117943 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116148 | .{ .type = .i32, .kind = .{ .reg = .edi } }, | 117944 | .{ .type = .vector_2_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116149 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, | 117945 | .unused, |
| 116150 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117946 | .unused, |
| 116151 | .unused, | 117947 | .unused, |
| 116152 | .unused, | 117948 | .unused, |
| 116153 | .unused, | 117949 | .unused, |
| ... | @@ -116157,28 +117953,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116157,28 +117953,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116157 | .unused, | 117953 | .unused, |
| 116158 | }, | 117954 | }, |
| 116159 | .dst_temps = .{ .mem, .unused }, | 117955 | .dst_temps = .{ .mem, .unused }, |
| 116160 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116161 | .each = .{ .once = &.{ | 117956 | .each = .{ .once = &.{ |
| 116162 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117957 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116163 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 117958 | .{ ._, .v_, .movddup, .tmp1x, .src0q, ._, ._ }, |
| 116164 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117959 | .{ .@"0:", .v_pd, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116165 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117960 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116166 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 117961 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116167 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116168 | } }, | 117962 | } }, |
| 116169 | }, .{ | 117963 | }, .{ |
| 116170 | .required_features = .{ .avx, null, null, null }, | 117964 | .required_features = .{ .sse3, null, null, null }, |
| 116171 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 117965 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 116172 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117966 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116173 | .patterns = &.{ | 117967 | .patterns = &.{ |
| 116174 | .{ .src = .{ .to_mem, .none, .none } }, | 117968 | .{ .src = .{ .mem, .none, .none } }, |
| | 117969 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116175 | }, | 117970 | }, |
| 116176 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116177 | .extra_temps = .{ | 117971 | .extra_temps = .{ |
| 116178 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 117972 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116179 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 117973 | .{ .type = .vector_2_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116180 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 117974 | .unused, |
| 116181 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 117975 | .unused, |
| 116182 | .unused, | 117976 | .unused, |
| 116183 | .unused, | 117977 | .unused, |
| 116184 | .unused, | 117978 | .unused, |
| ... | @@ -116188,28 +117982,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116188,28 +117982,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116188 | .unused, | 117982 | .unused, |
| 116189 | }, | 117983 | }, |
| 116190 | .dst_temps = .{ .mem, .unused }, | 117984 | .dst_temps = .{ .mem, .unused }, |
| 116191 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116192 | .each = .{ .once = &.{ | 117985 | .each = .{ .once = &.{ |
| 116193 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 117986 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116194 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 117987 | .{ ._, ._, .movddup, .tmp1x, .src0q, ._, ._ }, |
| 116195 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 117988 | .{ .@"0:", ._pd, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116196 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 117989 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116197 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 117990 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116198 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116199 | } }, | 117991 | } }, |
| 116200 | }, .{ | 117992 | }, .{ |
| 116201 | .required_features = .{ .sse2, null, null, null }, | 117993 | .required_features = .{ .sse2, null, null, null }, |
| 116202 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 117994 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 116203 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 117995 | .src_constraints = .{ .{ .int = .qword }, .any, .any }, |
| 116204 | .patterns = &.{ | 117996 | .patterns = &.{ |
| 116205 | .{ .src = .{ .to_mem, .none, .none } }, | 117997 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116206 | }, | 117998 | }, |
| 116207 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116208 | .extra_temps = .{ | 117999 | .extra_temps = .{ |
| 116209 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118000 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116210 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 118001 | .{ .type = .vector_2_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116211 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 118002 | .unused, |
| 116212 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118003 | .unused, |
| 116213 | .unused, | 118004 | .unused, |
| 116214 | .unused, | 118005 | .unused, |
| 116215 | .unused, | 118006 | .unused, |
| ... | @@ -116219,28 +118010,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116219,28 +118010,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116219 | .unused, | 118010 | .unused, |
| 116220 | }, | 118011 | }, |
| 116221 | .dst_temps = .{ .mem, .unused }, | 118012 | .dst_temps = .{ .mem, .unused }, |
| 116222 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116223 | .each = .{ .once = &.{ | 118013 | .each = .{ .once = &.{ |
| 116224 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118014 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116225 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 118015 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b01_00_01_00), ._ }, |
| 116226 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118016 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116227 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118017 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116228 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 118018 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116229 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116230 | } }, | 118019 | } }, |
| 116231 | }, .{ | 118020 | }, .{ |
| 116232 | .required_features = .{ .sse, null, null, null }, | 118021 | .required_features = .{ .sse2, null, null, null }, |
| 116233 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 118022 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 116234 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118023 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116235 | .patterns = &.{ | 118024 | .patterns = &.{ |
| 116236 | .{ .src = .{ .to_mem, .none, .none } }, | 118025 | .{ .src = .{ .mut_sse, .none, .none } }, |
| 116237 | }, | 118026 | }, |
| 116238 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116239 | .extra_temps = .{ | 118027 | .extra_temps = .{ |
| 116240 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118028 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116241 | .{ .type = .u32, .kind = .{ .reg = .edi } }, | 118029 | .unused, |
| 116242 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, | 118030 | .unused, |
| 116243 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118031 | .unused, |
| 116244 | .unused, | 118032 | .unused, |
| 116245 | .unused, | 118033 | .unused, |
| 116246 | .unused, | 118034 | .unused, |
| ... | @@ -116250,28 +118038,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116250,28 +118038,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116250 | .unused, | 118038 | .unused, |
| 116251 | }, | 118039 | }, |
| 116252 | .dst_temps = .{ .mem, .unused }, | 118040 | .dst_temps = .{ .mem, .unused }, |
| 116253 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116254 | .each = .{ .once = &.{ | 118041 | .each = .{ .once = &.{ |
| 116255 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118042 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116256 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 118043 | .{ ._, ._pd, .shuf, .src0x, .src0x, .ui(0b0_0), ._ }, |
| 116257 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118044 | .{ .@"0:", ._pd, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 116258 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118045 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116259 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 118046 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116261 | } }, | 118047 | } }, |
| 116262 | }, .{ | 118048 | }, .{ |
| 116263 | .required_features = .{ .@"64bit", .avx, null, null }, | 118049 | .required_features = .{ .sse2, null, null, null }, |
| 116264 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 118050 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 116265 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118051 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116266 | .patterns = &.{ | 118052 | .patterns = &.{ |
| 116267 | .{ .src = .{ .to_mem, .none, .none } }, | 118053 | .{ .src = .{ .sse, .none, .none } }, |
| 116268 | }, | 118054 | }, |
| 116269 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116270 | .extra_temps = .{ | 118055 | .extra_temps = .{ |
| 116271 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118056 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116272 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 118057 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 116273 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, | 118058 | .unused, |
| 116274 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118059 | .unused, |
| 116275 | .unused, | 118060 | .unused, |
| 116276 | .unused, | 118061 | .unused, |
| 116277 | .unused, | 118062 | .unused, |
| ... | @@ -116281,28 +118066,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116281,28 +118066,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116281 | .unused, | 118066 | .unused, |
| 116282 | }, | 118067 | }, |
| 116283 | .dst_temps = .{ .mem, .unused }, | 118068 | .dst_temps = .{ .mem, .unused }, |
| 116284 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116285 | .each = .{ .once = &.{ | 118069 | .each = .{ .once = &.{ |
| 116286 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118070 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116287 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118071 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b01_00_01_00), ._ }, |
| 116288 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118072 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116289 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118073 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116290 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 118074 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116291 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116292 | } }, | 118075 | } }, |
| 116293 | }, .{ | 118076 | }, .{ |
| 116294 | .required_features = .{ .@"64bit", .sse2, null, null }, | 118077 | .required_features = .{ .sse2, null, null, null }, |
| 116295 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 118078 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 116296 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118079 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116297 | .patterns = &.{ | 118080 | .patterns = &.{ |
| 116298 | .{ .src = .{ .to_mem, .none, .none } }, | 118081 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 116299 | }, | 118082 | }, |
| 116300 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116301 | .extra_temps = .{ | 118083 | .extra_temps = .{ |
| 116302 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118084 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116303 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 118085 | .unused, |
| 116304 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, | 118086 | .unused, |
| 116305 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118087 | .unused, |
| 116306 | .unused, | 118088 | .unused, |
| 116307 | .unused, | 118089 | .unused, |
| 116308 | .unused, | 118090 | .unused, |
| ... | @@ -116312,28 +118094,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116312,28 +118094,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116312 | .unused, | 118094 | .unused, |
| 116313 | }, | 118095 | }, |
| 116314 | .dst_temps = .{ .mem, .unused }, | 118096 | .dst_temps = .{ .mem, .unused }, |
| 116315 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116316 | .each = .{ .once = &.{ | 118097 | .each = .{ .once = &.{ |
| 116317 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118098 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116318 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118099 | .{ ._, ._pd, .shuf, .src0x, .src0x, .ui(0b0_0), ._ }, |
| 116319 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118100 | .{ .@"0:", ._pd, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 116320 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118101 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116321 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 118102 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116322 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116323 | } }, | 118103 | } }, |
| 116324 | }, .{ | 118104 | }, .{ |
| 116325 | .required_features = .{ .@"64bit", .sse, null, null }, | 118105 | .required_features = .{ .sse, null, null, null }, |
| 116326 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 118106 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 116327 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118107 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116328 | .patterns = &.{ | 118108 | .patterns = &.{ |
| 116329 | .{ .src = .{ .to_mem, .none, .none } }, | 118109 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 116330 | }, | 118110 | }, |
| 116331 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116332 | .extra_temps = .{ | 118111 | .extra_temps = .{ |
| 116333 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118112 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116334 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, | 118113 | .unused, |
| 116335 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, | 118114 | .unused, |
| 116336 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118115 | .unused, |
| 116337 | .unused, | 118116 | .unused, |
| 116338 | .unused, | 118117 | .unused, |
| 116339 | .unused, | 118118 | .unused, |
| ... | @@ -116343,28 +118122,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116343,28 +118122,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116343 | .unused, | 118122 | .unused, |
| 116344 | }, | 118123 | }, |
| 116345 | .dst_temps = .{ .mem, .unused }, | 118124 | .dst_temps = .{ .mem, .unused }, |
| 116346 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116347 | .each = .{ .once = &.{ | 118125 | .each = .{ .once = &.{ |
| 116348 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118126 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116349 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118127 | .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b01_00_01_00), ._ }, |
| 116350 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118128 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 116351 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118129 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116352 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 118130 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116353 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116354 | } }, | 118131 | } }, |
| 116355 | }, .{ | 118132 | }, .{ |
| 116356 | .required_features = .{ .@"64bit", .avx, null, null }, | 118133 | .required_features = .{ .@"64bit", null, null, null }, |
| 116357 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 118134 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .qword, .is = .qword } }, .any }, |
| 116358 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118135 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116359 | .patterns = &.{ | 118136 | .patterns = &.{ |
| 116360 | .{ .src = .{ .to_mem, .none, .none } }, | 118137 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116361 | }, | 118138 | }, |
| 116362 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116363 | .extra_temps = .{ | 118139 | .extra_temps = .{ |
| 116364 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118140 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116365 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118141 | .unused, |
| 116366 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, | 118142 | .unused, |
| 116367 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118143 | .unused, |
| 116368 | .unused, | 118144 | .unused, |
| 116369 | .unused, | 118145 | .unused, |
| 116370 | .unused, | 118146 | .unused, |
| ... | @@ -116374,28 +118150,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116374,28 +118150,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116374 | .unused, | 118150 | .unused, |
| 116375 | }, | 118151 | }, |
| 116376 | .dst_temps = .{ .mem, .unused }, | 118152 | .dst_temps = .{ .mem, .unused }, |
| 116377 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116378 | .each = .{ .once = &.{ | 118153 | .each = .{ .once = &.{ |
| 116379 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118154 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 116380 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118155 | .{ .@"0:", ._, .mov, .memi(.dst0q, .tmp0), .src0q, ._, ._ }, |
| 116381 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118156 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 116382 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118157 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116383 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | | |
| 116384 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116385 | } }, | 118158 | } }, |
| 116386 | }, .{ | 118159 | }, .{ |
| 116387 | .required_features = .{ .@"64bit", .sse2, null, null }, | 118160 | .required_features = .{ .sse, null, null, null }, |
| 116388 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 118161 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 116389 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118162 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116390 | .patterns = &.{ | 118163 | .patterns = &.{ |
| 116391 | .{ .src = .{ .to_mem, .none, .none } }, | 118164 | .{ .src = .{ .mut_mem, .none, .none } }, |
| | 118165 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 118166 | }, |
| | 118167 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 118168 | .each = .{ .once = &.{} }, |
| | 118169 | }, .{ |
| | 118170 | .required_features = .{ .avx2, null, null, null }, |
| | 118171 | .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| | 118172 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| | 118173 | .patterns = &.{ |
| | 118174 | .{ .src = .{ .mem, .none, .none } }, |
| | 118175 | }, |
| | 118176 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118177 | .each = .{ .once = &.{ |
| | 118178 | .{ ._, .v_i128, .broadcast, .dst0y, .src0x, ._, ._ }, |
| | 118179 | } }, |
| | 118180 | }, .{ |
| | 118181 | .required_features = .{ .avx2, null, null, null }, |
| | 118182 | .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| | 118183 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| | 118184 | .patterns = &.{ |
| | 118185 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 118186 | }, |
| | 118187 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118188 | .each = .{ .once = &.{ |
| | 118189 | .{ ._, .v_i128, .insert, .dst0y, .src0y, .src0x, .ui(1) }, |
| | 118190 | } }, |
| | 118191 | }, .{ |
| | 118192 | .required_features = .{ .avx, null, null, null }, |
| | 118193 | .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| | 118194 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| | 118195 | .patterns = &.{ |
| | 118196 | .{ .src = .{ .mem, .none, .none } }, |
| | 118197 | }, |
| | 118198 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118199 | .each = .{ .once = &.{ |
| | 118200 | .{ ._, .v_f128, .broadcast, .dst0y, .src0x, ._, ._ }, |
| | 118201 | } }, |
| | 118202 | }, .{ |
| | 118203 | .required_features = .{ .avx, null, null, null }, |
| | 118204 | .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| | 118205 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| | 118206 | .patterns = &.{ |
| | 118207 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 118208 | }, |
| | 118209 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118210 | .each = .{ .once = &.{ |
| | 118211 | .{ ._, .v_f128, .insert, .dst0y, .src0y, .src0x, .ui(1) }, |
| | 118212 | } }, |
| | 118213 | }, .{ |
| | 118214 | .required_features = .{ .avx2, null, null, null }, |
| | 118215 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| | 118216 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| | 118217 | .patterns = &.{ |
| | 118218 | .{ .src = .{ .mem, .none, .none } }, |
| 116392 | }, | 118219 | }, |
| 116393 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116394 | .extra_temps = .{ | 118220 | .extra_temps = .{ |
| 116395 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118221 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116396 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118222 | .{ .type = .vector_2_u128, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116397 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, | 118223 | .unused, |
| 116398 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118224 | .unused, |
| 116399 | .unused, | 118225 | .unused, |
| 116400 | .unused, | 118226 | .unused, |
| 116401 | .unused, | 118227 | .unused, |
| ... | @@ -116405,28 +118231,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116405,28 +118231,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116405 | .unused, | 118231 | .unused, |
| 116406 | }, | 118232 | }, |
| 116407 | .dst_temps = .{ .mem, .unused }, | 118233 | .dst_temps = .{ .mem, .unused }, |
| 116408 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116409 | .each = .{ .once = &.{ | 118234 | .each = .{ .once = &.{ |
| 116410 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118235 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116411 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118236 | .{ ._, .v_i128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 116412 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118237 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116413 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118238 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116414 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 118239 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116415 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116416 | } }, | 118240 | } }, |
| 116417 | }, .{ | 118241 | }, .{ |
| 116418 | .required_features = .{ .@"64bit", .sse, null, null }, | 118242 | .required_features = .{ .avx2, null, null, null }, |
| 116419 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, | 118243 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| 116420 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118244 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116421 | .patterns = &.{ | 118245 | .patterns = &.{ |
| 116422 | .{ .src = .{ .to_mem, .none, .none } }, | 118246 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116423 | }, | 118247 | }, |
| 116424 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116425 | .extra_temps = .{ | 118248 | .extra_temps = .{ |
| 116426 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118249 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116427 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118250 | .{ .type = .vector_2_u128, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116428 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, | 118251 | .unused, |
| 116429 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118252 | .unused, |
| 116430 | .unused, | 118253 | .unused, |
| 116431 | .unused, | 118254 | .unused, |
| 116432 | .unused, | 118255 | .unused, |
| ... | @@ -116436,29 +118259,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116436,29 +118259,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116436 | .unused, | 118259 | .unused, |
| 116437 | }, | 118260 | }, |
| 116438 | .dst_temps = .{ .mem, .unused }, | 118261 | .dst_temps = .{ .mem, .unused }, |
| 116439 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116440 | .each = .{ .once = &.{ | 118262 | .each = .{ .once = &.{ |
| 116441 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118263 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116442 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118264 | .{ ._, .v_i128, .insert, .tmp1y, .src0y, .src0x, .ui(1) }, |
| 116443 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, | 118265 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116444 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, | 118266 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116445 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 118267 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116446 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116447 | } }, | 118268 | } }, |
| 116448 | }, .{ | 118269 | }, .{ |
| 116449 | .required_features = .{ .@"64bit", .avx, null, null }, | 118270 | .required_features = .{ .avx, null, null, null }, |
| 116450 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 118271 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| 116451 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118272 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116452 | .patterns = &.{ | 118273 | .patterns = &.{ |
| 116453 | .{ .src = .{ .to_mem, .none, .none } }, | 118274 | .{ .src = .{ .mem, .none, .none } }, |
| 116454 | }, | 118275 | }, |
| 116455 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116456 | .extra_temps = .{ | 118276 | .extra_temps = .{ |
| 116457 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118277 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116458 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118278 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116459 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 118279 | .unused, |
| 116460 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, | 118280 | .unused, |
| 116461 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118281 | .unused, |
| 116462 | .unused, | 118282 | .unused, |
| 116463 | .unused, | 118283 | .unused, |
| 116464 | .unused, | 118284 | .unused, |
| ... | @@ -116467,30 +118287,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116467,30 +118287,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116467 | .unused, | 118287 | .unused, |
| 116468 | }, | 118288 | }, |
| 116469 | .dst_temps = .{ .mem, .unused }, | 118289 | .dst_temps = .{ .mem, .unused }, |
| 116470 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116471 | .each = .{ .once = &.{ | 118290 | .each = .{ .once = &.{ |
| 116472 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118291 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116473 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118292 | .{ ._, .v_f128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 116474 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 118293 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116475 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 118294 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116476 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | 118295 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116477 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 116478 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116479 | } }, | 118296 | } }, |
| 116480 | }, .{ | 118297 | }, .{ |
| 116481 | .required_features = .{ .@"64bit", .sse2, null, null }, | 118298 | .required_features = .{ .avx, null, null, null }, |
| 116482 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 118299 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| 116483 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118300 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116484 | .patterns = &.{ | 118301 | .patterns = &.{ |
| 116485 | .{ .src = .{ .to_mem, .none, .none } }, | 118302 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116486 | }, | 118303 | }, |
| 116487 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116488 | .extra_temps = .{ | 118304 | .extra_temps = .{ |
| 116489 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118305 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116490 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118306 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116491 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 118307 | .unused, |
| 116492 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, | 118308 | .unused, |
| 116493 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118309 | .unused, |
| 116494 | .unused, | 118310 | .unused, |
| 116495 | .unused, | 118311 | .unused, |
| 116496 | .unused, | 118312 | .unused, |
| ... | @@ -116499,30 +118315,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116499,30 +118315,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116499 | .unused, | 118315 | .unused, |
| 116500 | }, | 118316 | }, |
| 116501 | .dst_temps = .{ .mem, .unused }, | 118317 | .dst_temps = .{ .mem, .unused }, |
| 116502 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116503 | .each = .{ .once = &.{ | 118318 | .each = .{ .once = &.{ |
| 116504 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118319 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116505 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118320 | .{ ._, .v_f128, .insert, .tmp1y, .src0y, .src0x, .ui(1) }, |
| 116506 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 118321 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116507 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 118322 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116508 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | 118323 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116509 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 116510 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116511 | } }, | 118324 | } }, |
| 116512 | }, .{ | 118325 | }, .{ |
| 116513 | .required_features = .{ .@"64bit", .sse, null, null }, | 118326 | .required_features = .{ .avx, null, null, null }, |
| 116514 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 118327 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 116515 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118328 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116516 | .patterns = &.{ | 118329 | .patterns = &.{ |
| 116517 | .{ .src = .{ .to_mem, .none, .none } }, | 118330 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116518 | }, | 118331 | }, |
| 116519 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116520 | .extra_temps = .{ | 118332 | .extra_temps = .{ |
| 116521 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118333 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116522 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118334 | .unused, |
| 116523 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, | 118335 | .unused, |
| 116524 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, | 118336 | .unused, |
| 116525 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118337 | .unused, |
| 116526 | .unused, | 118338 | .unused, |
| 116527 | .unused, | 118339 | .unused, |
| 116528 | .unused, | 118340 | .unused, |
| ... | @@ -116531,30 +118343,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116531,30 +118343,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116531 | .unused, | 118343 | .unused, |
| 116532 | }, | 118344 | }, |
| 116533 | .dst_temps = .{ .mem, .unused }, | 118345 | .dst_temps = .{ .mem, .unused }, |
| 116534 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116535 | .each = .{ .once = &.{ | 118346 | .each = .{ .once = &.{ |
| 116536 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118347 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116537 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118348 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 116538 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 118349 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116539 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 118350 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116540 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 116541 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 116542 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116543 | } }, | 118351 | } }, |
| 116544 | }, .{ | 118352 | }, .{ |
| 116545 | .required_features = .{ .@"64bit", .avx, null, null }, | 118353 | .required_features = .{ .sse2, null, null, null }, |
| 116546 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 118354 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 116547 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118355 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116548 | .patterns = &.{ | 118356 | .patterns = &.{ |
| 116549 | .{ .src = .{ .to_mem, .none, .none } }, | 118357 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116550 | }, | 118358 | }, |
| 116551 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116552 | .extra_temps = .{ | 118359 | .extra_temps = .{ |
| 116553 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118360 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116554 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118361 | .unused, |
| 116555 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 118362 | .unused, |
| 116556 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, | 118363 | .unused, |
| 116557 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118364 | .unused, |
| 116558 | .unused, | 118365 | .unused, |
| 116559 | .unused, | 118366 | .unused, |
| 116560 | .unused, | 118367 | .unused, |
| ... | @@ -116563,30 +118370,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116563,30 +118370,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116563 | .unused, | 118370 | .unused, |
| 116564 | }, | 118371 | }, |
| 116565 | .dst_temps = .{ .mem, .unused }, | 118372 | .dst_temps = .{ .mem, .unused }, |
| 116566 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116567 | .each = .{ .once = &.{ | 118373 | .each = .{ .once = &.{ |
| 116568 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118374 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116569 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118375 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 116570 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 118376 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116571 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 118377 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116572 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 116573 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 116574 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116575 | } }, | 118378 | } }, |
| 116576 | }, .{ | 118379 | }, .{ |
| 116577 | .required_features = .{ .@"64bit", .sse2, null, null }, | 118380 | .required_features = .{ .sse, null, null, null }, |
| 116578 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 118381 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 116579 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118382 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116580 | .patterns = &.{ | 118383 | .patterns = &.{ |
| 116581 | .{ .src = .{ .to_mem, .none, .none } }, | 118384 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116582 | }, | 118385 | }, |
| 116583 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116584 | .extra_temps = .{ | 118386 | .extra_temps = .{ |
| 116585 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118387 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116586 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118388 | .unused, |
| 116587 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 118389 | .unused, |
| 116588 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, | 118390 | .unused, |
| 116589 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118391 | .unused, |
| 116590 | .unused, | 118392 | .unused, |
| 116591 | .unused, | 118393 | .unused, |
| 116592 | .unused, | 118394 | .unused, |
| ... | @@ -116595,30 +118397,79 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116595,30 +118397,79 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116595 | .unused, | 118397 | .unused, |
| 116596 | }, | 118398 | }, |
| 116597 | .dst_temps = .{ .mem, .unused }, | 118399 | .dst_temps = .{ .mem, .unused }, |
| 116598 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116599 | .each = .{ .once = &.{ | 118400 | .each = .{ .once = &.{ |
| 116600 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118401 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116601 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118402 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 116602 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 118403 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116603 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 118404 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116604 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | | |
| 116605 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 116606 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116607 | } }, | 118405 | } }, |
| 116608 | }, .{ | 118406 | }, .{ |
| 116609 | .required_features = .{ .@"64bit", .sse, null, null }, | 118407 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116610 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, | 118408 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116611 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118409 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| | 118410 | .patterns = &.{ |
| | 118411 | .{ .src = .{ .mut_mem, .none, .none } }, |
| | 118412 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| | 118413 | }, |
| | 118414 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 118415 | .each = .{ .once = &.{} }, |
| | 118416 | }, .{ |
| | 118417 | .required_features = .{ .@"64bit", .avx2, null, null }, |
| | 118418 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| | 118419 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| | 118420 | .patterns = &.{ |
| | 118421 | .{ .src = .{ .mem, .none, .none } }, |
| | 118422 | }, |
| | 118423 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118424 | .each = .{ .once = &.{ |
| | 118425 | .{ ._, .v_i128, .broadcast, .dst0y, .src0x, ._, ._ }, |
| | 118426 | } }, |
| | 118427 | }, .{ |
| | 118428 | .required_features = .{ .@"64bit", .avx2, null, null }, |
| | 118429 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| | 118430 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| | 118431 | .patterns = &.{ |
| | 118432 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 118433 | }, |
| | 118434 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118435 | .each = .{ .once = &.{ |
| | 118436 | .{ ._, .v_i128, .insert, .dst0y, .src0y, .src0x, .ui(1) }, |
| | 118437 | } }, |
| | 118438 | }, .{ |
| | 118439 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 118440 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| | 118441 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| | 118442 | .patterns = &.{ |
| | 118443 | .{ .src = .{ .mem, .none, .none } }, |
| | 118444 | }, |
| | 118445 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118446 | .each = .{ .once = &.{ |
| | 118447 | .{ ._, .v_f128, .broadcast, .dst0y, .src0x, ._, ._ }, |
| | 118448 | } }, |
| | 118449 | }, .{ |
| | 118450 | .required_features = .{ .@"64bit", .avx, null, null }, |
| | 118451 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| | 118452 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| | 118453 | .patterns = &.{ |
| | 118454 | .{ .src = .{ .to_sse, .none, .none } }, |
| | 118455 | }, |
| | 118456 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| | 118457 | .each = .{ .once = &.{ |
| | 118458 | .{ ._, .v_f128, .insert, .dst0y, .src0y, .src0x, .ui(1) }, |
| | 118459 | } }, |
| | 118460 | }, .{ |
| | 118461 | .required_features = .{ .@"64bit", .avx2, null, null }, |
| | 118462 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| | 118463 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116612 | .patterns = &.{ | 118464 | .patterns = &.{ |
| 116613 | .{ .src = .{ .to_mem, .none, .none } }, | 118465 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116614 | }, | 118466 | }, |
| 116615 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116616 | .extra_temps = .{ | 118467 | .extra_temps = .{ |
| 116617 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118468 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116618 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, | 118469 | .{ .type = .vector_2_u128, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116619 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, | 118470 | .unused, |
| 116620 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, | 118471 | .unused, |
| 116621 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118472 | .unused, |
| 116622 | .unused, | 118473 | .unused, |
| 116623 | .unused, | 118474 | .unused, |
| 116624 | .unused, | 118475 | .unused, |
| ... | @@ -116627,31 +118478,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116627,31 +118478,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116627 | .unused, | 118478 | .unused, |
| 116628 | }, | 118479 | }, |
| 116629 | .dst_temps = .{ .mem, .unused }, | 118480 | .dst_temps = .{ .mem, .unused }, |
| 116630 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116631 | .each = .{ .once = &.{ | 118481 | .each = .{ .once = &.{ |
| 116632 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 118482 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116633 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, | 118483 | .{ ._, .v_i128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 116634 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, | 118484 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116635 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, | 118485 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116636 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, | 118486 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116637 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | | |
| 116638 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116639 | } }, | 118487 | } }, |
| 116640 | }, .{ | 118488 | }, .{ |
| 116641 | .required_features = .{ .@"64bit", .avx, null, null }, | 118489 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116642 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 118490 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| 116643 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118491 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116644 | .patterns = &.{ | 118492 | .patterns = &.{ |
| 116645 | .{ .src = .{ .to_mem, .none, .none } }, | 118493 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116646 | }, | 118494 | }, |
| 116647 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116648 | .extra_temps = .{ | 118495 | .extra_temps = .{ |
| 116649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 118496 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116650 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118497 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 116651 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 118498 | .unused, |
| 116652 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 118499 | .unused, |
| 116653 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, | 118500 | .unused, |
| 116654 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118501 | .unused, |
| 116655 | .unused, | 118502 | .unused, |
| 116656 | .unused, | 118503 | .unused, |
| 116657 | .unused, | 118504 | .unused, |
| ... | @@ -116659,33 +118506,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116659,33 +118506,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116659 | .unused, | 118506 | .unused, |
| 116660 | }, | 118507 | }, |
| 116661 | .dst_temps = .{ .mem, .unused }, | 118508 | .dst_temps = .{ .mem, .unused }, |
| 116662 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116663 | .each = .{ .once = &.{ | 118509 | .each = .{ .once = &.{ |
| 116664 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 118510 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 116665 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 118511 | .{ ._, .v_f128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 116666 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 118512 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116667 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 118513 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116668 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 118514 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116669 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 116670 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 116671 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | | |
| 116672 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116673 | } }, | 118515 | } }, |
| 116674 | }, .{ | 118516 | }, .{ |
| 116675 | .required_features = .{ .@"64bit", .sse2, null, null }, | 118517 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116676 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 118518 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116677 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118519 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116678 | .patterns = &.{ | 118520 | .patterns = &.{ |
| 116679 | .{ .src = .{ .to_mem, .none, .none } }, | 118521 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116680 | }, | 118522 | }, |
| 116681 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116682 | .extra_temps = .{ | 118523 | .extra_temps = .{ |
| 116683 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 118524 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116684 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118525 | .{ .type = .f80, .kind = .{ .rc = .sse } }, |
| 116685 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 118526 | .unused, |
| 116686 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 118527 | .unused, |
| 116687 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, | 118528 | .unused, |
| 116688 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118529 | .unused, |
| 116689 | .unused, | 118530 | .unused, |
| 116690 | .unused, | 118531 | .unused, |
| 116691 | .unused, | 118532 | .unused, |
| ... | @@ -116693,33 +118534,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116693,33 +118534,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116693 | .unused, | 118534 | .unused, |
| 116694 | }, | 118535 | }, |
| 116695 | .dst_temps = .{ .mem, .unused }, | 118536 | .dst_temps = .{ .mem, .unused }, |
| 116696 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116697 | .each = .{ .once = &.{ | 118537 | .each = .{ .once = &.{ |
| 116698 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 118538 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116699 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 118539 | .{ ._, .v_dqa, .mov, .tmp1x, .mem(.src0x), ._, ._ }, |
| 116700 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 118540 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116701 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 118541 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116702 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 118542 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116703 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 116704 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 116705 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | | |
| 116706 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116707 | } }, | 118543 | } }, |
| 116708 | }, .{ | 118544 | }, .{ |
| 116709 | .required_features = .{ .@"64bit", .sse, null, null }, | 118545 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116710 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 118546 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116711 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118547 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116712 | .patterns = &.{ | 118548 | .patterns = &.{ |
| 116713 | .{ .src = .{ .to_mem, .none, .none } }, | 118549 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116714 | }, | 118550 | }, |
| 116715 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116716 | .extra_temps = .{ | 118551 | .extra_temps = .{ |
| 116717 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 118552 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116718 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118553 | .{ .type = .f80, .kind = .{ .rc = .sse } }, |
| 116719 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 118554 | .unused, |
| 116720 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 118555 | .unused, |
| 116721 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, | 118556 | .unused, |
| 116722 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118557 | .unused, |
| 116723 | .unused, | 118558 | .unused, |
| 116724 | .unused, | 118559 | .unused, |
| 116725 | .unused, | 118560 | .unused, |
| ... | @@ -116727,33 +118562,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116727,33 +118562,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116727 | .unused, | 118562 | .unused, |
| 116728 | }, | 118563 | }, |
| 116729 | .dst_temps = .{ .mem, .unused }, | 118564 | .dst_temps = .{ .mem, .unused }, |
| 116730 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116731 | .each = .{ .once = &.{ | 118565 | .each = .{ .once = &.{ |
| 116732 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 118566 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116733 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 118567 | .{ ._, ._dqa, .mov, .tmp1x, .mem(.src0x), ._, ._ }, |
| 116734 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 118568 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116735 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 118569 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116736 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 118570 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116737 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 116738 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 116739 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | | |
| 116740 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116741 | } }, | 118571 | } }, |
| 116742 | }, .{ | 118572 | }, .{ |
| 116743 | .required_features = .{ .@"64bit", .avx, null, null }, | 118573 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116744 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 118574 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116745 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118575 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116746 | .patterns = &.{ | 118576 | .patterns = &.{ |
| 116747 | .{ .src = .{ .to_mem, .none, .none } }, | 118577 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116748 | }, | 118578 | }, |
| 116749 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116750 | .extra_temps = .{ | 118579 | .extra_temps = .{ |
| 116751 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 118580 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116752 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 118581 | .{ .type = .f80, .kind = .{ .rc = .sse } }, |
| 116753 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 118582 | .unused, |
| 116754 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 118583 | .unused, |
| 116755 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, | 118584 | .unused, |
| 116756 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118585 | .unused, |
| 116757 | .unused, | 118586 | .unused, |
| 116758 | .unused, | 118587 | .unused, |
| 116759 | .unused, | 118588 | .unused, |
| ... | @@ -116761,33 +118590,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116761,33 +118590,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116761 | .unused, | 118590 | .unused, |
| 116762 | }, | 118591 | }, |
| 116763 | .dst_temps = .{ .mem, .unused }, | 118592 | .dst_temps = .{ .mem, .unused }, |
| 116764 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116765 | .each = .{ .once = &.{ | 118593 | .each = .{ .once = &.{ |
| 116766 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 118594 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116767 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 118595 | .{ ._, ._ps, .mova, .tmp1x, .mem(.src0x), ._, ._ }, |
| 116768 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 118596 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116769 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 118597 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116770 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 118598 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116771 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | | |
| 116772 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | | |
| 116773 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | | |
| 116774 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116775 | } }, | 118599 | } }, |
| 116776 | }, .{ | 118600 | }, .{ |
| 116777 | .required_features = .{ .@"64bit", .sse2, null, null }, | 118601 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 116778 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 118602 | .dst_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 116779 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118603 | .src_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116780 | .patterns = &.{ | 118604 | .patterns = &.{ |
| 116781 | .{ .src = .{ .to_mem, .none, .none } }, | 118605 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116782 | }, | 118606 | }, |
| 116783 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116784 | .extra_temps = .{ | 118607 | .extra_temps = .{ |
| 116785 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 118608 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116786 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 116787 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 118609 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116788 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 118610 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116789 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, | 118611 | .{ .type = .usize, .kind = .{ .reg = .rcx } }, |
| 116790 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118612 | .unused, |
| | 118613 | .unused, |
| 116791 | .unused, | 118614 | .unused, |
| 116792 | .unused, | 118615 | .unused, |
| 116793 | .unused, | 118616 | .unused, |
| ... | @@ -116795,33 +118618,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116795,33 +118618,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116795 | .unused, | 118618 | .unused, |
| 116796 | }, | 118619 | }, |
| 116797 | .dst_temps = .{ .mem, .unused }, | 118620 | .dst_temps = .{ .mem, .unused }, |
| 116798 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116799 | .each = .{ .once = &.{ | 118621 | .each = .{ .once = &.{ |
| 116800 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 118622 | .{ ._, ._, .mov, .tmp0d, .sa(.dst0, .add_len), ._, ._ }, |
| 116801 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 118623 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 116802 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 118624 | .{ .@"0:", ._, .lea, .tmp2q, .mem(.src0), ._, ._ }, |
| 116803 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 118625 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_size_div_8), ._, ._ }, |
| 116804 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 118626 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 116805 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 118627 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 116806 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 118628 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 116807 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | | |
| 116808 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116809 | } }, | 118629 | } }, |
| 116810 | }, .{ | 118630 | }, .{ |
| 116811 | .required_features = .{ .@"64bit", .sse, null, null }, | 118631 | .required_features = .{ .@"64bit", null, null, null }, |
| 116812 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, | 118632 | .dst_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 116813 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, | 118633 | .src_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116814 | .patterns = &.{ | 118634 | .patterns = &.{ |
| 116815 | .{ .src = .{ .to_mem, .none, .none } }, | 118635 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116816 | }, | 118636 | }, |
| 116817 | .call_frame = .{ .alignment = .@"16" }, | | |
| 116818 | .extra_temps = .{ | 118637 | .extra_temps = .{ |
| 116819 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 118638 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116820 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 116821 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 118639 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116822 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 118640 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116823 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, | 118641 | .{ .type = .usize, .kind = .{ .reg = .rcx } }, |
| 116824 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, | 118642 | .unused, |
| | 118643 | .unused, |
| 116825 | .unused, | 118644 | .unused, |
| 116826 | .unused, | 118645 | .unused, |
| 116827 | .unused, | 118646 | .unused, |
| ... | @@ -116829,23 +118648,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -116829,23 +118648,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116829 | .unused, | 118648 | .unused, |
| 116830 | }, | 118649 | }, |
| 116831 | .dst_temps = .{ .mem, .unused }, | 118650 | .dst_temps = .{ .mem, .unused }, |
| 116832 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, | | |
| 116833 | .each = .{ .once = &.{ | 118651 | .each = .{ .once = &.{ |
| 116834 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 118652 | .{ ._, ._, .mov, .tmp0d, .sa(.dst0, .add_len), ._, ._ }, |
| 116835 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 118653 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 116836 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, | 118654 | .{ .@"0:", ._, .lea, .tmp2q, .mem(.src0), ._, ._ }, |
| 116837 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, | 118655 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_size_div_8), ._, ._ }, |
| 116838 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, | 118656 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 116839 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, | 118657 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 116840 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, | 118658 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 116841 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, | | |
| 116842 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 116843 | } }, | 118659 | } }, |
| 116844 | } }) catch |err| switch (err) { | 118660 | } }) catch |err| switch (err) { |
| 116845 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 118661 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 116846 | @tagName(air_tag), | 118662 | @tagName(air_tag), |
| 116847 | ty_op.ty.toType().fmt(pt), | 118663 | ty_op.ty.toType().fmt(pt), |
| 116848 | cg.typeOf(ty_op.operand).fmt(pt), | | |
| 116849 | ops[0].tracking(cg), | 118664 | ops[0].tracking(cg), |
| 116850 | }), | 118665 | }), |
| 116851 | else => |e| return e, | 118666 | else => |e| return e, |
| ... | @@ -143084,16 +144899,17 @@ const Select = struct { | ... | @@ -143084,16 +144899,17 @@ const Select = struct { |
| 143084 | any_float, | 144899 | any_float, |
| 143085 | po2_any, | 144900 | po2_any, |
| 143086 | bool_vec: Memory.Size, | 144901 | bool_vec: Memory.Size, |
| 143087 | vec: Memory.Size, | | |
| 143088 | signed_int_vec: Memory.Size, | 144902 | signed_int_vec: Memory.Size, |
| 143089 | signed_int_or_full_vec: Memory.Size, | 144903 | signed_int_or_full_vec: Memory.Size, |
| 143090 | unsigned_int_vec: Memory.Size, | 144904 | unsigned_int_vec: Memory.Size, |
| 143091 | size: Memory.Size, | 144905 | size: Memory.Size, |
| 143092 | multiple_size: Memory.Size, | 144906 | multiple_size: Memory.Size, |
| 143093 | int: Memory.Size, | 144907 | int: Memory.Size, |
| | 144908 | int_or_float: Memory.Size, |
| 143094 | scalar_int_is: Memory.Size, | 144909 | scalar_int_is: Memory.Size, |
| 143095 | scalar_signed_int_is: Memory.Size, | 144910 | scalar_signed_int_is: Memory.Size, |
| 143096 | scalar_unsigned_int_is: Memory.Size, | 144911 | scalar_unsigned_int_is: Memory.Size, |
| | 144912 | scalar: OfIsSizes, |
| 143097 | scalar_int: OfIsSizes, | 144913 | scalar_int: OfIsSizes, |
| 143098 | scalar_signed_int: OfIsSizes, | 144914 | scalar_signed_int: OfIsSizes, |
| 143099 | scalar_unsigned_int: OfIsSizes, | 144915 | scalar_unsigned_int: OfIsSizes, |
| ... | @@ -143101,6 +144917,7 @@ const Select = struct { | ... | @@ -143101,6 +144917,7 @@ const Select = struct { |
| 143101 | scalar_exact_int: struct { of: Memory.Size, is: u16 }, | 144917 | scalar_exact_int: struct { of: Memory.Size, is: u16 }, |
| 143102 | scalar_exact_signed_int: struct { of: Memory.Size, is: u16 }, | 144918 | scalar_exact_signed_int: struct { of: Memory.Size, is: u16 }, |
| 143103 | scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 }, | 144919 | scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 }, |
| | 144920 | multiple_scalar: OfIsSizes, |
| 143104 | multiple_scalar_int: OfIsSizes, | 144921 | multiple_scalar_int: OfIsSizes, |
| 143105 | multiple_scalar_signed_int: OfIsSizes, | 144922 | multiple_scalar_signed_int: OfIsSizes, |
| 143106 | multiple_scalar_unsigned_int: OfIsSizes, | 144923 | multiple_scalar_unsigned_int: OfIsSizes, |
| ... | @@ -143159,8 +144976,6 @@ const Select = struct { | ... | @@ -143159,8 +144976,6 @@ const Select = struct { |
| 143159 | .po2_any => std.math.isPowerOfTwo(ty.abiSize(zcu)), | 144976 | .po2_any => std.math.isPowerOfTwo(ty.abiSize(zcu)), |
| 143160 | .bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and | 144977 | .bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and |
| 143161 | size.bitSize(cg.target) >= ty.vectorLen(zcu), | 144978 | size.bitSize(cg.target) >= ty.vectorLen(zcu), |
| 143162 | .vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() != .bool_type and | | |
| 143163 | size.bitSize(cg.target) >= ty.abiSize(zcu), | | |
| 143164 | .signed_int_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and | 144979 | .signed_int_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and |
| 143165 | if (cg.intInfo(ty.childType(zcu))) |int_info| int_info.signedness == .signed else false, | 144980 | if (cg.intInfo(ty.childType(zcu))) |int_info| int_info.signedness == .signed else false, |
| 143166 | .signed_int_or_full_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and | 144981 | .signed_int_or_full_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and |
| ... | @@ -143173,6 +144988,12 @@ const Select = struct { | ... | @@ -143173,6 +144988,12 @@ const Select = struct { |
| 143173 | .size => |size| @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu), | 144988 | .size => |size| @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu), |
| 143174 | .multiple_size => |size| ty.abiSize(zcu) % @divExact(size.bitSize(cg.target), 8) == 0, | 144989 | .multiple_size => |size| ty.abiSize(zcu) % @divExact(size.bitSize(cg.target), 8) == 0, |
| 143175 | .int => |size| if (cg.intInfo(ty)) |int_info| size.bitSize(cg.target) >= int_info.bits else false, | 144990 | .int => |size| if (cg.intInfo(ty)) |int_info| size.bitSize(cg.target) >= int_info.bits else false, |
| | 144991 | .int_or_float => |size| if (cg.intInfo(ty)) |int_info| |
| | 144992 | size.bitSize(cg.target) >= int_info.bits |
| | 144993 | else if (cg.floatBits(ty)) |float_bits| |
| | 144994 | size.bitSize(cg.target) == float_bits |
| | 144995 | else |
| | 144996 | false, |
| 143176 | .scalar_int_is => |size| if (cg.intInfo(ty.scalarType(zcu))) |int_info| | 144997 | .scalar_int_is => |size| if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| 143177 | size.bitSize(cg.target) >= int_info.bits | 144998 | size.bitSize(cg.target) >= int_info.bits |
| 143178 | else | 144999 | else |
| ... | @@ -143185,6 +145006,13 @@ const Select = struct { | ... | @@ -143185,6 +145006,13 @@ const Select = struct { |
| 143185 | .signed => false, | 145006 | .signed => false, |
| 143186 | .unsigned => size.bitSize(cg.target) >= int_info.bits, | 145007 | .unsigned => size.bitSize(cg.target) >= int_info.bits, |
| 143187 | } else false, | 145008 | } else false, |
| | 145009 | .scalar => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and |
| | 145010 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| | 145011 | of_is.is.bitSize(cg.target) >= int_info.bits |
| | 145012 | else if (cg.floatBits(ty.scalarType(zcu))) |float_bits| |
| | 145013 | of_is.is.bitSize(cg.target) == float_bits |
| | 145014 | else |
| | 145015 | false, |
| 143188 | .scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and | 145016 | .scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and |
| 143189 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false, | 145017 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false, |
| 143190 | .scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and | 145018 | .scalar_signed_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and |
| ... | @@ -143206,6 +145034,13 @@ const Select = struct { | ... | @@ -143206,6 +145034,13 @@ const Select = struct { |
| 143206 | .scalar_exact_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and | 145034 | .scalar_exact_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and |
| 143207 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and | 145035 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| 143208 | of_is.is == int_info.bits else false, | 145036 | of_is.is == int_info.bits else false, |
| | 145037 | .multiple_scalar => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| | 145038 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| | 145039 | of_is.is.bitSize(cg.target) >= int_info.bits |
| | 145040 | else if (cg.floatBits(ty.scalarType(zcu))) |float_bits| |
| | 145041 | of_is.is.bitSize(cg.target) == float_bits |
| | 145042 | else |
| | 145043 | false, |
| 143209 | .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and | 145044 | .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 143210 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false, | 145045 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false, |
| 143211 | .multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and | 145046 | .multiple_scalar_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| ... | @@ -143557,6 +145392,7 @@ const Select = struct { | ... | @@ -143557,6 +145392,7 @@ const Select = struct { |
| 143557 | f64_0x1p52_0x1p84_mem, | 145392 | f64_0x1p52_0x1p84_mem, |
| 143558 | u32_0x1p52_hi_0x1p84_hi_0_0_mem, | 145393 | u32_0x1p52_hi_0x1p84_hi_0_0_mem, |
| 143559 | f32_0_0x1p64_mem, | 145394 | f32_0_0x1p64_mem, |
| | 145395 | pshufb_splat_mem: struct { of: Memory.Size = .none, size: Memory.Size }, |
| 143560 | pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size }, | 145396 | pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size }, |
| 143561 | pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size }, | 145397 | pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size }, |
| 143562 | pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 }, | 145398 | pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 }, |
| ... | @@ -143809,6 +145645,26 @@ const Select = struct { | ... | @@ -143809,6 +145645,26 @@ const Select = struct { |
| 143809 | (try pt.floatValue(.f32, @as(f32, 0x1p64))).toIntern(), | 145645 | (try pt.floatValue(.f32, @as(f32, 0x1p64))).toIntern(), |
| 143810 | } }, | 145646 | } }, |
| 143811 | } }))), true }, | 145647 | } }))), true }, |
| | 145648 | .pshufb_splat_mem => |splat_spec| { |
| | 145649 | const zcu = pt.zcu; |
| | 145650 | assert(spec.type.isVector(zcu)); |
| | 145651 | assert(spec.type.childType(zcu).toIntern() == .u8_type); |
| | 145652 | var elem_buf: [32]u8 = @splat(1 << 7); |
| | 145653 | const elems = elem_buf[0..spec.type.vectorLen(zcu)]; |
| | 145654 | const of_bytes: u32 = @intCast(switch (splat_spec.of) { |
| | 145655 | .none => elems.len, |
| | 145656 | else => |of| @divExact(of.bitSize(cg.target), 8), |
| | 145657 | }); |
| | 145658 | const size_bytes: u32 = @intCast(@divExact(splat_spec.size.bitSize(cg.target), 8)); |
| | 145659 | var index: u32 = 0; |
| | 145660 | while (index < of_bytes) : (index += size_bytes) for (0..size_bytes) |byte_off| { |
| | 145661 | elems[index + byte_off] = @as(u4, @truncate(byte_off)); |
| | 145662 | }; |
| | 145663 | return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ |
| | 145664 | .ty = spec.type.toIntern(), |
| | 145665 | .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, |
| | 145666 | } }))), true }; |
| | 145667 | }, |
| 143812 | .pshufb_trunc_mem => |trunc_spec| { | 145668 | .pshufb_trunc_mem => |trunc_spec| { |
| 143813 | const zcu = pt.zcu; | 145669 | const zcu = pt.zcu; |
| 143814 | assert(spec.type.isVector(zcu)); | 145670 | assert(spec.type.isVector(zcu)); |