| ... | ... | @@ -2408,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2408 | 2408 | } |
| 2409 | 2409 | |
| 2410 | 2410 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2411 | | @setEvalBranchQuota(20_000); |
| 2411 | @setEvalBranchQuota(20_200); |
| 2412 | 2412 | const pt = cg.pt; |
| 2413 | 2413 | const zcu = pt.zcu; |
| 2414 | 2414 | const ip = &zcu.intern_pool; |
| ... | ... | @@ -2444,9 +2444,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2444 | 2444 | try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); |
| 2445 | 2445 | switch (air_tags[@intFromEnum(inst)]) { |
| 2446 | 2446 | // zig fmt: off |
| 2447 | | .bitcast => try cg.airBitCast(inst), |
| 2448 | | |
| 2449 | | .splat => try cg.airSplat(inst), |
| 2450 | 2447 | .select => try cg.airSelect(inst), |
| 2451 | 2448 | .shuffle => try cg.airShuffle(inst), |
| 2452 | 2449 | .reduce => try cg.airReduce(inst), |
| ... | ... | @@ -14818,6 +14815,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14818 | 14815 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ |
| 14819 | 14816 | .src_constraints = .{ .{ .exact_int = 1 }, .{ .exact_int = 1 }, .any }, |
| 14820 | 14817 | .patterns = &.{ |
| 14818 | .{ .src = .{ .mut_mem, .{ .imm = 0 }, .none } }, |
| 14821 | 14819 | .{ .src = .{ .to_mut_gpr, .{ .imm = 0 }, .none } }, |
| 14822 | 14820 | }, |
| 14823 | 14821 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| ... | ... | @@ -58735,6 +58733,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58735 | 58733 | }, .{ |
| 58736 | 58734 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 58737 | 58735 | .patterns = &.{ |
| 58736 | .{ .src = .{ .mut_mem, .none, .none } }, |
| 58738 | 58737 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 58739 | 58738 | }, |
| 58740 | 58739 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| ... | ... | @@ -63194,7 +63193,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 63194 | 63193 | } }, |
| 63195 | 63194 | }, .{ |
| 63196 | 63195 | .required_features = .{ .sse, null, null, null }, |
| 63197 | | .src_constraints = .{ .{ .vec = .xword }, .any, .any }, |
| 63196 | .src_constraints = .{ .{ .unsigned_int_vec = .xword }, .any, .any }, |
| 63198 | 63197 | .patterns = &.{ |
| 63199 | 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 | 63347 | } }) catch |err| switch (err) { |
| 63349 | 63348 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 63350 | 63349 | @tagName(air_tag), |
| 63351 | | cg.typeOf(ty_op.operand).fmt(pt), |
| 63350 | ty_op.ty.toType().fmt(pt), |
| 63352 | 63351 | ops[0].tracking(cg), |
| 63353 | 63352 | }), |
| 63354 | 63353 | else => |e| return e, |
| 63355 | 63354 | }; |
| 63356 | 63355 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 63357 | 63356 | }, |
| 63358 | | |
| 63357 | .bitcast => try cg.airBitCast(inst), |
| 63359 | 63358 | .block => { |
| 63360 | 63359 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 63361 | 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 | 71581 | }; |
| 71583 | 71582 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 71584 | 71583 | }, |
| 71585 | | |
| 71586 | | .cmp_vector, .cmp_vector_optimized => |air_tag| if (use_old) try cg.airCmpVector(inst) else fallback: { |
| 71587 | | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 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}); |
| 71584 | .sqrt => |air_tag| if (use_old) try cg.airSqrt(inst) else { |
| 71585 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 71586 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 78656 | 71587 | var res: [1]Temp = undefined; |
| 78657 | 71588 | cg.select(&res, &.{cg.typeOf(un_op)}, &ops, comptime &.{ .{ |
| 78658 | 71589 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -82366,15 +75297,465 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 82366 | 75297 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82367 | 75298 | } }, |
| 82368 | 75299 | }, .{ |
| 82369 | | .required_features = .{ .sse4_1, null, null, null }, |
| 82370 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 75300 | .required_features = .{ .sse4_1, null, null, null }, |
| 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 | 75746 | .patterns = &.{ |
| 82372 | 75747 | .{ .src = .{ .to_mem, .none, .none } }, |
| 82373 | 75748 | }, |
| 75749 | .call_frame = .{ .alignment = .@"16" }, |
| 82374 | 75750 | .extra_temps = .{ |
| 82375 | 75751 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82376 | | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 82377 | | .unused, |
| 75752 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 75753 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 75754 | else => unreachable, |
| 75755 | .down => "floorq", |
| 75756 | .up => "ceilq", |
| 75757 | .zero => "truncq", |
| 75758 | } } } }, |
| 82378 | 75759 | .unused, |
| 82379 | 75760 | .unused, |
| 82380 | 75761 | .unused, |
| ... | ... | @@ -82385,1052 +75766,7256 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 82385 | 75766 | .unused, |
| 82386 | 75767 | }, |
| 82387 | 75768 | .dst_temps = .{ .mem, .unused }, |
| 82388 | | .clobbers = .{ .eflags = true }, |
| 75769 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82389 | 75770 | .each = .{ .once = &.{ |
| 82390 | 75771 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82391 | | .{ .@"0:", ._pd, .round, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), .rm(.{ |
| 82392 | | .direction = direction, |
| 82393 | | .precision = .inexact, |
| 82394 | | }), ._ }, |
| 82395 | | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 75772 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 75773 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 75774 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82396 | 75775 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82397 | 75776 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82398 | 75777 | } }, |
| 82399 | | }, .{ |
| 82400 | | .required_features = .{ .avx, null, null, null }, |
| 82401 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 82402 | | .patterns = &.{ |
| 82403 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 75778 | } }, |
| 75779 | }) catch |err| switch (err) { |
| 75780 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 75781 | @tagName(air_tag), |
| 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" }, |
| 82406 | | .extra_temps = .{ |
| 82407 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82408 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 82409 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 76829 | ) catch |err| switch (err) { |
| 76830 | error.SelectFailed => unreachable, |
| 76831 | else => |e| return e, |
| 76832 | }; |
| 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 | 79873 | else => unreachable, |
| 82411 | | .down => "floor", |
| 82412 | | .up => "ceil", |
| 82413 | | .zero => "trunc", |
| 82414 | | } } } }, |
| 82415 | | .unused, |
| 82416 | | .unused, |
| 82417 | | .unused, |
| 82418 | | .unused, |
| 82419 | | .unused, |
| 82420 | | .unused, |
| 82421 | | .unused, |
| 82422 | | .unused, |
| 82423 | | }, |
| 82424 | | .dst_temps = .{ .mem, .unused }, |
| 82425 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82426 | | .each = .{ .once = &.{ |
| 82427 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82428 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82429 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82430 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82431 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 82432 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82433 | | } }, |
| 82434 | | }, .{ |
| 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) { |
| 79874 | .e => &.{ |
| 79875 | .{ ._, ._, .xor, .dst0b, .src1b, ._, ._ }, |
| 79876 | .{ ._, ._, .not, .dst0b, ._, ._, ._ }, |
| 79877 | }, |
| 79878 | .ne => &.{ |
| 79879 | .{ ._, ._, .xor, .dst0b, .src1b, ._, ._ }, |
| 79880 | }, |
| 79881 | } }, |
| 79882 | }, .{ |
| 79883 | .src_constraints = .{ .{ .bool_vec = .word }, .{ .bool_vec = .word }, .any }, |
| 79884 | .patterns = &.{ |
| 79885 | .{ .src = .{ .mut_mem, .imm16, .none } }, |
| 79886 | .{ .src = .{ .imm16, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 79887 | .{ .src = .{ .to_mut_gpr, .imm16, .none } }, |
| 79888 | .{ .src = .{ .imm16, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 79889 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, |
| 79890 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 79891 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, |
| 79892 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 79893 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, |
| 79894 | }, |
| 79895 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 79896 | .clobbers = .{ .eflags = true }, |
| 79897 | .each = .{ .once = switch (cc) { |
| 82445 | 79898 | else => unreachable, |
| 82446 | | .down => "floor", |
| 82447 | | .up => "ceil", |
| 82448 | | .zero => "trunc", |
| 82449 | | } } } }, |
| 82450 | | .unused, |
| 82451 | | .unused, |
| 82452 | | .unused, |
| 82453 | | .unused, |
| 82454 | | .unused, |
| 82455 | | .unused, |
| 82456 | | .unused, |
| 82457 | | .unused, |
| 82458 | | }, |
| 82459 | | .dst_temps = .{ .mem, .unused }, |
| 82460 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82461 | | .each = .{ .once = &.{ |
| 82462 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82463 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82464 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82465 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82466 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 82467 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82468 | | } }, |
| 82469 | | }, .{ |
| 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) { |
| 79899 | .e => &.{ |
| 79900 | .{ ._, ._, .xor, .dst0w, .src1w, ._, ._ }, |
| 79901 | .{ ._, ._, .not, .dst0w, ._, ._, ._ }, |
| 79902 | }, |
| 79903 | .ne => &.{ |
| 79904 | .{ ._, ._, .xor, .dst0w, .src1w, ._, ._ }, |
| 79905 | }, |
| 79906 | } }, |
| 79907 | }, .{ |
| 79908 | .src_constraints = .{ .{ .bool_vec = .dword }, .{ .bool_vec = .dword }, .any }, |
| 79909 | .patterns = &.{ |
| 79910 | .{ .src = .{ .mut_mem, .imm32, .none } }, |
| 79911 | .{ .src = .{ .imm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 79912 | .{ .src = .{ .to_mut_gpr, .imm32, .none } }, |
| 79913 | .{ .src = .{ .imm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 79914 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, |
| 79915 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 79916 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, |
| 79917 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 79918 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, |
| 79919 | }, |
| 79920 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 79921 | .clobbers = .{ .eflags = true }, |
| 79922 | .each = .{ .once = switch (cc) { |
| 82480 | 79923 | else => unreachable, |
| 82481 | | .down => "floor", |
| 82482 | | .up => "ceil", |
| 82483 | | .zero => "trunc", |
| 82484 | | } } } }, |
| 82485 | | .unused, |
| 82486 | | .unused, |
| 82487 | | .unused, |
| 82488 | | .unused, |
| 82489 | | .unused, |
| 82490 | | .unused, |
| 82491 | | .unused, |
| 82492 | | .unused, |
| 82493 | | }, |
| 82494 | | .dst_temps = .{ .mem, .unused }, |
| 82495 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82496 | | .each = .{ .once = &.{ |
| 82497 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82498 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 82499 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82500 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82501 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82502 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 82503 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82504 | | } }, |
| 82505 | | }, .{ |
| 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) { |
| 79924 | .e => &.{ |
| 79925 | .{ ._, ._, .xor, .dst0d, .src1d, ._, ._ }, |
| 79926 | .{ ._, ._, .not, .dst0d, ._, ._, ._ }, |
| 79927 | }, |
| 79928 | .ne => &.{ |
| 79929 | .{ ._, ._, .xor, .dst0d, .src1d, ._, ._ }, |
| 79930 | }, |
| 79931 | } }, |
| 79932 | }, .{ |
| 79933 | .required_features = .{ .@"64bit", null, null, null }, |
| 79934 | .src_constraints = .{ .{ .bool_vec = .qword }, .{ .bool_vec = .qword }, .any }, |
| 79935 | .patterns = &.{ |
| 79936 | .{ .src = .{ .mut_mem, .simm32, .none } }, |
| 79937 | .{ .src = .{ .simm32, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 79938 | .{ .src = .{ .to_mut_gpr, .simm32, .none } }, |
| 79939 | .{ .src = .{ .simm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 79940 | .{ .src = .{ .mut_mem, .to_gpr, .none } }, |
| 79941 | .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } }, |
| 79942 | .{ .src = .{ .to_mut_gpr, .mem, .none } }, |
| 79943 | .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, |
| 79944 | .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, |
| 79945 | }, |
| 79946 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 79947 | .clobbers = .{ .eflags = true }, |
| 79948 | .each = .{ .once = switch (cc) { |
| 82516 | 79949 | else => unreachable, |
| 82517 | | .down => "__floorx", |
| 82518 | | .up => "__ceilx", |
| 82519 | | .zero => "__truncx", |
| 82520 | | } } } }, |
| 82521 | | .unused, |
| 82522 | | .unused, |
| 82523 | | .unused, |
| 82524 | | .unused, |
| 82525 | | .unused, |
| 82526 | | .unused, |
| 82527 | | .unused, |
| 82528 | | .unused, |
| 82529 | | }, |
| 82530 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 82531 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82532 | | .each = .{ .once = &.{ |
| 82533 | | .{ ._, .v_dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, |
| 82534 | | .{ ._, .v_dqa, .mov, .mem(.tmp1x), .tmp0x, ._, ._ }, |
| 82535 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82536 | | } }, |
| 82537 | | }, .{ |
| 82538 | | .required_features = .{ .sse2, .x87, null, null }, |
| 82539 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 82540 | | .patterns = &.{ |
| 82541 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82542 | | }, |
| 82543 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 82544 | | .extra_temps = .{ |
| 82545 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 82546 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 82547 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 79950 | .e => &.{ |
| 79951 | .{ ._, ._, .xor, .dst0q, .src1q, ._, ._ }, |
| 79952 | .{ ._, ._, .not, .dst0q, ._, ._, ._ }, |
| 79953 | }, |
| 79954 | .ne => &.{ |
| 79955 | .{ ._, ._, .xor, .dst0q, .src1q, ._, ._ }, |
| 79956 | }, |
| 79957 | } }, |
| 79958 | }, .{ |
| 79959 | .src_constraints = .{ .any_bool_vec, .any_bool_vec, .any }, |
| 79960 | .patterns = &.{ |
| 79961 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 79962 | }, |
| 79963 | .extra_temps = .{ |
| 79964 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 79965 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 79966 | .unused, |
| 79967 | .unused, |
| 79968 | .unused, |
| 79969 | .unused, |
| 79970 | .unused, |
| 79971 | .unused, |
| 79972 | .unused, |
| 79973 | .unused, |
| 79974 | .unused, |
| 79975 | }, |
| 79976 | .dst_temps = .{ .mem, .unused }, |
| 79977 | .clobbers = .{ .eflags = true }, |
| 79978 | .each = .{ .once = switch (cc) { |
| 82548 | 79979 | else => unreachable, |
| 82549 | | .down => "__floorx", |
| 82550 | | .up => "__ceilx", |
| 82551 | | .zero => "__truncx", |
| 82552 | | } } } }, |
| 82553 | | .unused, |
| 82554 | | .unused, |
| 82555 | | .unused, |
| 82556 | | .unused, |
| 82557 | | .unused, |
| 82558 | | .unused, |
| 82559 | | .unused, |
| 82560 | | .unused, |
| 82561 | | }, |
| 82562 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 82563 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82564 | | .each = .{ .once = &.{ |
| 82565 | | .{ ._, ._dqa, .mov, .tmp0x, .mem(.src0x), ._, ._ }, |
| 82566 | | .{ ._, ._dqa, .mov, .mem(.tmp1x), .tmp0x, ._, ._ }, |
| 82567 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82568 | | } }, |
| 82569 | | }, .{ |
| 82570 | | .required_features = .{ .sse, .x87, null, null }, |
| 82571 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 82572 | | .patterns = &.{ |
| 82573 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82574 | | }, |
| 82575 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 82576 | | .extra_temps = .{ |
| 82577 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 82578 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 82579 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 79980 | .e => &.{ |
| 79981 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 79982 | .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ }, |
| 79983 | .{ ._, ._, .xor, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ }, |
| 79984 | .{ ._, ._, .not, .tmp1p, ._, ._, ._ }, |
| 79985 | .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ }, |
| 79986 | .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ }, |
| 79987 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 79988 | }, |
| 79989 | .ne => &.{ |
| 79990 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 79991 | .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ }, |
| 79992 | .{ ._, ._, .xor, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ }, |
| 79993 | .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ }, |
| 79994 | .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ }, |
| 79995 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 79996 | }, |
| 79997 | } }, |
| 79998 | }, .{ |
| 79999 | .required_features = .{ .avx, null, null, null }, |
| 80000 | .src_constraints = .{ |
| 80001 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, |
| 80002 | .{ .scalar_int = .{ .of = .xword, .is = .byte } }, |
| 80003 | .any, |
| 80004 | }, |
| 80005 | .patterns = &.{ |
| 80006 | .{ .src = .{ .to_sse, .mem, .none } }, |
| 80007 | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 80008 | .{ .src = .{ .to_sse, .to_sse, .none } }, |
| 80009 | }, |
| 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 | 80380 | else => unreachable, |
| 82581 | | .down => "__floorx", |
| 82582 | | .up => "__ceilx", |
| 82583 | | .zero => "__truncx", |
| 82584 | | } } } }, |
| 82585 | | .unused, |
| 82586 | | .unused, |
| 82587 | | .unused, |
| 82588 | | .unused, |
| 82589 | | .unused, |
| 82590 | | .unused, |
| 82591 | | .unused, |
| 82592 | | .unused, |
| 82593 | | }, |
| 82594 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 82595 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82596 | | .each = .{ .once = &.{ |
| 82597 | | .{ ._, ._ps, .mova, .tmp0x, .mem(.src0x), ._, ._ }, |
| 82598 | | .{ ._, ._ps, .mova, .mem(.tmp1x), .tmp0x, ._, ._ }, |
| 82599 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82600 | | } }, |
| 82601 | | }, .{ |
| 82602 | | .required_features = .{ .avx, .x87, null, null }, |
| 82603 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 82604 | | .patterns = &.{ |
| 82605 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82606 | | }, |
| 82607 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 82608 | | .extra_temps = .{ |
| 82609 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82610 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 82611 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 82612 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 80381 | .e => &.{ |
| 80382 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80383 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80384 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 80385 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 80386 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 80387 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, |
| 80388 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 80389 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 80390 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80391 | }, |
| 80392 | .ne => &.{ |
| 80393 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80394 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80395 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 80396 | .{ ._, .vp_b, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 80397 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 80398 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 80399 | .{ ._, ._, .mov, .memi(.dst0d, .tmp1), .tmp2d, ._, ._ }, |
| 80400 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 80401 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 80402 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80403 | }, |
| 80404 | } }, |
| 80405 | }, .{ |
| 80406 | .required_features = .{ .avx2, null, null, null }, |
| 80407 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 80408 | .patterns = &.{ |
| 80409 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 80410 | }, |
| 80411 | .extra_temps = .{ |
| 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 | 80427 | else => unreachable, |
| 82614 | | .down => "__floorx", |
| 82615 | | .up => "__ceilx", |
| 82616 | | .zero => "__truncx", |
| 82617 | | } } } }, |
| 82618 | | .unused, |
| 82619 | | .unused, |
| 82620 | | .unused, |
| 82621 | | .unused, |
| 82622 | | .unused, |
| 82623 | | .unused, |
| 82624 | | .unused, |
| 82625 | | }, |
| 82626 | | .dst_temps = .{ .mem, .unused }, |
| 82627 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82628 | | .each = .{ .once = &.{ |
| 82629 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82630 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82631 | | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 82632 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 82633 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 82634 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 82635 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82636 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82637 | | } }, |
| 82638 | | }, .{ |
| 82639 | | .required_features = .{ .sse2, .x87, null, null }, |
| 82640 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 82641 | | .patterns = &.{ |
| 82642 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82643 | | }, |
| 82644 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 82645 | | .extra_temps = .{ |
| 82646 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82647 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 82648 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 82649 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 80428 | .e => &.{ |
| 80429 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80430 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80431 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 80432 | .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 80433 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, |
| 80434 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 80435 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 80436 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 80437 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 80438 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80439 | }, |
| 80440 | .ne => &.{ |
| 80441 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80442 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80443 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 80444 | .{ ._, .vp_w, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 80445 | .{ ._, .vp_b, .ackssw, .tmp3y, .tmp3y, .tmp3y, ._ }, |
| 80446 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 80447 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 80448 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 80449 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 80450 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 80451 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80452 | }, |
| 80453 | } }, |
| 80454 | }, .{ |
| 80455 | .required_features = .{ .avx2, null, null, null }, |
| 80456 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 80457 | .patterns = &.{ |
| 80458 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 80459 | }, |
| 80460 | .extra_temps = .{ |
| 80461 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80462 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 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 | 80476 | else => unreachable, |
| 82651 | | .down => "__floorx", |
| 82652 | | .up => "__ceilx", |
| 82653 | | .zero => "__truncx", |
| 82654 | | } } } }, |
| 82655 | | .unused, |
| 82656 | | .unused, |
| 82657 | | .unused, |
| 82658 | | .unused, |
| 82659 | | .unused, |
| 82660 | | .unused, |
| 82661 | | .unused, |
| 82662 | | }, |
| 82663 | | .dst_temps = .{ .mem, .unused }, |
| 82664 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82665 | | .each = .{ .once = &.{ |
| 82666 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82667 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82668 | | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 82669 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 82670 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 82671 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 82672 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82673 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82674 | | } }, |
| 82675 | | }, .{ |
| 82676 | | .required_features = .{ .sse, .x87, null, null }, |
| 82677 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 82678 | | .patterns = &.{ |
| 82679 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82680 | | }, |
| 82681 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 82682 | | .extra_temps = .{ |
| 82683 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82684 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 82685 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 82686 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 80477 | .e => &.{ |
| 80478 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80479 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80480 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 80481 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 80482 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 80483 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80484 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 80485 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 80486 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80487 | }, |
| 80488 | .ne => &.{ |
| 80489 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80490 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80491 | .{ .@"0:", .v_dqu, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ }, |
| 80492 | .{ ._, .vp_d, .cmpeq, .tmp3y, .tmp3y, .memia(.src1y, .tmp0, .add_size), ._ }, |
| 80493 | .{ ._, .v_ps, .movmsk, .tmp2d, .tmp3y, ._, ._ }, |
| 80494 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 80495 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80496 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 80497 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 80498 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80499 | }, |
| 80500 | } }, |
| 80501 | }, .{ |
| 80502 | .required_features = .{ .avx2, null, null, null }, |
| 80503 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| 80504 | .patterns = &.{ |
| 80505 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 80506 | }, |
| 80507 | .extra_temps = .{ |
| 80508 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80509 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 80510 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 80511 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 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 | 80641 | else => unreachable, |
| 82688 | | .down => "__floorx", |
| 82689 | | .up => "__ceilx", |
| 82690 | | .zero => "__truncx", |
| 82691 | | } } } }, |
| 82692 | | .unused, |
| 82693 | | .unused, |
| 82694 | | .unused, |
| 82695 | | .unused, |
| 82696 | | .unused, |
| 82697 | | .unused, |
| 82698 | | .unused, |
| 82699 | | }, |
| 82700 | | .dst_temps = .{ .mem, .unused }, |
| 82701 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82702 | | .each = .{ .once = &.{ |
| 82703 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82704 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82705 | | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 82706 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 82707 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 82708 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 82709 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82710 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82711 | | } }, |
| 82712 | | }, .{ |
| 82713 | | .required_features = .{ .sse, null, null, null }, |
| 82714 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 82715 | | .patterns = &.{ |
| 82716 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 82717 | | }, |
| 82718 | | .call_frame = .{ .alignment = .@"16" }, |
| 82719 | | .extra_temps = .{ |
| 82720 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 80642 | .e => &.{ |
| 80643 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80644 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80645 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80646 | .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 80647 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| 80648 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 80649 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80650 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 80651 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80652 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80653 | }, |
| 80654 | .ne => &.{ |
| 80655 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80656 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80657 | .{ .@"0:", .v_dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80658 | .{ ._, .vp_w, .cmpeq, .tmp3x, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 80659 | .{ ._, .vp_b, .ackssw, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| 80660 | .{ ._, .vp_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 80661 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 80662 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80663 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 80664 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80665 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80666 | }, |
| 80667 | } }, |
| 80668 | }, .{ |
| 80669 | .required_features = .{ .avx, null, null, null }, |
| 80670 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 80671 | .patterns = &.{ |
| 80672 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 80673 | }, |
| 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 | 80690 | else => unreachable, |
| 82722 | | .down => "floorq", |
| 82723 | | .up => "ceilq", |
| 82724 | | .zero => "truncq", |
| 82725 | | } } } }, |
| 82726 | | .unused, |
| 82727 | | .unused, |
| 82728 | | .unused, |
| 82729 | | .unused, |
| 82730 | | .unused, |
| 82731 | | .unused, |
| 82732 | | .unused, |
| 82733 | | .unused, |
| 82734 | | .unused, |
| 82735 | | .unused, |
| 82736 | | }, |
| 82737 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 82738 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82739 | | .each = .{ .once = &.{ |
| 82740 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 82741 | | } }, |
| 82742 | | }, .{ |
| 82743 | | .required_features = .{ .avx, null, null, null }, |
| 82744 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 82745 | | .patterns = &.{ |
| 82746 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82747 | | }, |
| 82748 | | .call_frame = .{ .alignment = .@"16" }, |
| 82749 | | .extra_temps = .{ |
| 82750 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82751 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 82752 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 80691 | .e => &.{ |
| 80692 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80693 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80694 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80695 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80696 | .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 80697 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 80698 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 80699 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 80700 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 80701 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80702 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 80703 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 80704 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 80705 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 80706 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80707 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80708 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80709 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80710 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 80711 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 80712 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80713 | }, |
| 80714 | .ne => &.{ |
| 80715 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80716 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80717 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80718 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80719 | .{ ._, .vp_d, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 80720 | .{ ._, .v_ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 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 | 80761 | else => unreachable, |
| 82754 | | .down => "floorq", |
| 82755 | | .up => "ceilq", |
| 82756 | | .zero => "truncq", |
| 82757 | | } } } }, |
| 82758 | | .unused, |
| 82759 | | .unused, |
| 82760 | | .unused, |
| 82761 | | .unused, |
| 82762 | | .unused, |
| 82763 | | .unused, |
| 82764 | | .unused, |
| 82765 | | .unused, |
| 82766 | | }, |
| 82767 | | .dst_temps = .{ .mem, .unused }, |
| 82768 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82769 | | .each = .{ .once = &.{ |
| 82770 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82771 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82772 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82773 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82774 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82775 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82776 | | } }, |
| 82777 | | }, .{ |
| 82778 | | .required_features = .{ .sse2, null, null, null }, |
| 82779 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 82780 | | .patterns = &.{ |
| 82781 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82782 | | }, |
| 82783 | | .call_frame = .{ .alignment = .@"16" }, |
| 82784 | | .extra_temps = .{ |
| 82785 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82786 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 82787 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 80762 | .e => &.{ |
| 80763 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80764 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80765 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80766 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80767 | .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 80768 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 80769 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 80770 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 80771 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 80772 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80773 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 80774 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 80775 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 80776 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 80777 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80778 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80779 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80780 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80781 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 80782 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 80783 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80784 | }, |
| 80785 | .ne => &.{ |
| 80786 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80787 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80788 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80789 | .{ .@"0:", .v_dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80790 | .{ ._, .vp_q, .cmpeq, .tmp4x, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._ }, |
| 80791 | .{ ._, .v_pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 80792 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, |
| 80793 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 80794 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 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 | 80832 | else => unreachable, |
| 82789 | | .down => "floorq", |
| 82790 | | .up => "ceilq", |
| 82791 | | .zero => "truncq", |
| 82792 | | } } } }, |
| 82793 | | .unused, |
| 82794 | | .unused, |
| 82795 | | .unused, |
| 82796 | | .unused, |
| 82797 | | .unused, |
| 82798 | | .unused, |
| 82799 | | .unused, |
| 82800 | | .unused, |
| 82801 | | }, |
| 82802 | | .dst_temps = .{ .mem, .unused }, |
| 82803 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82804 | | .each = .{ .once = &.{ |
| 82805 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82806 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82807 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82808 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82809 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82810 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82811 | | } }, |
| 82812 | | }, .{ |
| 82813 | | .required_features = .{ .sse, null, null, null }, |
| 82814 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 82815 | | .patterns = &.{ |
| 82816 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 82817 | | }, |
| 82818 | | .call_frame = .{ .alignment = .@"16" }, |
| 82819 | | .extra_temps = .{ |
| 82820 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 82821 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 82822 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = switch (direction) { |
| 80833 | .e => &.{ |
| 80834 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80835 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80836 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80837 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 80838 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 80839 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 80840 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 80841 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80842 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80843 | }, |
| 80844 | .ne => &.{ |
| 80845 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80846 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80847 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80848 | .{ ._, .p_b, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 80849 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 80850 | .{ ._, ._, .not, .tmp2d, ._, ._, ._ }, |
| 80851 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 80852 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 80853 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80854 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80855 | }, |
| 80856 | } }, |
| 80857 | }, .{ |
| 80858 | .required_features = .{ .sse2, null, null, null }, |
| 80859 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 80860 | .patterns = &.{ |
| 80861 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 80862 | }, |
| 80863 | .extra_temps = .{ |
| 80864 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80865 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 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 | 80879 | else => unreachable, |
| 82824 | | .down => "floorq", |
| 82825 | | .up => "ceilq", |
| 82826 | | .zero => "truncq", |
| 82827 | | } } } }, |
| 82828 | | .unused, |
| 82829 | | .unused, |
| 82830 | | .unused, |
| 82831 | | .unused, |
| 82832 | | .unused, |
| 82833 | | .unused, |
| 82834 | | .unused, |
| 82835 | | .unused, |
| 82836 | | }, |
| 82837 | | .dst_temps = .{ .mem, .unused }, |
| 82838 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 82839 | | .each = .{ .once = &.{ |
| 82840 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 82841 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 82842 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 82843 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 82844 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 82845 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 82846 | | } }, |
| 82847 | | } }, |
| 82848 | | }) catch |err| switch (err) { |
| 82849 | | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 82850 | | @tagName(air_tag), |
| 82851 | | cg.typeOf(un_op).fmt(pt), |
| 82852 | | ops[0].tracking(cg), |
| 82853 | | }), |
| 82854 | | else => |e| return e, |
| 82855 | | }; |
| 82856 | | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 82857 | | }, |
| 82858 | | .neg, .neg_optimized => |air_tag| if (use_old) try cg.airFloatSign(inst, .neg) else { |
| 82859 | | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 82860 | | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 82861 | | var res: [1]Temp = undefined; |
| 82862 | | cg.select(&res, &.{cg.typeOf(un_op)}, &ops, comptime &.{ .{ |
| 82863 | | .required_features = .{ .avx, null, null, null }, |
| 82864 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 82865 | | .patterns = &.{ |
| 82866 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 82867 | | }, |
| 82868 | | .extra_temps = .{ |
| 82869 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 82870 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 82871 | | .unused, |
| 82872 | | .unused, |
| 82873 | | .unused, |
| 82874 | | .unused, |
| 82875 | | .unused, |
| 82876 | | .unused, |
| 82877 | | .unused, |
| 82878 | | .unused, |
| 82879 | | .unused, |
| 82880 | | }, |
| 82881 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 82882 | | .each = .{ .once = &.{ |
| 82883 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 82884 | | .{ ._, .v_ps, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 82885 | | } }, |
| 82886 | | }, .{ |
| 82887 | | .required_features = .{ .sse, null, null, null }, |
| 82888 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 82889 | | .patterns = &.{ |
| 82890 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 82891 | | }, |
| 82892 | | .extra_temps = .{ |
| 82893 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 82894 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 82895 | | .unused, |
| 82896 | | .unused, |
| 82897 | | .unused, |
| 82898 | | .unused, |
| 82899 | | .unused, |
| 82900 | | .unused, |
| 82901 | | .unused, |
| 82902 | | .unused, |
| 82903 | | .unused, |
| 82904 | | }, |
| 82905 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 82906 | | .each = .{ .once = &.{ |
| 82907 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 82908 | | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 82909 | | } }, |
| 82910 | | }, .{ |
| 82911 | | .required_features = .{ .avx, null, null, null }, |
| 82912 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 82913 | | .patterns = &.{ |
| 82914 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 82915 | | }, |
| 82916 | | .extra_temps = .{ |
| 82917 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 82918 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 82919 | | .unused, |
| 82920 | | .unused, |
| 82921 | | .unused, |
| 82922 | | .unused, |
| 82923 | | .unused, |
| 82924 | | .unused, |
| 82925 | | .unused, |
| 82926 | | .unused, |
| 82927 | | .unused, |
| 82928 | | }, |
| 82929 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 82930 | | .each = .{ .once = &.{ |
| 82931 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 82932 | | .{ ._, .v_ps, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 82933 | | } }, |
| 82934 | | }, .{ |
| 82935 | | .required_features = .{ .avx, null, null, null }, |
| 82936 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 82937 | | .patterns = &.{ |
| 82938 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 82939 | | }, |
| 82940 | | .extra_temps = .{ |
| 82941 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 82942 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 82943 | | .unused, |
| 82944 | | .unused, |
| 82945 | | .unused, |
| 82946 | | .unused, |
| 82947 | | .unused, |
| 82948 | | .unused, |
| 82949 | | .unused, |
| 82950 | | .unused, |
| 82951 | | .unused, |
| 82952 | | }, |
| 82953 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 82954 | | .each = .{ .once = &.{ |
| 82955 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 82956 | | .{ ._, .v_pd, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 82957 | | } }, |
| 82958 | | }, .{ |
| 82959 | | .required_features = .{ .sse2, null, null, null }, |
| 82960 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 82961 | | .patterns = &.{ |
| 82962 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 82963 | | }, |
| 82964 | | .extra_temps = .{ |
| 82965 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 82966 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 82967 | | .unused, |
| 82968 | | .unused, |
| 82969 | | .unused, |
| 82970 | | .unused, |
| 82971 | | .unused, |
| 82972 | | .unused, |
| 82973 | | .unused, |
| 82974 | | .unused, |
| 82975 | | .unused, |
| 82976 | | }, |
| 82977 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 82978 | | .each = .{ .once = &.{ |
| 82979 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 82980 | | .{ ._, ._pd, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 82981 | | } }, |
| 82982 | | }, .{ |
| 82983 | | .required_features = .{ .avx, null, null, null }, |
| 82984 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 82985 | | .patterns = &.{ |
| 82986 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 82987 | | }, |
| 82988 | | .extra_temps = .{ |
| 82989 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 82990 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 82991 | | .unused, |
| 82992 | | .unused, |
| 82993 | | .unused, |
| 82994 | | .unused, |
| 82995 | | .unused, |
| 82996 | | .unused, |
| 82997 | | .unused, |
| 82998 | | .unused, |
| 82999 | | .unused, |
| 83000 | | }, |
| 83001 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 83002 | | .each = .{ .once = &.{ |
| 83003 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83004 | | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 83005 | | } }, |
| 83006 | | }, .{ |
| 83007 | | .required_features = .{ .x87, null, null, null }, |
| 83008 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 83009 | | .patterns = &.{ |
| 83010 | | .{ .src = .{ .mem, .none, .none } }, |
| 83011 | | .{ .src = .{ .to_x87, .none, .none } }, |
| 83012 | | }, |
| 83013 | | .extra_temps = .{ |
| 83014 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 83015 | | .unused, |
| 83016 | | .unused, |
| 83017 | | .unused, |
| 83018 | | .unused, |
| 83019 | | .unused, |
| 83020 | | .unused, |
| 83021 | | .unused, |
| 83022 | | .unused, |
| 83023 | | .unused, |
| 83024 | | .unused, |
| 83025 | | }, |
| 83026 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused }, |
| 83027 | | .each = .{ .once = &.{ |
| 83028 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 83029 | | .{ ._, .f_, .chs, ._, ._, ._, ._ }, |
| 83030 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 83031 | | } }, |
| 83032 | | }, .{ |
| 83033 | | .required_features = .{ .avx, null, null, null }, |
| 83034 | | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, |
| 83035 | | .patterns = &.{ |
| 83036 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 83037 | | }, |
| 83038 | | .extra_temps = .{ |
| 83039 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83040 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 83041 | | .unused, |
| 83042 | | .unused, |
| 83043 | | .unused, |
| 83044 | | .unused, |
| 83045 | | .unused, |
| 83046 | | .unused, |
| 83047 | | .unused, |
| 83048 | | .unused, |
| 83049 | | .unused, |
| 83050 | | }, |
| 83051 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 83052 | | .each = .{ .once = &.{ |
| 83053 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83054 | | .{ ._, .vp_, .xor, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 83055 | | } }, |
| 83056 | | }, .{ |
| 83057 | | .required_features = .{ .sse2, null, null, null }, |
| 83058 | | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, |
| 83059 | | .patterns = &.{ |
| 83060 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 83061 | | }, |
| 83062 | | .extra_temps = .{ |
| 83063 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83064 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 83065 | | .unused, |
| 83066 | | .unused, |
| 83067 | | .unused, |
| 83068 | | .unused, |
| 83069 | | .unused, |
| 83070 | | .unused, |
| 83071 | | .unused, |
| 83072 | | .unused, |
| 83073 | | .unused, |
| 83074 | | }, |
| 83075 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 83076 | | .each = .{ .once = &.{ |
| 83077 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83078 | | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 83079 | | } }, |
| 83080 | | }, .{ |
| 83081 | | .required_features = .{ .sse, null, null, null }, |
| 83082 | | .src_constraints = .{ .{ .scalar_any_float = .xword }, .any, .any }, |
| 83083 | | .patterns = &.{ |
| 83084 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 83085 | | }, |
| 83086 | | .extra_temps = .{ |
| 83087 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83088 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 83089 | | .unused, |
| 83090 | | .unused, |
| 83091 | | .unused, |
| 83092 | | .unused, |
| 83093 | | .unused, |
| 83094 | | .unused, |
| 83095 | | .unused, |
| 83096 | | .unused, |
| 83097 | | .unused, |
| 83098 | | }, |
| 83099 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 83100 | | .each = .{ .once = &.{ |
| 83101 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83102 | | .{ ._, ._ps, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 83103 | | } }, |
| 83104 | | }, .{ |
| 83105 | | .required_features = .{ .avx2, null, null, null }, |
| 83106 | | .src_constraints = .{ .{ .scalar_any_float = .yword }, .any, .any }, |
| 83107 | | .patterns = &.{ |
| 83108 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 83109 | | }, |
| 83110 | | .extra_temps = .{ |
| 83111 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83112 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 83113 | | .unused, |
| 83114 | | .unused, |
| 83115 | | .unused, |
| 83116 | | .unused, |
| 83117 | | .unused, |
| 83118 | | .unused, |
| 83119 | | .unused, |
| 83120 | | .unused, |
| 83121 | | .unused, |
| 83122 | | }, |
| 83123 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 83124 | | .each = .{ .once = &.{ |
| 83125 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83126 | | .{ ._, .vp_, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 83127 | | } }, |
| 83128 | | }, .{ |
| 83129 | | .required_features = .{ .avx, null, null, null }, |
| 83130 | | .src_constraints = .{ .{ .scalar_any_float = .yword }, .any, .any }, |
| 83131 | | .patterns = &.{ |
| 83132 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 83133 | | }, |
| 83134 | | .extra_temps = .{ |
| 83135 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 83136 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 83137 | | .unused, |
| 83138 | | .unused, |
| 83139 | | .unused, |
| 83140 | | .unused, |
| 83141 | | .unused, |
| 83142 | | .unused, |
| 83143 | | .unused, |
| 83144 | | .unused, |
| 83145 | | .unused, |
| 83146 | | }, |
| 83147 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 83148 | | .each = .{ .once = &.{ |
| 83149 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83150 | | .{ ._, .v_pd, .xor, .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 83151 | | } }, |
| 83152 | | }, .{ |
| 83153 | | .required_features = .{ .avx, null, null, null }, |
| 83154 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 83155 | | .patterns = &.{ |
| 83156 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83157 | | }, |
| 83158 | | .extra_temps = .{ |
| 83159 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83160 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 83161 | | .{ .kind = .{ .rc = .sse } }, |
| 83162 | | .{ .kind = .{ .rc = .sse } }, |
| 83163 | | .unused, |
| 83164 | | .unused, |
| 83165 | | .unused, |
| 83166 | | .unused, |
| 83167 | | .unused, |
| 83168 | | .unused, |
| 83169 | | .unused, |
| 83170 | | }, |
| 83171 | | .dst_temps = .{ .mem, .unused }, |
| 83172 | | .each = .{ .once = &.{ |
| 83173 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83174 | | .{ ._, .v_ps, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 83175 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83176 | | .{ .@"0:", .v_ps, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 83177 | | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| 83178 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 83179 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83180 | | } }, |
| 83181 | | }, .{ |
| 83182 | | .required_features = .{ .sse, null, null, null }, |
| 83183 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 83184 | | .patterns = &.{ |
| 83185 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83186 | | }, |
| 83187 | | .extra_temps = .{ |
| 83188 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83189 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 83190 | | .{ .kind = .{ .rc = .sse } }, |
| 83191 | | .{ .kind = .{ .rc = .sse } }, |
| 83192 | | .unused, |
| 83193 | | .unused, |
| 83194 | | .unused, |
| 83195 | | .unused, |
| 83196 | | .unused, |
| 83197 | | .unused, |
| 83198 | | .unused, |
| 83199 | | }, |
| 83200 | | .dst_temps = .{ .mem, .unused }, |
| 83201 | | .each = .{ .once = &.{ |
| 83202 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83203 | | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 83204 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83205 | | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 83206 | | .{ ._, ._ps, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83207 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 83208 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 83209 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83210 | | } }, |
| 83211 | | }, .{ |
| 83212 | | .required_features = .{ .avx, null, null, null }, |
| 83213 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 83214 | | .patterns = &.{ |
| 83215 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83216 | | }, |
| 83217 | | .extra_temps = .{ |
| 83218 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83219 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 83220 | | .{ .kind = .{ .rc = .sse } }, |
| 83221 | | .{ .kind = .{ .rc = .sse } }, |
| 83222 | | .unused, |
| 83223 | | .unused, |
| 83224 | | .unused, |
| 83225 | | .unused, |
| 83226 | | .unused, |
| 83227 | | .unused, |
| 83228 | | .unused, |
| 83229 | | }, |
| 83230 | | .dst_temps = .{ .mem, .unused }, |
| 83231 | | .each = .{ .once = &.{ |
| 83232 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83233 | | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 83234 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83235 | | .{ .@"0:", .v_pd, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 83236 | | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| 83237 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 83238 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83239 | | } }, |
| 83240 | | }, .{ |
| 83241 | | .required_features = .{ .sse2, null, null, null }, |
| 83242 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 83243 | | .patterns = &.{ |
| 83244 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83245 | | }, |
| 83246 | | .extra_temps = .{ |
| 83247 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83248 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 83249 | | .{ .kind = .{ .rc = .sse } }, |
| 83250 | | .{ .kind = .{ .rc = .sse } }, |
| 83251 | | .unused, |
| 83252 | | .unused, |
| 83253 | | .unused, |
| 83254 | | .unused, |
| 83255 | | .unused, |
| 83256 | | .unused, |
| 83257 | | .unused, |
| 83258 | | }, |
| 83259 | | .dst_temps = .{ .mem, .unused }, |
| 83260 | | .each = .{ .once = &.{ |
| 83261 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83262 | | .{ ._, ._pd, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 83263 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83264 | | .{ .@"0:", ._pd, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 83265 | | .{ ._, ._pd, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83266 | | .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 83267 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 83268 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83269 | | } }, |
| 83270 | | }, .{ |
| 83271 | | .required_features = .{ .avx2, null, null, null }, |
| 83272 | | .src_constraints = .{ .{ .multiple_scalar_any_float = .yword }, .any, .any }, |
| 83273 | | .patterns = &.{ |
| 83274 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83275 | | }, |
| 83276 | | .extra_temps = .{ |
| 83277 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83278 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 83279 | | .{ .kind = .{ .rc = .sse } }, |
| 83280 | | .{ .kind = .{ .rc = .sse } }, |
| 83281 | | .unused, |
| 83282 | | .unused, |
| 83283 | | .unused, |
| 83284 | | .unused, |
| 83285 | | .unused, |
| 83286 | | .unused, |
| 83287 | | .unused, |
| 83288 | | }, |
| 83289 | | .dst_temps = .{ .mem, .unused }, |
| 83290 | | .each = .{ .once = &.{ |
| 83291 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83292 | | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 83293 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83294 | | .{ .@"0:", .vp_, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 83295 | | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| 83296 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 83297 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83298 | | } }, |
| 83299 | | }, .{ |
| 83300 | | .required_features = .{ .avx, null, null, null }, |
| 83301 | | .src_constraints = .{ .{ .multiple_scalar_any_float = .yword }, .any, .any }, |
| 83302 | | .patterns = &.{ |
| 83303 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83304 | | }, |
| 83305 | | .extra_temps = .{ |
| 83306 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83307 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .yword } } }, |
| 83308 | | .{ .kind = .{ .rc = .sse } }, |
| 83309 | | .{ .kind = .{ .rc = .sse } }, |
| 83310 | | .unused, |
| 83311 | | .unused, |
| 83312 | | .unused, |
| 83313 | | .unused, |
| 83314 | | .unused, |
| 83315 | | .unused, |
| 83316 | | .unused, |
| 83317 | | }, |
| 83318 | | .dst_temps = .{ .mem, .unused }, |
| 83319 | | .each = .{ .once = &.{ |
| 83320 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83321 | | .{ ._, .v_pd, .mova, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| 83322 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83323 | | .{ .@"0:", .v_pd, .xor, .tmp3y, .tmp2y, .memia(.src0y, .tmp0, .add_size), ._ }, |
| 83324 | | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ }, |
| 83325 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 83326 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83327 | | } }, |
| 83328 | | }, .{ |
| 83329 | | .required_features = .{ .sse2, null, null, null }, |
| 83330 | | .src_constraints = .{ .{ .multiple_scalar_any_float = .xword }, .any, .any }, |
| 83331 | | .patterns = &.{ |
| 83332 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83333 | | }, |
| 83334 | | .extra_temps = .{ |
| 83335 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83336 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 83337 | | .{ .kind = .{ .rc = .sse } }, |
| 83338 | | .{ .kind = .{ .rc = .sse } }, |
| 83339 | | .unused, |
| 83340 | | .unused, |
| 83341 | | .unused, |
| 83342 | | .unused, |
| 83343 | | .unused, |
| 83344 | | .unused, |
| 83345 | | .unused, |
| 83346 | | }, |
| 83347 | | .dst_temps = .{ .mem, .unused }, |
| 83348 | | .each = .{ .once = &.{ |
| 83349 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83350 | | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 83351 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83352 | | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 83353 | | .{ ._, .p_, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83354 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 83355 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 83356 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83357 | | } }, |
| 83358 | | }, .{ |
| 83359 | | .required_features = .{ .sse, null, null, null }, |
| 83360 | | .src_constraints = .{ .{ .multiple_scalar_any_float = .xword }, .any, .any }, |
| 83361 | | .patterns = &.{ |
| 83362 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 83363 | | }, |
| 83364 | | .extra_temps = .{ |
| 83365 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83366 | | .{ .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } }, |
| 83367 | | .{ .kind = .{ .rc = .sse } }, |
| 83368 | | .{ .kind = .{ .rc = .sse } }, |
| 83369 | | .unused, |
| 83370 | | .unused, |
| 83371 | | .unused, |
| 83372 | | .unused, |
| 83373 | | .unused, |
| 83374 | | .unused, |
| 83375 | | .unused, |
| 83376 | | }, |
| 83377 | | .dst_temps = .{ .mem, .unused }, |
| 83378 | | .each = .{ .once = &.{ |
| 83379 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 83380 | | .{ ._, ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 83381 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83382 | | .{ .@"0:", ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 83383 | | .{ ._, ._ps, .xor, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 83384 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ }, |
| 83385 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 83386 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 83387 | | } }, |
| 83388 | | } }) catch |err| switch (err) { |
| 83389 | | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| 83390 | | @tagName(air_tag), |
| 83391 | | cg.typeOf(un_op).fmt(pt), |
| 83392 | | ops[0].tracking(cg), |
| 83393 | | }), |
| 83394 | | else => |e| return e, |
| 83395 | | }; |
| 83396 | | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 83397 | | }, |
| 83398 | | |
| 83399 | | .cmp_lt, |
| 83400 | | .cmp_lt_optimized, |
| 83401 | | .cmp_lte, |
| 83402 | | .cmp_lte_optimized, |
| 83403 | | .cmp_gte, |
| 83404 | | .cmp_gte_optimized, |
| 83405 | | .cmp_gt, |
| 83406 | | .cmp_gt_optimized, |
| 83407 | | => |air_tag| if (use_old) try cg.airCmp(inst, air_tag.toCmpOp().?) else { |
| 83408 | | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 83409 | | const cmp_op = air_tag.toCmpOp().?; |
| 83410 | | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 83411 | | var res: [1]Temp = undefined; |
| 83412 | | (if (cg.floatBits(cg.typeOf(bin_op.lhs))) |_| err: { |
| 83413 | | switch (cmp_op) { |
| 83414 | | else => unreachable, |
| 83415 | | .lt, .lte => {}, |
| 83416 | | .gt, .gte => std.mem.swap(Temp, &ops[0], &ops[1]), |
| 83417 | | } |
| 83418 | | break :err cg.select(&res, &.{.bool}, &ops, switch (switch (cmp_op) { |
| 83419 | | else => unreachable, |
| 83420 | | .lt, .gt => true, |
| 83421 | | .lte, .gte => false, |
| 83422 | | }) { |
| 83423 | | inline false, true => |strict| comptime &.{ .{ |
| 80880 | .e => &.{ |
| 80881 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80882 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80883 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80884 | .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 80885 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, |
| 80886 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 80887 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80888 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 80889 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80890 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80891 | }, |
| 80892 | .ne => &.{ |
| 80893 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80894 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80895 | .{ .@"0:", ._dqu, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80896 | .{ ._, .p_w, .cmpeq, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 80897 | .{ ._, .p_b, .ackssw, .tmp3x, .tmp3x, ._, ._ }, |
| 80898 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3x, ._, ._ }, |
| 80899 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 80900 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80901 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 80902 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80903 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80904 | }, |
| 80905 | } }, |
| 80906 | }, .{ |
| 80907 | .required_features = .{ .sse2, null, null, null }, |
| 80908 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 80909 | .patterns = &.{ |
| 80910 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 80911 | }, |
| 80912 | .extra_temps = .{ |
| 80913 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80914 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 80915 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 80916 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 80917 | .{ .kind = .{ .rc = .sse } }, |
| 80918 | .unused, |
| 80919 | .unused, |
| 80920 | .unused, |
| 80921 | .unused, |
| 80922 | .unused, |
| 80923 | .unused, |
| 80924 | }, |
| 80925 | .dst_temps = .{ .mem, .unused }, |
| 80926 | .clobbers = .{ .eflags = true }, |
| 80927 | .each = .{ .once = switch (cc) { |
| 80928 | else => unreachable, |
| 80929 | .e => &.{ |
| 80930 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80931 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80932 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80933 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80934 | .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 80935 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 80936 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 80937 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 80938 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 80939 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80940 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 80941 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 80942 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 80943 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 80944 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80945 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80946 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80947 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80948 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 80949 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 80950 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80951 | }, |
| 80952 | .ne => &.{ |
| 80953 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 80954 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 80955 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80956 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 80957 | .{ ._, .p_d, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 80958 | .{ ._, ._ps, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 80959 | .{ ._, ._, .xor, .tmp3b, .si(0b1111), ._, ._ }, |
| 80960 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 80961 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 80962 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 80963 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80964 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 80965 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 80966 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 80967 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 80968 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 80969 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 80970 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 80971 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 80972 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 80973 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 80974 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 80975 | }, |
| 80976 | } }, |
| 80977 | }, .{ |
| 80978 | .required_features = .{ .sse4_1, null, null, null }, |
| 80979 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| 80980 | .patterns = &.{ |
| 80981 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 80982 | }, |
| 80983 | .extra_temps = .{ |
| 80984 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80985 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 80986 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 80987 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 80988 | .{ .kind = .{ .rc = .sse } }, |
| 80989 | .unused, |
| 80990 | .unused, |
| 80991 | .unused, |
| 80992 | .unused, |
| 80993 | .unused, |
| 80994 | .unused, |
| 80995 | }, |
| 80996 | .dst_temps = .{ .mem, .unused }, |
| 80997 | .clobbers = .{ .eflags = true }, |
| 80998 | .each = .{ .once = switch (cc) { |
| 80999 | else => unreachable, |
| 81000 | .e => &.{ |
| 81001 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81002 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81003 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81004 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 81005 | .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 81006 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 81007 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 81008 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 81009 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 81010 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81011 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 81012 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 81013 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 81014 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 81015 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81016 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 81017 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81018 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81019 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 81020 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 81021 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81022 | }, |
| 81023 | .ne => &.{ |
| 81024 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81025 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81026 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81027 | .{ .@"0:", ._dqu, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 81028 | .{ ._, .p_q, .cmpeq, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 81029 | .{ ._, ._pd, .movmsk, .tmp3d, .tmp4x, ._, ._ }, |
| 81030 | .{ ._, ._, .xor, .tmp3b, .si(0b11), ._, ._ }, |
| 81031 | .{ ._, ._l, .ro, .tmp3b, .tmp1b, ._, ._ }, |
| 81032 | .{ ._, ._, .@"or", .tmp2b, .tmp3b, ._, ._ }, |
| 81033 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 81034 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81035 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 81036 | .{ ._, ._, .mov, .tmp3d, .tmp1d, ._, ._ }, |
| 81037 | .{ ._, ._r, .sh, .tmp3d, .ui(3), ._, ._ }, |
| 81038 | .{ ._, ._, .mov, .memid(.dst0b, .tmp3, -1), .tmp2b, ._, ._ }, |
| 81039 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81040 | .{ .@"1:", ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 81041 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81042 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81043 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 81044 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 81045 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81046 | }, |
| 81047 | } }, |
| 81048 | }, .{ |
| 81049 | .required_features = .{ .sse, .mmx, null, null }, |
| 81050 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| 81051 | .patterns = &.{ |
| 81052 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81053 | }, |
| 81054 | .extra_temps = .{ |
| 81055 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81056 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 81057 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 81058 | .{ .kind = .{ .rc = .mmx } }, |
| 81059 | .unused, |
| 81060 | .unused, |
| 81061 | .unused, |
| 81062 | .unused, |
| 81063 | .unused, |
| 81064 | .unused, |
| 81065 | .unused, |
| 81066 | }, |
| 81067 | .dst_temps = .{ .mem, .unused }, |
| 81068 | .clobbers = .{ .eflags = true }, |
| 81069 | .each = .{ .once = switch (cc) { |
| 81070 | else => unreachable, |
| 81071 | .e => &.{ |
| 81072 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81073 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81074 | .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 81075 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 81076 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, |
| 81077 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81078 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 81079 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 81080 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81081 | }, |
| 81082 | .ne => &.{ |
| 81083 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81084 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81085 | .{ .@"0:", ._q, .mov, .tmp3q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 81086 | .{ ._, .p_b, .cmpeq, .tmp3q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 81087 | .{ ._, .p_b, .movmsk, .tmp2d, .tmp3q, ._, ._ }, |
| 81088 | .{ ._, ._, .not, .tmp2b, ._, ._, ._ }, |
| 81089 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81090 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 1), ._, ._ }, |
| 81091 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 81092 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81093 | }, |
| 81094 | } }, |
| 81095 | }, .{ |
| 81096 | .required_features = .{ .sse, .mmx, null, null }, |
| 81097 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 81098 | .patterns = &.{ |
| 81099 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81100 | }, |
| 81101 | .extra_temps = .{ |
| 81102 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81103 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 81104 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 81105 | .{ .kind = .{ .rc = .mmx } }, |
| 81106 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 81107 | .{ .kind = .{ .rc = .mmx } }, |
| 81108 | .unused, |
| 81109 | .unused, |
| 81110 | .unused, |
| 81111 | .unused, |
| 81112 | .unused, |
| 81113 | }, |
| 81114 | .dst_temps = .{ .mem, .unused }, |
| 81115 | .clobbers = .{ .eflags = true }, |
| 81116 | .each = .{ .once = switch (cc) { |
| 81117 | else => unreachable, |
| 81118 | .e => &.{ |
| 81119 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81120 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81121 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81122 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 81123 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 81124 | .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 81125 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 81126 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 81127 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 81128 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 81129 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 81130 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81131 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 81132 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 81133 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 81134 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 81135 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81136 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 81137 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81138 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81139 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 81140 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 81141 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81142 | }, |
| 81143 | .ne => &.{ |
| 81144 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81145 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81146 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81147 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 81148 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 81149 | .{ ._, .p_w, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 81150 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 81151 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 81152 | .{ ._, ._, .xor, .tmp4b, .si(0b1111), ._, ._ }, |
| 81153 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 81154 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 81155 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 4), ._, ._ }, |
| 81156 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81157 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 81158 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 81159 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 81160 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 81161 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81162 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 81163 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81164 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81165 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 81166 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 81167 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81168 | }, |
| 81169 | } }, |
| 81170 | }, .{ |
| 81171 | .required_features = .{ .sse, .mmx, null, null }, |
| 81172 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 81173 | .patterns = &.{ |
| 81174 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81175 | }, |
| 81176 | .extra_temps = .{ |
| 81177 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81178 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 81179 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 81180 | .{ .kind = .{ .rc = .mmx } }, |
| 81181 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 81182 | .{ .kind = .{ .rc = .mmx } }, |
| 81183 | .unused, |
| 81184 | .unused, |
| 81185 | .unused, |
| 81186 | .unused, |
| 81187 | .unused, |
| 81188 | }, |
| 81189 | .dst_temps = .{ .mem, .unused }, |
| 81190 | .clobbers = .{ .eflags = true }, |
| 81191 | .each = .{ .once = switch (cc) { |
| 81192 | else => unreachable, |
| 81193 | .e => &.{ |
| 81194 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81195 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81196 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81197 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 81198 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 81199 | .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 81200 | .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ }, |
| 81201 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 81202 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 81203 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 81204 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 81205 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 81206 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81207 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 81208 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 81209 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 81210 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 81211 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81212 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 81213 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81214 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81215 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 81216 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 81217 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81218 | }, |
| 81219 | .ne => &.{ |
| 81220 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81221 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 81222 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81223 | .{ ._, .p_, .xor, .tmp3q, .tmp3q, ._, ._ }, |
| 81224 | .{ .@"0:", ._q, .mov, .tmp5q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 81225 | .{ ._, .p_d, .cmpeq, .tmp5q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 81226 | .{ ._, .p_w, .ackssd, .tmp5q, .tmp3q, ._, ._ }, |
| 81227 | .{ ._, .p_b, .ackssw, .tmp5q, .tmp3q, ._, ._ }, |
| 81228 | .{ ._, .p_b, .movmsk, .tmp4d, .tmp5q, ._, ._ }, |
| 81229 | .{ ._, ._, .xor, .tmp4b, .si(0b11), ._, ._ }, |
| 81230 | .{ ._, ._l, .ro, .tmp4b, .tmp1b, ._, ._ }, |
| 81231 | .{ ._, ._, .@"or", .tmp2b, .tmp4b, ._, ._ }, |
| 81232 | .{ ._, ._, .lea, .tmp1d, .lead(.tmp1, 2), ._, ._ }, |
| 81233 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81234 | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 81235 | .{ ._, ._, .mov, .tmp4d, .tmp1d, ._, ._ }, |
| 81236 | .{ ._, ._r, .sh, .tmp4d, .ui(3), ._, ._ }, |
| 81237 | .{ ._, ._, .mov, .memid(.dst0b, .tmp4, -1), .tmp2b, ._, ._ }, |
| 81238 | .{ ._, ._, .xor, .tmp2b, .tmp2b, ._, ._ }, |
| 81239 | .{ .@"1:", ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 81240 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81241 | .{ ._, ._, .@"test", .tmp1d, .si(0b111), ._, ._ }, |
| 81242 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 81243 | .{ ._, ._r, .sh, .tmp1d, .ui(3), ._, ._ }, |
| 81244 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp2b, ._, ._ }, |
| 81245 | }, |
| 81246 | } }, |
| 81247 | }, .{ |
| 81248 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| 81249 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 81250 | .patterns = &.{ |
| 81251 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81252 | }, |
| 81253 | .extra_temps = .{ |
| 81254 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81255 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 81256 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 81257 | .unused, |
| 81258 | .unused, |
| 81259 | .unused, |
| 81260 | .unused, |
| 81261 | .unused, |
| 81262 | .unused, |
| 81263 | .unused, |
| 81264 | .unused, |
| 81265 | }, |
| 81266 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 81267 | .clobbers = .{ .eflags = true }, |
| 81268 | .each = .{ .once = &.{ |
| 81269 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 81270 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81271 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 81272 | .{ .@"0:", ._, .mov, .tmp2b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, |
| 81273 | .{ ._, ._, .cmp, .tmp2b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, |
| 81274 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 81275 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 81276 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 81277 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 81278 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 81279 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81280 | } }, |
| 81281 | }, .{ |
| 81282 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 81283 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 81284 | .patterns = &.{ |
| 81285 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81286 | }, |
| 81287 | .extra_temps = .{ |
| 81288 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81289 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 81290 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 81291 | .unused, |
| 81292 | .unused, |
| 81293 | .unused, |
| 81294 | .unused, |
| 81295 | .unused, |
| 81296 | .unused, |
| 81297 | .unused, |
| 81298 | .unused, |
| 81299 | }, |
| 81300 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 81301 | .clobbers = .{ .eflags = true }, |
| 81302 | .each = .{ .once = &.{ |
| 81303 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 81304 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81305 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 81306 | .{ .@"0:", ._, .mov, .tmp2w, .memia(.src0w, .tmp0, .add_size), ._, ._ }, |
| 81307 | .{ ._, ._, .cmp, .tmp2w, .memia(.src1w, .tmp0, .add_size), ._, ._ }, |
| 81308 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 81309 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| 81310 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| 81311 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 81312 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 81313 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81314 | } }, |
| 81315 | }, .{ |
| 81316 | .src_constraints = .{ .{ .scalar_int_is = .dword }, .{ .scalar_int_is = .dword }, .any }, |
| 81317 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 81318 | .patterns = &.{ |
| 81319 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81320 | }, |
| 81321 | .extra_temps = .{ |
| 81322 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81323 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 81324 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 81325 | .unused, |
| 81326 | .unused, |
| 81327 | .unused, |
| 81328 | .unused, |
| 81329 | .unused, |
| 81330 | .unused, |
| 81331 | .unused, |
| 81332 | .unused, |
| 81333 | }, |
| 81334 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 81335 | .clobbers = .{ .eflags = true }, |
| 81336 | .each = .{ .once = &.{ |
| 81337 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 81338 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81339 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 81340 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_size), ._, ._ }, |
| 81341 | .{ ._, ._, .cmp, .tmp2d, .memia(.src1d, .tmp0, .add_size), ._, ._ }, |
| 81342 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 81343 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 81344 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 81345 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 81346 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 81347 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81348 | } }, |
| 81349 | }, .{ |
| 81350 | .required_features = .{ .@"64bit", null, null, null }, |
| 81351 | .src_constraints = .{ .{ .scalar_int_is = .qword }, .{ .scalar_int_is = .qword }, .any }, |
| 81352 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 81353 | .patterns = &.{ |
| 81354 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81355 | }, |
| 81356 | .extra_temps = .{ |
| 81357 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81358 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 81359 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 81360 | .unused, |
| 81361 | .unused, |
| 81362 | .unused, |
| 81363 | .unused, |
| 81364 | .unused, |
| 81365 | .unused, |
| 81366 | .unused, |
| 81367 | .unused, |
| 81368 | }, |
| 81369 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 81370 | .clobbers = .{ .eflags = true }, |
| 81371 | .each = .{ .once = &.{ |
| 81372 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 81373 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81374 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 81375 | .{ .@"0:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_size), ._, ._ }, |
| 81376 | .{ ._, ._, .cmp, .tmp2q, .memia(.src1q, .tmp0, .add_size), ._, ._ }, |
| 81377 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 81378 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 81379 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 81380 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 81381 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 81382 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81383 | } }, |
| 81384 | }, .{ |
| 81385 | .src_constraints = .{ .any_scalar_int, .any_scalar_int, .any }, |
| 81386 | .dst_constraints = .{ .{ .bool_vec = .byte }, .any }, |
| 81387 | .patterns = &.{ |
| 81388 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81389 | }, |
| 81390 | .extra_temps = .{ |
| 81391 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 81392 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 81393 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 81394 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 81395 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 81396 | .unused, |
| 81397 | .unused, |
| 81398 | .unused, |
| 81399 | .unused, |
| 81400 | .unused, |
| 81401 | .unused, |
| 81402 | }, |
| 81403 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 81404 | .clobbers = .{ .eflags = true }, |
| 81405 | .each = .{ .once = &.{ |
| 81406 | .{ ._, ._, .xor, .dst0b, .dst0b, ._, ._ }, |
| 81407 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 81408 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 81409 | .{ .@"0:", ._, .mov, .tmp2d, .sa(.src0p, .add_elem_limbs), ._, ._ }, |
| 81410 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 81411 | .{ .@"1:", ._, .mov, .tmp4p, .memi(.src0p, .tmp0), ._, ._ }, |
| 81412 | .{ ._, ._, .xor, .tmp4p, .memi(.src1p, .tmp0), ._, ._ }, |
| 81413 | .{ ._, ._, .@"or", .tmp3p, .tmp4p, ._, ._ }, |
| 81414 | .{ ._, ._, .add, .tmp0p, .sa(.tmp4, .add_size), ._, ._ }, |
| 81415 | .{ ._, ._, .sub, .tmp2d, .si(1), ._, ._ }, |
| 81416 | .{ ._, ._a, .j, .@"1b", ._, ._, ._ }, |
| 81417 | .{ ._, ._, .@"test", .tmp3p, .tmp3p, ._, ._ }, |
| 81418 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 81419 | .{ ._, ._l, .sh, .tmp2b, .tmp1b, ._, ._ }, |
| 81420 | .{ ._, ._, .@"or", .dst0b, .tmp2b, ._, ._ }, |
| 81421 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 81422 | .{ ._, ._, .cmp, .tmp1b, .sa(.dst0, .add_len), ._, ._ }, |
| 81423 | .{ ._, ._b, .j, .@"0b", ._, ._, ._ }, |
| 81424 | } }, |
| 81425 | }, .{ |
| 81426 | .src_constraints = .{ .{ .scalar_int_is = .byte }, .{ .scalar_int_is = .byte }, .any }, |
| 81427 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| 81428 | .patterns = &.{ |
| 81429 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81430 | }, |
| 81431 | .extra_temps = .{ |
| 81432 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81433 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 81434 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 81435 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 81436 | .unused, |
| 81437 | .unused, |
| 81438 | .unused, |
| 81439 | .unused, |
| 81440 | .unused, |
| 81441 | .unused, |
| 81442 | .unused, |
| 81443 | }, |
| 81444 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 81445 | .clobbers = .{ .eflags = true }, |
| 81446 | .each = .{ .once = &.{ |
| 81447 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| 81448 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 81449 | .{ ._, ._, .xor, .tmp1b, .tmp1b, ._, ._ }, |
| 81450 | .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 81451 | .{ ._, ._, .mov, .tmp3b, .memia(.src0b, .tmp0, .add_size), ._, ._ }, |
| 81452 | .{ ._, ._, .cmp, .tmp3b, .memia(.src1b, .tmp0, .add_size), ._, ._ }, |
| 81453 | .{ ._, .fromCond(cc), .set, .tmp2b, ._, ._, ._ }, |
| 81454 | .{ ._, ._l, .sh, .tmp2d, .tmp1b, ._, ._ }, |
| 81455 | .{ ._, ._, .@"or", .dst0d, .tmp2d, ._, ._ }, |
| 81456 | .{ ._, ._, .add, .tmp1b, .si(1), ._, ._ }, |
| 81457 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 81458 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 81459 | } }, |
| 81460 | }, .{ |
| 81461 | .src_constraints = .{ .{ .scalar_int_is = .word }, .{ .scalar_int_is = .word }, .any }, |
| 81462 | .dst_constraints = .{ .{ .bool_vec = .dword }, .any }, |
| 81463 | .patterns = &.{ |
| 81464 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 81465 | }, |
| 81466 | .extra_temps = .{ |
| 81467 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 81468 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 81469 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 81470 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 81471 | .unused, |
| 81472 | .unused, |
| 81473 | .unused, |
| 81474 | .unused, |
| 81475 | .unused, |
| 81476 | .unused, |
| 81477 | .unused, |
| 81478 | }, |
| 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 | 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 | 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 | 82959 | .extra_temps = .{ |
| 83430 | | .{ .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 83431 | | .{ .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| 82960 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 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 | 82969 | .unused, |
| 83433 | 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 | 83019 | .unused, |
| 83435 | 83020 | .unused, |
| 83436 | 83021 | .unused, |
| ... | ... | @@ -83439,142 +83024,552 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83439 | 83024 | .unused, |
| 83440 | 83025 | .unused, |
| 83441 | 83026 | }, |
| 83442 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83443 | | true => .a, |
| 83444 | | false => .ae, |
| 83445 | | } }, .unused }, |
| 83027 | .dst_temps = .{ .mem, .unused }, |
| 83446 | 83028 | .clobbers = .{ .eflags = true }, |
| 83447 | 83029 | .each = .{ .once = &.{ |
| 83448 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 83449 | | .{ ._, .v_ps, .cvtph2, .tmp1x, .src1q, ._, ._ }, |
| 83450 | | .{ ._, .v_ss, .ucomi, .tmp0x, .tmp1d, ._, ._ }, |
| 83030 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83031 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 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 }, |
| 83454 | | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, |
| 83045 | .required_features = .{ .avx, null, null, null }, |
| 83046 | .src_constraints = .{ |
| 83047 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| 83048 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| 83049 | .any, |
| 83050 | }, |
| 83455 | 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 | 83054 | .extra_temps = .{ |
| 83460 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmphf2" } } }, |
| 83461 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83055 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 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 | 83061 | .unused, |
| 83463 | 83062 | .unused, |
| 83464 | 83063 | .unused, |
| 83465 | 83064 | .unused, |
| 83466 | 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 | 83102 | .unused, |
| 83468 | 83103 | .unused, |
| 83469 | 83104 | .unused, |
| 83470 | 83105 | .unused, |
| 83471 | 83106 | }, |
| 83472 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83473 | | true => .l, |
| 83474 | | false => .le, |
| 83475 | | } }, .unused }, |
| 83476 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83107 | .dst_temps = .{ .mem, .unused }, |
| 83108 | .clobbers = .{ .eflags = true }, |
| 83477 | 83109 | .each = .{ .once = &.{ |
| 83478 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 83479 | | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, |
| 83110 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 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 }, |
| 83483 | | .src_constraints = .{ .{ .float = .dword }, .{ .float = .dword }, .any }, |
| 83133 | .required_features = .{ .sse, null, null, null }, |
| 83134 | .src_constraints = .{ |
| 83135 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| 83136 | .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, |
| 83137 | .any, |
| 83138 | }, |
| 83484 | 83139 | .patterns = &.{ |
| 83485 | | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83486 | | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83140 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83487 | 83141 | }, |
| 83488 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83489 | | true => .a, |
| 83490 | | false => .ae, |
| 83491 | | } }, .unused }, |
| 83142 | .extra_temps = .{ |
| 83143 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83144 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 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 | 83156 | .clobbers = .{ .eflags = true }, |
| 83493 | 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 | 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 | 83188 | .patterns = &.{ |
| 83500 | | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83501 | | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83189 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83502 | 83190 | }, |
| 83503 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83504 | | true => .a, |
| 83505 | | false => .ae, |
| 83506 | | } }, .unused }, |
| 83191 | .extra_temps = .{ |
| 83192 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83193 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 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 | 83205 | .clobbers = .{ .eflags = true }, |
| 83508 | 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 | 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 | 83288 | .patterns = &.{ |
| 83515 | | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83516 | | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83289 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83517 | 83290 | }, |
| 83518 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83519 | | true => .a, |
| 83520 | | false => .ae, |
| 83521 | | } }, .unused }, |
| 83291 | .extra_temps = .{ |
| 83292 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83293 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 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 | 83305 | .clobbers = .{ .eflags = true }, |
| 83523 | 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 | 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 | 83389 | .patterns = &.{ |
| 83530 | | .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83531 | | .{ .src = .{ .to_sse, .to_sse, .none }, .commute = .{ 0, 1 } }, |
| 83390 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83532 | 83391 | }, |
| 83533 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83534 | | true => .a, |
| 83535 | | false => .ae, |
| 83536 | | } }, .unused }, |
| 83392 | .extra_temps = .{ |
| 83393 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 83394 | .{ .type = .u32, .kind = .{ .reg = .rcx } }, |
| 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 | 83406 | .clobbers = .{ .eflags = true }, |
| 83538 | 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 }, |
| 83543 | | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| 83435 | .required_features = .{ .x87, .cmov, .slow_incdec, null }, |
| 83436 | .src_constraints = .{ |
| 83437 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| 83438 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| 83439 | .any, |
| 83440 | }, |
| 83544 | 83441 | .patterns = &.{ |
| 83545 | | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| 83442 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83546 | 83443 | }, |
| 83547 | 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 | 83450 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| 83549 | 83451 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 83550 | 83452 | .unused, |
| 83551 | 83453 | .unused, |
| 83552 | 83454 | .unused, |
| 83553 | 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 | 83514 | .unused, |
| 83556 | 83515 | .unused, |
| 83557 | 83516 | .unused, |
| 83558 | 83517 | .unused, |
| 83559 | 83518 | }, |
| 83560 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83561 | | true => .a, |
| 83562 | | false => .ae, |
| 83563 | | } }, .unused }, |
| 83519 | .dst_temps = .{ .mem, .unused }, |
| 83564 | 83520 | .clobbers = .{ .eflags = true }, |
| 83565 | 83521 | .each = .{ .once = &.{ |
| 83566 | | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| 83567 | | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 83568 | | .{ ._, .f_p, .ucomi, .tmp0t, .tmp1t, ._, ._ }, |
| 83569 | | .{ ._, .f_p, .st, .tmp1t, ._, ._, ._ }, |
| 83522 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 83523 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 83524 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 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 }, |
| 83573 | | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| 83559 | .required_features = .{ .x87, null, null, null }, |
| 83560 | .src_constraints = .{ |
| 83561 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| 83562 | .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, |
| 83563 | .any, |
| 83564 | }, |
| 83574 | 83565 | .patterns = &.{ |
| 83575 | | .{ .src = .{ .to_mem, .to_mem, .none }, .commute = .{ 0, 1 } }, |
| 83566 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83576 | 83567 | }, |
| 83577 | 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 | 83573 | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| 83579 | 83574 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 83580 | 83575 | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -83582,810 +83577,810 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83582 | 83577 | .unused, |
| 83583 | 83578 | .unused, |
| 83584 | 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 | 83691 | .unused, |
| 83586 | 83692 | .unused, |
| 83587 | 83693 | .unused, |
| 83588 | 83694 | .unused, |
| 83589 | 83695 | }, |
| 83590 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83591 | | true => .a, |
| 83592 | | false => .ae, |
| 83593 | | } }, .unused }, |
| 83696 | .dst_temps = .{ .mem, .unused }, |
| 83594 | 83697 | .clobbers = .{ .eflags = true }, |
| 83595 | 83698 | .each = .{ .once = &.{ |
| 83596 | | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| 83597 | | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 83699 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 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 | 83767 | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| 83599 | | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| 83600 | | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| 83768 | .{ ._, .fn_sw, .st, .tmp6w, ._, ._, ._ }, |
| 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 }, |
| 83604 | | .src_constraints = .{ .{ .float = .qword }, .{ .float = .qword }, .any }, |
| 84009 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 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 | 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 | 84020 | .extra_temps = .{ |
| 83609 | | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| 83610 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 83611 | | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| 83612 | | .unused, |
| 83613 | | .unused, |
| 83614 | | .unused, |
| 83615 | | .unused, |
| 83616 | | .unused, |
| 84021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84022 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84023 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84024 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 84025 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 84026 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84027 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 84028 | .{ .type = .u32, .kind = .{ .reg = .edx } }, |
| 83617 | 84029 | .unused, |
| 83618 | 84030 | .unused, |
| 83619 | 84031 | .unused, |
| 83620 | 84032 | }, |
| 83621 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83622 | | true => .z, |
| 83623 | | false => .nc, |
| 83624 | | } }, .unused }, |
| 83625 | | .clobbers = .{ .eflags = true }, |
| 84033 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 84034 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83626 | 84035 | .each = .{ .once = &.{ |
| 83627 | | .{ ._, .f_, .ld, .src1q, ._, ._, ._ }, |
| 83628 | | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 83629 | | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| 83630 | | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| 83631 | | switch (strict) { |
| 83632 | | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, |
| 83633 | | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, |
| 83634 | | }, |
| 84036 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| 84037 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 84038 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 84039 | .{ .@"0:", ._ps, .mova, .tmp2x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 84040 | .{ ._, ._ps, .mova, .tmp3x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 84041 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 84042 | .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, |
| 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 }, |
| 83638 | | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| 84053 | .required_features = .{ .@"64bit", .avx, .slow_incdec, null }, |
| 84054 | .src_constraints = .{ |
| 84055 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84056 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84057 | .any, |
| 84058 | }, |
| 83639 | 84059 | .patterns = &.{ |
| 83640 | | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| 83641 | | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, |
| 84060 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83642 | 84061 | }, |
| 84062 | .call_frame = .{ .alignment = .@"16" }, |
| 83643 | 84063 | .extra_temps = .{ |
| 83644 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 83645 | | .unused, |
| 83646 | | .unused, |
| 83647 | | .unused, |
| 83648 | | .unused, |
| 83649 | | .unused, |
| 83650 | | .unused, |
| 83651 | | .unused, |
| 83652 | | .unused, |
| 84064 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84065 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84066 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84067 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84068 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 84069 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 84070 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84071 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 84072 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83653 | 84073 | .unused, |
| 83654 | 84074 | .unused, |
| 83655 | 84075 | }, |
| 83656 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83657 | | true => .a, |
| 83658 | | false => .ae, |
| 83659 | | } }, .unused }, |
| 83660 | | .clobbers = .{ .eflags = true }, |
| 84076 | .dst_temps = .{ .mem, .unused }, |
| 84077 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83661 | 84078 | .each = .{ .once = &.{ |
| 83662 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 83663 | | .{ ._, .f_p, .ucomi, .tmp0t, .src1t, ._, ._ }, |
| 84079 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 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 }, |
| 83667 | | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| 84106 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 84107 | .src_constraints = .{ |
| 84108 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84109 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84110 | .any, |
| 84111 | }, |
| 83668 | 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 | 84116 | .extra_temps = .{ |
| 83672 | | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 83673 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 83674 | | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| 83675 | | .unused, |
| 83676 | | .unused, |
| 83677 | | .unused, |
| 83678 | | .unused, |
| 83679 | | .unused, |
| 83680 | | .unused, |
| 84117 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84118 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84119 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84120 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84121 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 84122 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 84123 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84124 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 84125 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83681 | 84126 | .unused, |
| 83682 | 84127 | .unused, |
| 83683 | 84128 | }, |
| 83684 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83685 | | true => .a, |
| 83686 | | false => .ae, |
| 83687 | | } }, .unused }, |
| 83688 | | .clobbers = .{ .eflags = true }, |
| 84129 | .dst_temps = .{ .mem, .unused }, |
| 84130 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83689 | 84131 | .each = .{ .once = &.{ |
| 83690 | | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 83691 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 83692 | | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| 83693 | | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| 83694 | | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| 84132 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 84133 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 84134 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 84135 | .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 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 }, |
| 83698 | | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| 84159 | .required_features = .{ .@"64bit", .sse2, .slow_incdec, null }, |
| 84160 | .src_constraints = .{ |
| 84161 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84162 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84163 | .any, |
| 84164 | }, |
| 83699 | 84165 | .patterns = &.{ |
| 83700 | | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| 83701 | | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, |
| 84166 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83702 | 84167 | }, |
| 84168 | .call_frame = .{ .alignment = .@"16" }, |
| 83703 | 84169 | .extra_temps = .{ |
| 83704 | | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 83705 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 83706 | | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| 83707 | | .unused, |
| 83708 | | .unused, |
| 83709 | | .unused, |
| 83710 | | .unused, |
| 83711 | | .unused, |
| 83712 | | .unused, |
| 84170 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84171 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84172 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84173 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84174 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 84175 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 84176 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84177 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 84178 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83713 | 84179 | .unused, |
| 83714 | 84180 | .unused, |
| 83715 | 84181 | }, |
| 83716 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83717 | | true => .a, |
| 83718 | | false => .ae, |
| 83719 | | } }, .unused }, |
| 83720 | | .clobbers = .{ .eflags = true }, |
| 84182 | .dst_temps = .{ .mem, .unused }, |
| 84183 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83721 | 84184 | .each = .{ .once = &.{ |
| 83722 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 83723 | | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, |
| 83724 | | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| 83725 | | .{ ._, ._, .sahf, ._, ._, ._, ._ }, |
| 84185 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 84186 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 84187 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 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 }, |
| 83729 | | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| 84212 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 84213 | .src_constraints = .{ |
| 84214 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84215 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84216 | .any, |
| 84217 | }, |
| 83730 | 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 | 84222 | .extra_temps = .{ |
| 83734 | | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 83735 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 83736 | | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| 83737 | | .unused, |
| 83738 | | .unused, |
| 83739 | | .unused, |
| 83740 | | .unused, |
| 83741 | | .unused, |
| 83742 | | .unused, |
| 84223 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84224 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84225 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84226 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84227 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 84228 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 84229 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84230 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 84231 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83743 | 84232 | .unused, |
| 83744 | 84233 | .unused, |
| 83745 | 84234 | }, |
| 83746 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83747 | | true => .z, |
| 83748 | | false => .nc, |
| 83749 | | } }, .unused }, |
| 83750 | | .clobbers = .{ .eflags = true }, |
| 84235 | .dst_temps = .{ .mem, .unused }, |
| 84236 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83751 | 84237 | .each = .{ .once = &.{ |
| 83752 | | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 83753 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 83754 | | .{ ._, .f_pp, .ucom, ._, ._, ._, ._ }, |
| 83755 | | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| 83756 | | switch (strict) { |
| 83757 | | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, |
| 83758 | | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, |
| 83759 | | }, |
| 84238 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 84239 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 84240 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 84241 | .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 84242 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 84243 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 84244 | .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, |
| 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 }, |
| 83763 | | .src_constraints = .{ .{ .float = .tbyte }, .{ .float = .tbyte }, .any }, |
| 84265 | .required_features = .{ .@"64bit", .sse, .slow_incdec, null }, |
| 84266 | .src_constraints = .{ |
| 84267 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84268 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84269 | .any, |
| 84270 | }, |
| 83764 | 84271 | .patterns = &.{ |
| 83765 | | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| 83766 | | .{ .src = .{ .to_x87, .to_x87, .none }, .commute = .{ 0, 1 } }, |
| 84272 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83767 | 84273 | }, |
| 84274 | .call_frame = .{ .alignment = .@"16" }, |
| 83768 | 84275 | .extra_temps = .{ |
| 83769 | | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 83770 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 83771 | | .{ .type = .u16, .kind = .{ .reg = .ax } }, |
| 83772 | | .unused, |
| 83773 | | .unused, |
| 83774 | | .unused, |
| 83775 | | .unused, |
| 83776 | | .unused, |
| 83777 | | .unused, |
| 84276 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84277 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84278 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84279 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84280 | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 84281 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 84282 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84283 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 84284 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83778 | 84285 | .unused, |
| 83779 | 84286 | .unused, |
| 83780 | 84287 | }, |
| 83781 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83782 | | true => .z, |
| 83783 | | false => .nc, |
| 83784 | | } }, .unused }, |
| 83785 | | .clobbers = .{ .eflags = true }, |
| 84288 | .dst_temps = .{ .mem, .unused }, |
| 84289 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83786 | 84290 | .each = .{ .once = &.{ |
| 83787 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 83788 | | .{ ._, .f_p, .ucom, .src1t, ._, ._, ._ }, |
| 83789 | | .{ ._, .fn_sw, .st, .tmp2w, ._, ._, ._ }, |
| 83790 | | switch (strict) { |
| 83791 | | true => .{ ._, ._, .@"test", .tmp2h, .si(0b1_000_001), ._, ._ }, |
| 83792 | | false => .{ ._, ._r, .sh, .tmp2h, .ui(1), ._, ._ }, |
| 83793 | | }, |
| 84291 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 84292 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 84293 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 84294 | .{ .@"0:", ._ps, .mova, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ }, |
| 84295 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ }, |
| 84296 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 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 }, |
| 83797 | | .src_constraints = .{ .{ .float = .xword }, .{ .float = .xword }, .any }, |
| 84318 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 84319 | .src_constraints = .{ |
| 84320 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84321 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, |
| 84322 | .any, |
| 84323 | }, |
| 83798 | 84324 | .patterns = &.{ |
| 83799 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 84325 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 83800 | 84326 | }, |
| 83801 | 84327 | .call_frame = .{ .alignment = .@"16" }, |
| 83802 | 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 | 84334 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__cmptf2" } } }, |
| 83804 | 84335 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83805 | | .unused, |
| 83806 | | .unused, |
| 83807 | | .unused, |
| 83808 | | .unused, |
| 83809 | | .unused, |
| 83810 | | .unused, |
| 83811 | | .unused, |
| 84336 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| 84337 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 83812 | 84338 | .unused, |
| 83813 | 84339 | .unused, |
| 83814 | 84340 | }, |
| 83815 | | .dst_temps = .{ .{ .cc = switch (strict) { |
| 83816 | | true => .l, |
| 83817 | | false => .le, |
| 83818 | | } }, .unused }, |
| 84341 | .dst_temps = .{ .mem, .unused }, |
| 83819 | 84342 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 83820 | 84343 | .each = .{ .once = &.{ |
| 83821 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 83822 | | .{ ._, ._, .@"test", .tmp1d, .tmp1d, ._, ._ }, |
| 84344 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, |
| 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 | 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 | 84374 | @tagName(air_tag), |
| 84364 | | cg.typeOf(bin_op.lhs).fmt(pt), |
| 84375 | @tagName(extra.compareOperator()), |
| 84376 | cg.typeOf(extra.lhs).fmt(pt), |
| 84365 | 84377 | ops[0].tracking(cg), |
| 84366 | 84378 | ops[1].tracking(cg), |
| 84367 | 84379 | }), |
| 84368 | 84380 | else => |e| return e, |
| 84369 | 84381 | }; |
| 84370 | | if (opt_info) |*oi| { |
| 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); |
| 84382 | try res[0].finish(inst, &.{ extra.lhs, extra.rhs }, &ops, cg); |
| 84387 | 84383 | }, |
| 84388 | | |
| 84389 | 84384 | .cond_br => try cg.airCondBr(inst), |
| 84390 | 84385 | .switch_br => try cg.airSwitchBr(inst), |
| 84391 | 84386 | .loop_switch_br => try cg.airLoopSwitchBr(inst), |
| ... | ... | @@ -89934,14 +89929,1029 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89934 | 89929 | .clobbers = .{ .eflags = true }, |
| 89935 | 89930 | .each = .{ .once = &.{ |
| 89936 | 89931 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 89937 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89938 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 89939 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 89940 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 89932 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89933 | .{ ._, ._, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 89934 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 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 | 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 | 90955 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89946 | 90956 | .patterns = &.{ |
| 89947 | 90957 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -89949,11 +90959,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89949 | 90959 | }, |
| 89950 | 90960 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89951 | 90961 | .each = .{ .once = &.{ |
| 89952 | | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| 90962 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 89953 | 90963 | } }, |
| 89954 | 90964 | }, .{ |
| 89955 | 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 | 90967 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89958 | 90968 | .patterns = &.{ |
| 89959 | 90969 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -89961,11 +90971,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89961 | 90971 | }, |
| 89962 | 90972 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89963 | 90973 | .each = .{ .once = &.{ |
| 89964 | | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| 90974 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 89965 | 90975 | } }, |
| 89966 | 90976 | }, .{ |
| 89967 | 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 | 90979 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89970 | 90980 | .patterns = &.{ |
| 89971 | 90981 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -89973,11 +90983,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89973 | 90983 | }, |
| 89974 | 90984 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89975 | 90985 | .each = .{ .once = &.{ |
| 89976 | | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| 90986 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 89977 | 90987 | } }, |
| 89978 | 90988 | }, .{ |
| 89979 | 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 | 90991 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89982 | 90992 | .patterns = &.{ |
| 89983 | 90993 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -89985,17 +90995,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 89985 | 90995 | }, |
| 89986 | 90996 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 89987 | 90997 | .each = .{ .once = &.{ |
| 89988 | | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| 90998 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 89989 | 90999 | } }, |
| 89990 | 91000 | }, .{ |
| 89991 | 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 | 91003 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 89994 | 91004 | .patterns = &.{ |
| 89995 | 91005 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 89996 | 91006 | }, |
| 89997 | 91007 | .extra_temps = .{ |
| 89998 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91008 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 89999 | 91009 | .unused, |
| 90000 | 91010 | .unused, |
| 90001 | 91011 | .unused, |
| ... | ... | @@ -90010,22 +91020,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90010 | 91020 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90011 | 91021 | .each = .{ .once = &.{ |
| 90012 | 91022 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90013 | | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90014 | | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| 90015 | | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, |
| 91023 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90016 | 91024 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90017 | 91025 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| 90018 | 91026 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90019 | 91027 | } }, |
| 90020 | 91028 | }, .{ |
| 90021 | 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 | 91031 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90024 | 91032 | .patterns = &.{ |
| 90025 | 91033 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90026 | 91034 | }, |
| 90027 | 91035 | .extra_temps = .{ |
| 90028 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91036 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 90029 | 91037 | .unused, |
| 90030 | 91038 | .unused, |
| 90031 | 91039 | .unused, |
| ... | ... | @@ -90040,13 +91048,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90040 | 91048 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90041 | 91049 | .each = .{ .once = &.{ |
| 90042 | 91050 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90043 | | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| 90044 | 91051 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90045 | 91052 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90046 | 91053 | } }, |
| 90047 | 91054 | }, .{ |
| 90048 | 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 | 91057 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90051 | 91058 | .patterns = &.{ |
| 90052 | 91059 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -90054,11 +91061,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90054 | 91061 | }, |
| 90055 | 91062 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90056 | 91063 | .each = .{ .once = &.{ |
| 90057 | | .{ ._, .vp_q, .movsxb, .dst0y, .src0d, ._, ._ }, |
| 91064 | .{ ._, .vp_q, .movsxw, .dst0y, .src0q, ._, ._ }, |
| 90058 | 91065 | } }, |
| 90059 | 91066 | }, .{ |
| 90060 | 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 | 91069 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90063 | 91070 | .patterns = &.{ |
| 90064 | 91071 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -90066,11 +91073,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90066 | 91073 | }, |
| 90067 | 91074 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90068 | 91075 | .each = .{ .once = &.{ |
| 90069 | | .{ ._, .vp_q, .movzxb, .dst0y, .src0d, ._, ._ }, |
| 91076 | .{ ._, .vp_q, .movzxw, .dst0y, .src0q, ._, ._ }, |
| 90070 | 91077 | } }, |
| 90071 | 91078 | }, .{ |
| 90072 | 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 | 91081 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90075 | 91082 | .patterns = &.{ |
| 90076 | 91083 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90092,14 +91099,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90092 | 91099 | .clobbers = .{ .eflags = true }, |
| 90093 | 91100 | .each = .{ .once = &.{ |
| 90094 | 91101 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90095 | | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90096 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90097 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91102 | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91103 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 91104 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90098 | 91105 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90099 | 91106 | } }, |
| 90100 | 91107 | }, .{ |
| 90101 | 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 | 91110 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90104 | 91111 | .patterns = &.{ |
| 90105 | 91112 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90121,14 +91128,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90121 | 91128 | .clobbers = .{ .eflags = true }, |
| 90122 | 91129 | .each = .{ .once = &.{ |
| 90123 | 91130 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90124 | | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90125 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90126 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91131 | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91132 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 91133 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90127 | 91134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90128 | 91135 | } }, |
| 90129 | 91136 | }, .{ |
| 90130 | 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 | 91139 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90133 | 91140 | .patterns = &.{ |
| 90134 | 91141 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90150,14 +91157,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90150 | 91157 | .clobbers = .{ .eflags = true }, |
| 90151 | 91158 | .each = .{ .once = &.{ |
| 90152 | 91159 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90153 | | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90154 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90155 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91160 | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91161 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91162 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90156 | 91163 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90157 | 91164 | } }, |
| 90158 | 91165 | }, .{ |
| 90159 | 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 | 91168 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90162 | 91169 | .patterns = &.{ |
| 90163 | 91170 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90179,14 +91186,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90179 | 91186 | .clobbers = .{ .eflags = true }, |
| 90180 | 91187 | .each = .{ .once = &.{ |
| 90181 | 91188 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90182 | | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90183 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90184 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91189 | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91190 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91191 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90185 | 91192 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90186 | 91193 | } }, |
| 90187 | 91194 | }, .{ |
| 90188 | 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 | 91197 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90191 | 91198 | .patterns = &.{ |
| 90192 | 91199 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90208,14 +91215,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90208 | 91215 | .clobbers = .{ .eflags = true }, |
| 90209 | 91216 | .each = .{ .once = &.{ |
| 90210 | 91217 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90211 | | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90212 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90213 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91218 | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91219 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91220 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90214 | 91221 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90215 | 91222 | } }, |
| 90216 | 91223 | }, .{ |
| 90217 | 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 | 91226 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90220 | 91227 | .patterns = &.{ |
| 90221 | 91228 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90237,14 +91244,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90237 | 91244 | .clobbers = .{ .eflags = true }, |
| 90238 | 91245 | .each = .{ .once = &.{ |
| 90239 | 91246 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90240 | | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90241 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90242 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91247 | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91248 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91249 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90243 | 91250 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90244 | 91251 | } }, |
| 90245 | 91252 | }, .{ |
| 90246 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 90247 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 91253 | .required_features = .{ .@"64bit", null, null, null }, |
| 91254 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90248 | 91255 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 90249 | 91256 | .patterns = &.{ |
| 90250 | 91257 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90266,50 +91273,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90266 | 91273 | .clobbers = .{ .eflags = true }, |
| 90267 | 91274 | .each = .{ .once = &.{ |
| 90268 | 91275 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90269 | | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90270 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 90271 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 91276 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91277 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91278 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 90272 | 91279 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90273 | 91280 | } }, |
| 90274 | 91281 | }, .{ |
| 90275 | 91282 | .required_features = .{ .@"64bit", null, null, null }, |
| 90276 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .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 }, |
| 91283 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90306 | 91284 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 90307 | 91285 | .patterns = &.{ |
| 90308 | 91286 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90309 | 91287 | }, |
| 90310 | 91288 | .extra_temps = .{ |
| 90311 | 91289 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90312 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 91290 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 90313 | 91291 | .unused, |
| 90314 | 91292 | .unused, |
| 90315 | 91293 | .unused, |
| ... | ... | @@ -90324,42 +91302,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90324 | 91302 | .clobbers = .{ .eflags = true }, |
| 90325 | 91303 | .each = .{ .once = &.{ |
| 90326 | 91304 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90327 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90328 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 90329 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 91305 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91306 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91307 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 90330 | 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 | 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 | 91313 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90364 | 91314 | .patterns = &.{ |
| 90365 | 91315 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -90367,12 +91317,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90367 | 91317 | }, |
| 90368 | 91318 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90369 | 91319 | .each = .{ .once = &.{ |
| 90370 | | .{ ._, .vp_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| 91320 | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 90371 | 91321 | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 90372 | 91322 | } }, |
| 90373 | 91323 | }, .{ |
| 90374 | 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 | 91326 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90377 | 91327 | .patterns = &.{ |
| 90378 | 91328 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -90380,12 +91330,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90380 | 91330 | }, |
| 90381 | 91331 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90382 | 91332 | .each = .{ .once = &.{ |
| 90383 | | .{ ._, .vp_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| 91333 | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 90384 | 91334 | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 90385 | 91335 | } }, |
| 90386 | 91336 | }, .{ |
| 90387 | 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 | 91339 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90390 | 91340 | .patterns = &.{ |
| 90391 | 91341 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -90393,12 +91343,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90393 | 91343 | }, |
| 90394 | 91344 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90395 | 91345 | .each = .{ .once = &.{ |
| 90396 | | .{ ._, .p_q, .movsxb, .dst0x, .src0w, ._, ._ }, |
| 91346 | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 90397 | 91347 | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 90398 | 91348 | } }, |
| 90399 | 91349 | }, .{ |
| 90400 | 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 | 91352 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90403 | 91353 | .patterns = &.{ |
| 90404 | 91354 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -90406,18 +91356,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90406 | 91356 | }, |
| 90407 | 91357 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90408 | 91358 | .each = .{ .once = &.{ |
| 90409 | | .{ ._, .p_q, .movzxb, .dst0x, .src0w, ._, ._ }, |
| 91359 | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 90410 | 91360 | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 90411 | 91361 | } }, |
| 90412 | 91362 | }, .{ |
| 90413 | 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 | 91365 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90416 | 91366 | .patterns = &.{ |
| 90417 | 91367 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90418 | 91368 | }, |
| 90419 | 91369 | .extra_temps = .{ |
| 90420 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 91370 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 90421 | 91371 | .unused, |
| 90422 | 91372 | .unused, |
| 90423 | 91373 | .unused, |
| ... | ... | @@ -90432,9 +91382,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90432 | 91382 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90433 | 91383 | .each = .{ .once = &.{ |
| 90434 | 91384 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90435 | | .{ ._, .p_b, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90436 | | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| 90437 | | .{ ._, .p_, .unpcklbw, .tmp0x, .tmp0x, ._, ._ }, |
| 91385 | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90438 | 91386 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90439 | 91387 | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| 90440 | 91388 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| ... | ... | @@ -90443,13 +91391,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90443 | 91391 | } }, |
| 90444 | 91392 | }, .{ |
| 90445 | 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 | 91395 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90448 | 91396 | .patterns = &.{ |
| 90449 | 91397 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90450 | 91398 | }, |
| 90451 | 91399 | .extra_temps = .{ |
| 90452 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 91400 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 90453 | 91401 | .unused, |
| 90454 | 91402 | .unused, |
| 90455 | 91403 | .unused, |
| ... | ... | @@ -90464,47 +91412,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90464 | 91412 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90465 | 91413 | .each = .{ .once = &.{ |
| 90466 | 91414 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90467 | | .{ ._, .p_, .unpcklbw, .dst0x, .tmp0x, ._, ._ }, |
| 90468 | 91415 | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 90469 | 91416 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90470 | 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 | 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 | 91422 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 90509 | 91423 | .patterns = &.{ |
| 90510 | 91424 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90527,50 +91441,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90527 | 91441 | .each = .{ .once = &.{ |
| 90528 | 91442 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90529 | 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 | 91445 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 90532 | 91446 | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, |
| 90533 | 91447 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 90534 | 91448 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 90535 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 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), ._, ._ }, |
| 91449 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 90569 | 91450 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90570 | 91451 | } }, |
| 90571 | 91452 | }, .{ |
| 90572 | 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 | 91455 | .dst_constraints = .{ .any_scalar_int, .any }, |
| 90575 | 91456 | .patterns = &.{ |
| 90576 | 91457 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -90593,71 +91474,71 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90593 | 91474 | .each = .{ .once = &.{ |
| 90594 | 91475 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90595 | 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 | 91478 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 90598 | 91479 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 90599 | 91480 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 90600 | 91481 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 90601 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 90602 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 91482 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91483 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90603 | 91484 | } }, |
| 90604 | 91485 | }, .{ |
| 90605 | 91486 | .required_features = .{ .avx, null, null, null }, |
| 90606 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90607 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91487 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91488 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90608 | 91489 | .patterns = &.{ |
| 90609 | 91490 | .{ .src = .{ .mem, .none, .none } }, |
| 90610 | 91491 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90611 | 91492 | }, |
| 90612 | 91493 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90613 | 91494 | .each = .{ .once = &.{ |
| 90614 | | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 91495 | .{ ._, .vp_q, .movsxd, .dst0x, .src0q, ._, ._ }, |
| 90615 | 91496 | } }, |
| 90616 | 91497 | }, .{ |
| 90617 | 91498 | .required_features = .{ .avx, null, null, null }, |
| 90618 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90619 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91499 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91500 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90620 | 91501 | .patterns = &.{ |
| 90621 | 91502 | .{ .src = .{ .mem, .none, .none } }, |
| 90622 | 91503 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90623 | 91504 | }, |
| 90624 | 91505 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90625 | 91506 | .each = .{ .once = &.{ |
| 90626 | | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 91507 | .{ ._, .vp_q, .movzxd, .dst0x, .src0q, ._, ._ }, |
| 90627 | 91508 | } }, |
| 90628 | 91509 | }, .{ |
| 90629 | 91510 | .required_features = .{ .sse4_1, null, null, null }, |
| 90630 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90631 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91511 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91512 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90632 | 91513 | .patterns = &.{ |
| 90633 | 91514 | .{ .src = .{ .mem, .none, .none } }, |
| 90634 | 91515 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90635 | 91516 | }, |
| 90636 | 91517 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90637 | 91518 | .each = .{ .once = &.{ |
| 90638 | | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 91519 | .{ ._, .p_q, .movsxd, .dst0x, .src0q, ._, ._ }, |
| 90639 | 91520 | } }, |
| 90640 | 91521 | }, .{ |
| 90641 | 91522 | .required_features = .{ .sse4_1, null, null, null }, |
| 90642 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90643 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91523 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91524 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90644 | 91525 | .patterns = &.{ |
| 90645 | 91526 | .{ .src = .{ .mem, .none, .none } }, |
| 90646 | 91527 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90647 | 91528 | }, |
| 90648 | 91529 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90649 | 91530 | .each = .{ .once = &.{ |
| 90650 | | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 91531 | .{ ._, .p_q, .movzxd, .dst0x, .src0q, ._, ._ }, |
| 90651 | 91532 | } }, |
| 90652 | 91533 | }, .{ |
| 90653 | 91534 | .required_features = .{ .sse2, null, null, null }, |
| 90654 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90655 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91535 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91536 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90656 | 91537 | .patterns = &.{ |
| 90657 | 91538 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90658 | 91539 | }, |
| 90659 | 91540 | .extra_temps = .{ |
| 90660 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 91541 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 90661 | 91542 | .unused, |
| 90662 | 91543 | .unused, |
| 90663 | 91544 | .unused, |
| ... | ... | @@ -90672,18 +91553,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90672 | 91553 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90673 | 91554 | .each = .{ .once = &.{ |
| 90674 | 91555 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90675 | | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 90676 | | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 91556 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 91557 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90677 | 91558 | } }, |
| 90678 | 91559 | }, .{ |
| 90679 | 91560 | .required_features = .{ .sse2, null, null, null }, |
| 90680 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90681 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91561 | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91562 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90682 | 91563 | .patterns = &.{ |
| 90683 | 91564 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 90684 | 91565 | }, |
| 90685 | 91566 | .extra_temps = .{ |
| 90686 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 91567 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 90687 | 91568 | .unused, |
| 90688 | 91569 | .unused, |
| 90689 | 91570 | .unused, |
| ... | ... | @@ -90698,42 +91579,42 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90698 | 91579 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 90699 | 91580 | .each = .{ .once = &.{ |
| 90700 | 91581 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 90701 | | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 91582 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 90702 | 91583 | } }, |
| 90703 | 91584 | }, .{ |
| 90704 | 91585 | .required_features = .{ .avx2, null, null, null }, |
| 90705 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 90706 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 91586 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91587 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90707 | 91588 | .patterns = &.{ |
| 90708 | 91589 | .{ .src = .{ .mem, .none, .none } }, |
| 90709 | 91590 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90710 | 91591 | }, |
| 90711 | 91592 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90712 | 91593 | .each = .{ .once = &.{ |
| 90713 | | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, |
| 91594 | .{ ._, .vp_q, .movsxd, .dst0y, .src0x, ._, ._ }, |
| 90714 | 91595 | } }, |
| 90715 | 91596 | }, .{ |
| 90716 | 91597 | .required_features = .{ .avx2, null, null, null }, |
| 90717 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 90718 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 91598 | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91599 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90719 | 91600 | .patterns = &.{ |
| 90720 | 91601 | .{ .src = .{ .mem, .none, .none } }, |
| 90721 | 91602 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90722 | 91603 | }, |
| 90723 | 91604 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90724 | 91605 | .each = .{ .once = &.{ |
| 90725 | | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, |
| 91606 | .{ ._, .vp_q, .movzxd, .dst0y, .src0x, ._, ._ }, |
| 90726 | 91607 | } }, |
| 90727 | 91608 | }, .{ |
| 90728 | 91609 | .required_features = .{ .avx2, null, null, null }, |
| 90729 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 90730 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 91610 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91611 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90731 | 91612 | .patterns = &.{ |
| 90732 | 91613 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90733 | 91614 | }, |
| 90734 | 91615 | .extra_temps = .{ |
| 90735 | 91616 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90736 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 91617 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| 90737 | 91618 | .unused, |
| 90738 | 91619 | .unused, |
| 90739 | 91620 | .unused, |
| ... | ... | @@ -90748,21 +91629,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90748 | 91629 | .clobbers = .{ .eflags = true }, |
| 90749 | 91630 | .each = .{ .once = &.{ |
| 90750 | 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 | 91633 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90753 | 91634 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 90754 | 91635 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90755 | 91636 | } }, |
| 90756 | 91637 | }, .{ |
| 90757 | 91638 | .required_features = .{ .avx2, null, null, null }, |
| 90758 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 90759 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 91639 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91640 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 90760 | 91641 | .patterns = &.{ |
| 90761 | 91642 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90762 | 91643 | }, |
| 90763 | 91644 | .extra_temps = .{ |
| 90764 | 91645 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90765 | | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 91646 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| 90766 | 91647 | .unused, |
| 90767 | 91648 | .unused, |
| 90768 | 91649 | .unused, |
| ... | ... | @@ -90777,21 +91658,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90777 | 91658 | .clobbers = .{ .eflags = true }, |
| 90778 | 91659 | .each = .{ .once = &.{ |
| 90779 | 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 | 91662 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 90782 | 91663 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 90783 | 91664 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90784 | 91665 | } }, |
| 90785 | 91666 | }, .{ |
| 90786 | 91667 | .required_features = .{ .avx, null, null, null }, |
| 90787 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90788 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91668 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91669 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90789 | 91670 | .patterns = &.{ |
| 90790 | 91671 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90791 | 91672 | }, |
| 90792 | 91673 | .extra_temps = .{ |
| 90793 | 91674 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90794 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 91675 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 90795 | 91676 | .unused, |
| 90796 | 91677 | .unused, |
| 90797 | 91678 | .unused, |
| ... | ... | @@ -90806,21 +91687,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90806 | 91687 | .clobbers = .{ .eflags = true }, |
| 90807 | 91688 | .each = .{ .once = &.{ |
| 90808 | 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 | 91691 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90811 | 91692 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90812 | 91693 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90813 | 91694 | } }, |
| 90814 | 91695 | }, .{ |
| 90815 | 91696 | .required_features = .{ .avx, null, null, null }, |
| 90816 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90817 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91697 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91698 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90818 | 91699 | .patterns = &.{ |
| 90819 | 91700 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90820 | 91701 | }, |
| 90821 | 91702 | .extra_temps = .{ |
| 90822 | 91703 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90823 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 91704 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 90824 | 91705 | .unused, |
| 90825 | 91706 | .unused, |
| 90826 | 91707 | .unused, |
| ... | ... | @@ -90835,21 +91716,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90835 | 91716 | .clobbers = .{ .eflags = true }, |
| 90836 | 91717 | .each = .{ .once = &.{ |
| 90837 | 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 | 91720 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90840 | 91721 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90841 | 91722 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90842 | 91723 | } }, |
| 90843 | 91724 | }, .{ |
| 90844 | 91725 | .required_features = .{ .sse4_1, null, null, null }, |
| 90845 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90846 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91726 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91727 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90847 | 91728 | .patterns = &.{ |
| 90848 | 91729 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90849 | 91730 | }, |
| 90850 | 91731 | .extra_temps = .{ |
| 90851 | 91732 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90852 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 91733 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 90853 | 91734 | .unused, |
| 90854 | 91735 | .unused, |
| 90855 | 91736 | .unused, |
| ... | ... | @@ -90864,21 +91745,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90864 | 91745 | .clobbers = .{ .eflags = true }, |
| 90865 | 91746 | .each = .{ .once = &.{ |
| 90866 | 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 | 91749 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90869 | 91750 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90870 | 91751 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90871 | 91752 | } }, |
| 90872 | 91753 | }, .{ |
| 90873 | 91754 | .required_features = .{ .sse4_1, null, null, null }, |
| 90874 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 90875 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 91755 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91756 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 90876 | 91757 | .patterns = &.{ |
| 90877 | 91758 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90878 | 91759 | }, |
| 90879 | 91760 | .extra_temps = .{ |
| 90880 | 91761 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90881 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 91762 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 90882 | 91763 | .unused, |
| 90883 | 91764 | .unused, |
| 90884 | 91765 | .unused, |
| ... | ... | @@ -90893,20 +91774,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90893 | 91774 | .clobbers = .{ .eflags = true }, |
| 90894 | 91775 | .each = .{ .once = &.{ |
| 90895 | 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 | 91778 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 90898 | 91779 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 90899 | 91780 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90900 | 91781 | } }, |
| 90901 | 91782 | }, .{ |
| 90902 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90903 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 91783 | .required_features = .{ .@"64bit", null, null, null }, |
| 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 | 91786 | .patterns = &.{ |
| 90905 | 91787 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90906 | 91788 | }, |
| 90907 | 91789 | .extra_temps = .{ |
| 90908 | 91790 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90909 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 91791 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 90910 | 91792 | .unused, |
| 90911 | 91793 | .unused, |
| 90912 | 91794 | .unused, |
| ... | ... | @@ -90921,20 +91803,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90921 | 91803 | .clobbers = .{ .eflags = true }, |
| 90922 | 91804 | .each = .{ .once = &.{ |
| 90923 | 91805 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90924 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90925 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 90926 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91806 | .{ .@"0:", ._d, .movsx, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91807 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91808 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90927 | 91809 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90928 | 91810 | } }, |
| 90929 | 91811 | }, .{ |
| 90930 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 90931 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 91812 | .required_features = .{ .@"64bit", null, null, null }, |
| 91813 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91814 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 90932 | 91815 | .patterns = &.{ |
| 90933 | 91816 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90934 | 91817 | }, |
| 90935 | 91818 | .extra_temps = .{ |
| 90936 | 91819 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 90937 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 91820 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 90938 | 91821 | .unused, |
| 90939 | 91822 | .unused, |
| 90940 | 91823 | .unused, |
| ... | ... | @@ -90949,68 +91832,72 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 90949 | 91832 | .clobbers = .{ .eflags = true }, |
| 90950 | 91833 | .each = .{ .once = &.{ |
| 90951 | 91834 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 90952 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90953 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 90954 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91835 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91836 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91837 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 90955 | 91838 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90956 | 91839 | } }, |
| 90957 | 91840 | }, .{ |
| 90958 | 91841 | .required_features = .{ .avx, null, null, null }, |
| 90959 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90960 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91842 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91843 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90961 | 91844 | .patterns = &.{ |
| 90962 | 91845 | .{ .src = .{ .mem, .none, .none } }, |
| 90963 | 91846 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90964 | 91847 | }, |
| 90965 | 91848 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90966 | 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 | 91854 | .required_features = .{ .avx, null, null, null }, |
| 90971 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90972 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91855 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91856 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90973 | 91857 | .patterns = &.{ |
| 90974 | 91858 | .{ .src = .{ .mem, .none, .none } }, |
| 90975 | 91859 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90976 | 91860 | }, |
| 90977 | 91861 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90978 | 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 | 91867 | .required_features = .{ .sse4_1, null, null, null }, |
| 90983 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90984 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91868 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91869 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90985 | 91870 | .patterns = &.{ |
| 90986 | 91871 | .{ .src = .{ .mem, .none, .none } }, |
| 90987 | 91872 | .{ .src = .{ .to_sse, .none, .none } }, |
| 90988 | 91873 | }, |
| 90989 | 91874 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 90990 | 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 | 91880 | .required_features = .{ .sse4_1, null, null, null }, |
| 90995 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 90996 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91881 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91882 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 90997 | 91883 | .patterns = &.{ |
| 90998 | 91884 | .{ .src = .{ .mem, .none, .none } }, |
| 90999 | 91885 | .{ .src = .{ .to_sse, .none, .none } }, |
| 91000 | 91886 | }, |
| 91001 | 91887 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91002 | 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 | 91893 | .required_features = .{ .sse2, null, null, null }, |
| 91007 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91008 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91894 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91895 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91009 | 91896 | .patterns = &.{ |
| 91010 | 91897 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91011 | 91898 | }, |
| 91012 | 91899 | .extra_temps = .{ |
| 91013 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 91900 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 91014 | 91901 | .unused, |
| 91015 | 91902 | .unused, |
| 91016 | 91903 | .unused, |
| ... | ... | @@ -91025,20 +91912,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91025 | 91912 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91026 | 91913 | .each = .{ .once = &.{ |
| 91027 | 91914 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91028 | | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 91029 | | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 91030 | | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| 91915 | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 91031 | 91916 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 91917 | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, |
| 91918 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 91032 | 91919 | } }, |
| 91033 | 91920 | }, .{ |
| 91034 | 91921 | .required_features = .{ .sse2, null, null, null }, |
| 91035 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91036 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91922 | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91923 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91037 | 91924 | .patterns = &.{ |
| 91038 | 91925 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91039 | 91926 | }, |
| 91040 | 91927 | .extra_temps = .{ |
| 91041 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 91928 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 91042 | 91929 | .unused, |
| 91043 | 91930 | .unused, |
| 91044 | 91931 | .unused, |
| ... | ... | @@ -91053,45 +91940,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91053 | 91940 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91054 | 91941 | .each = .{ .once = &.{ |
| 91055 | 91942 | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91056 | | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 91057 | 91943 | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 91944 | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 91058 | 91945 | } }, |
| 91059 | 91946 | }, .{ |
| 91060 | | .required_features = .{ .avx2, null, null, null }, |
| 91061 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 91062 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .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 }, |
| 91947 | .required_features = .{ .@"64bit", null, null, null }, |
| 91948 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91949 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 91087 | 91950 | .patterns = &.{ |
| 91088 | 91951 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91089 | 91952 | }, |
| 91090 | 91953 | .extra_temps = .{ |
| 91091 | 91954 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91092 | | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| 91093 | | .unused, |
| 91094 | | .unused, |
| 91955 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91956 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91957 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91095 | 91958 | .unused, |
| 91096 | 91959 | .unused, |
| 91097 | 91960 | .unused, |
| ... | ... | @@ -91104,23 +91967,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91104 | 91967 | .clobbers = .{ .eflags = true }, |
| 91105 | 91968 | .each = .{ .once = &.{ |
| 91106 | 91969 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91107 | | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91108 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 91109 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 91970 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 91971 | .{ .@"0:", ._d, .movsx, .tmp2q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 | 91977 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91111 | 91978 | } }, |
| 91112 | 91979 | }, .{ |
| 91113 | | .required_features = .{ .avx2, null, null, null }, |
| 91114 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 91115 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 91980 | .required_features = .{ .@"64bit", null, null, null }, |
| 91981 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91982 | .dst_constraints = .{ .any_scalar_int, .any }, |
| 91116 | 91983 | .patterns = &.{ |
| 91117 | 91984 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91118 | 91985 | }, |
| 91119 | 91986 | .extra_temps = .{ |
| 91120 | 91987 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91121 | | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| 91122 | | .unused, |
| 91123 | | .unused, |
| 91988 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91989 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 91990 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91124 | 91991 | .unused, |
| 91125 | 91992 | .unused, |
| 91126 | 91993 | .unused, |
| ... | ... | @@ -91133,24 +92000,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91133 | 92000 | .clobbers = .{ .eflags = true }, |
| 91134 | 92001 | .each = .{ .once = &.{ |
| 91135 | 92002 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91136 | | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91137 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 91138 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 92003 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 92004 | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 | 92010 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91140 | 92011 | } }, |
| 91141 | 92012 | }, .{ |
| 91142 | | .required_features = .{ .avx, null, null, null }, |
| 91143 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91144 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92013 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 92014 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 92015 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 91145 | 92016 | .patterns = &.{ |
| 91146 | 92017 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91147 | 92018 | }, |
| 91148 | 92019 | .extra_temps = .{ |
| 91149 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91150 | | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 91151 | | .unused, |
| 91152 | | .unused, |
| 91153 | | .unused, |
| 92020 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92021 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92022 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92023 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92024 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91154 | 92025 | .unused, |
| 91155 | 92026 | .unused, |
| 91156 | 92027 | .unused, |
| ... | ... | @@ -91161,25 +92032,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91161 | 92032 | .dst_temps = .{ .mem, .unused }, |
| 91162 | 92033 | .clobbers = .{ .eflags = true }, |
| 91163 | 92034 | .each = .{ .once = &.{ |
| 91164 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91165 | | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91166 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91167 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91168 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92035 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 92036 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 92037 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 92038 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 91172 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91173 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92049 | .required_features = .{ .@"64bit", null, null, null }, |
| 92050 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 92051 | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 91174 | 92052 | .patterns = &.{ |
| 91175 | 92053 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91176 | 92054 | }, |
| 91177 | 92055 | .extra_temps = .{ |
| 91178 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91179 | | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 91180 | | .unused, |
| 91181 | | .unused, |
| 91182 | | .unused, |
| 92056 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92057 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92058 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92059 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92060 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91183 | 92061 | .unused, |
| 91184 | 92062 | .unused, |
| 91185 | 92063 | .unused, |
| ... | ... | @@ -91190,25 +92068,66 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91190 | 92068 | .dst_temps = .{ .mem, .unused }, |
| 91191 | 92069 | .clobbers = .{ .eflags = true }, |
| 91192 | 92070 | .each = .{ .once = &.{ |
| 91193 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91194 | | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91195 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91196 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91197 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92071 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 92072 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 92073 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 92074 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 91201 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91202 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92085 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 92086 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 92087 | .dst_constraints = .{ .any_scalar_int, .any }, |
| 91203 | 92088 | .patterns = &.{ |
| 91204 | 92089 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91205 | 92090 | }, |
| 91206 | 92091 | .extra_temps = .{ |
| 91207 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91208 | | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 92092 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 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 | 92100 | .unused, |
| 91210 | 92101 | .unused, |
| 91211 | 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 | 92131 | .unused, |
| 91213 | 92132 | .unused, |
| 91214 | 92133 | .unused, |
| ... | ... | @@ -91219,23 +92138,346 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91219 | 92138 | .dst_temps = .{ .mem, .unused }, |
| 91220 | 92139 | .clobbers = .{ .eflags = true }, |
| 91221 | 92140 | .each = .{ .once = &.{ |
| 91222 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91223 | | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91224 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91225 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91226 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92141 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 92142 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 92143 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 92144 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 91230 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91231 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92181 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92182 | .dst_constraints = .{ .{ .exact_signed_int = 1 }, .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 | 92474 | .patterns = &.{ |
| 91233 | 92475 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91234 | 92476 | }, |
| 91235 | 92477 | .extra_temps = .{ |
| 91236 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91237 | | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 91238 | | .unused, |
| 92478 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92479 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92480 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91239 | 92481 | .unused, |
| 91240 | 92482 | .unused, |
| 91241 | 92483 | .unused, |
| ... | ... | @@ -91246,25 +92488,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91246 | 92488 | .unused, |
| 91247 | 92489 | }, |
| 91248 | 92490 | .dst_temps = .{ .mem, .unused }, |
| 91249 | | .clobbers = .{ .eflags = true }, |
| 91250 | 92491 | .each = .{ .once = &.{ |
| 91251 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91252 | | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91253 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91254 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91255 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92492 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92493 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92494 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| 92495 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 91256 | 92496 | } }, |
| 91257 | 92497 | }, .{ |
| 91258 | 92498 | .required_features = .{ .@"64bit", null, null, null }, |
| 91259 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91260 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 92499 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92500 | .dst_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any }, |
| 91261 | 92501 | .patterns = &.{ |
| 91262 | 92502 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91263 | 92503 | }, |
| 91264 | 92504 | .extra_temps = .{ |
| 91265 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91266 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 91267 | | .unused, |
| 92505 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92506 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92507 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91268 | 92508 | .unused, |
| 91269 | 92509 | .unused, |
| 91270 | 92510 | .unused, |
| ... | ... | @@ -91277,23 +92517,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91277 | 92517 | .dst_temps = .{ .mem, .unused }, |
| 91278 | 92518 | .clobbers = .{ .eflags = true }, |
| 91279 | 92519 | .each = .{ .once = &.{ |
| 91280 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91281 | | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91282 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91283 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91284 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92520 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92521 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92522 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92523 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 | 92530 | .required_features = .{ .@"64bit", null, null, null }, |
| 91288 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91289 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 92531 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92532 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91290 | 92533 | .patterns = &.{ |
| 91291 | 92534 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91292 | 92535 | }, |
| 91293 | 92536 | .extra_temps = .{ |
| 91294 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91295 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 91296 | | .unused, |
| 92537 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92538 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92539 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91297 | 92540 | .unused, |
| 91298 | 92541 | .unused, |
| 91299 | 92542 | .unused, |
| ... | ... | @@ -91306,75 +92549,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91306 | 92549 | .dst_temps = .{ .mem, .unused }, |
| 91307 | 92550 | .clobbers = .{ .eflags = true }, |
| 91308 | 92551 | .each = .{ .once = &.{ |
| 91309 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91310 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91311 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91312 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91313 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92552 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92553 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92554 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92555 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 }, |
| 91317 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91318 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 92564 | .required_features = .{ .@"64bit", null, null, null }, |
| 92565 | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92566 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91319 | 92567 | .patterns = &.{ |
| 91320 | | .{ .src = .{ .mem, .none, .none } }, |
| 91321 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 92568 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91322 | 92569 | }, |
| 91323 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91324 | | .each = .{ .once = &.{ |
| 91325 | | .{ ._, .vp_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 91326 | | .{ ._, .vp_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 91327 | | } }, |
| 91328 | | }, .{ |
| 91329 | | .required_features = .{ .avx, null, null, null }, |
| 91330 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91331 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91332 | | .patterns = &.{ |
| 91333 | | .{ .src = .{ .mem, .none, .none } }, |
| 91334 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 92570 | .extra_temps = .{ |
| 92571 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92572 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92573 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92574 | .unused, |
| 92575 | .unused, |
| 92576 | .unused, |
| 92577 | .unused, |
| 92578 | .unused, |
| 92579 | .unused, |
| 92580 | .unused, |
| 92581 | .unused, |
| 91335 | 92582 | }, |
| 91336 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 92583 | .dst_temps = .{ .mem, .unused }, |
| 92584 | .clobbers = .{ .eflags = true }, |
| 91337 | 92585 | .each = .{ .once = &.{ |
| 91338 | | .{ ._, .vp_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 91339 | | .{ ._, .vp_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 92586 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 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 }, |
| 91343 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91344 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 92596 | .required_features = .{ .@"64bit", null, null, null }, |
| 92597 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92598 | .dst_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any }, |
| 91345 | 92599 | .patterns = &.{ |
| 91346 | | .{ .src = .{ .mem, .none, .none } }, |
| 91347 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 92600 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91348 | 92601 | }, |
| 91349 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91350 | | .each = .{ .once = &.{ |
| 91351 | | .{ ._, .p_q, .movsxw, .dst0x, .src0d, ._, ._ }, |
| 91352 | | .{ ._, .p_q, .movsxd, .dst0x, .dst0q, ._, ._ }, |
| 91353 | | } }, |
| 91354 | | }, .{ |
| 91355 | | .required_features = .{ .sse4_1, null, null, null }, |
| 91356 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91357 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91358 | | .patterns = &.{ |
| 91359 | | .{ .src = .{ .mem, .none, .none } }, |
| 91360 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 92602 | .extra_temps = .{ |
| 92603 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92604 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92605 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92606 | .unused, |
| 92607 | .unused, |
| 92608 | .unused, |
| 92609 | .unused, |
| 92610 | .unused, |
| 92611 | .unused, |
| 92612 | .unused, |
| 92613 | .unused, |
| 91361 | 92614 | }, |
| 91362 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 92615 | .dst_temps = .{ .mem, .unused }, |
| 91363 | 92616 | .each = .{ .once = &.{ |
| 91364 | | .{ ._, .p_q, .movzxw, .dst0x, .src0d, ._, ._ }, |
| 91365 | | .{ ._, .p_q, .movzxd, .dst0x, .dst0q, ._, ._ }, |
| 92617 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 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 }, |
| 91369 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91370 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 92624 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 92625 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92626 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91371 | 92627 | .patterns = &.{ |
| 91372 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 92628 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91373 | 92629 | }, |
| 91374 | 92630 | .extra_temps = .{ |
| 91375 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 91376 | | .unused, |
| 91377 | | .unused, |
| 92631 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92632 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92633 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91378 | 92634 | .unused, |
| 91379 | 92635 | .unused, |
| 91380 | 92636 | .unused, |
| ... | ... | @@ -91384,27 +92640,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91384 | 92640 | .unused, |
| 91385 | 92641 | .unused, |
| 91386 | 92642 | }, |
| 91387 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 92643 | .dst_temps = .{ .mem, .unused }, |
| 92644 | .clobbers = .{ .eflags = true }, |
| 91388 | 92645 | .each = .{ .once = &.{ |
| 91389 | | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91390 | | .{ ._, .p_w, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 91391 | | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 91392 | | .{ ._, .p_, .unpcklwd, .tmp0x, .tmp0x, ._, ._ }, |
| 91393 | | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 91394 | | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, |
| 91395 | | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 92646 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92647 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92648 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92649 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92650 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 92651 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -16), .tmp2q, ._ }, |
| 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 }, |
| 91399 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91400 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 92656 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 92657 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92658 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91401 | 92659 | .patterns = &.{ |
| 91402 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 92660 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91403 | 92661 | }, |
| 91404 | 92662 | .extra_temps = .{ |
| 91405 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 91406 | | .unused, |
| 91407 | | .unused, |
| 92663 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92664 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92665 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91408 | 92666 | .unused, |
| 91409 | 92667 | .unused, |
| 91410 | 92668 | .unused, |
| ... | ... | @@ -91414,24 +92672,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91414 | 92672 | .unused, |
| 91415 | 92673 | .unused, |
| 91416 | 92674 | }, |
| 91417 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 92675 | .dst_temps = .{ .mem, .unused }, |
| 92676 | .clobbers = .{ .eflags = true }, |
| 91418 | 92677 | .each = .{ .once = &.{ |
| 91419 | | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91420 | | .{ ._, .p_, .unpcklwd, .dst0x, .tmp0x, ._, ._ }, |
| 91421 | | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 91422 | | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 92678 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92679 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92680 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 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 | 92687 | .required_features = .{ .@"64bit", null, null, null }, |
| 91426 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91427 | | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 92688 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92689 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 91428 | 92690 | .patterns = &.{ |
| 91429 | 92691 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91430 | 92692 | }, |
| 91431 | 92693 | .extra_temps = .{ |
| 91432 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92694 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91433 | 92695 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91434 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91435 | 92696 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91436 | 92697 | .unused, |
| 91437 | 92698 | .unused, |
| ... | ... | @@ -91440,31 +92701,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91440 | 92701 | .unused, |
| 91441 | 92702 | .unused, |
| 91442 | 92703 | .unused, |
| 92704 | .unused, |
| 91443 | 92705 | }, |
| 91444 | 92706 | .dst_temps = .{ .mem, .unused }, |
| 91445 | 92707 | .clobbers = .{ .eflags = true }, |
| 91446 | 92708 | .each = .{ .once = &.{ |
| 91447 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91448 | | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 91449 | | .{ .@"0:", ._, .movsx, .tmp2q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91450 | | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 91451 | | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, |
| 91452 | | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 91453 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 91454 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91455 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92709 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92710 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92711 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92712 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92713 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 92714 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 92715 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 92716 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 91456 | 92717 | } }, |
| 91457 | 92718 | }, .{ |
| 91458 | 92719 | .required_features = .{ .@"64bit", null, null, null }, |
| 91459 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 91460 | | .dst_constraints = .{ .any_scalar_int, .any }, |
| 92720 | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92721 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 91461 | 92722 | .patterns = &.{ |
| 91462 | 92723 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91463 | 92724 | }, |
| 91464 | 92725 | .extra_temps = .{ |
| 91465 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92726 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 91466 | 92727 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91467 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 91468 | 92728 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 91469 | 92729 | .unused, |
| 91470 | 92730 | .unused, |
| ... | ... | @@ -91473,78 +92733,135 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91473 | 92733 | .unused, |
| 91474 | 92734 | .unused, |
| 91475 | 92735 | .unused, |
| 92736 | .unused, |
| 91476 | 92737 | }, |
| 91477 | 92738 | .dst_temps = .{ .mem, .unused }, |
| 91478 | 92739 | .clobbers = .{ .eflags = true }, |
| 91479 | 92740 | .each = .{ .once = &.{ |
| 91480 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91481 | | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 91482 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91483 | | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 91484 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 91485 | | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 91486 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 91487 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 91488 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92741 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92742 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92743 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 92744 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92745 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 92746 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 92747 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 91489 | 92748 | } }, |
| 91490 | 92749 | }, .{ |
| 91491 | 92750 | .required_features = .{ .avx, null, null, null }, |
| 91492 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91493 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92751 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92752 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91494 | 92753 | .patterns = &.{ |
| 91495 | | .{ .src = .{ .mem, .none, .none } }, |
| 91496 | 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 | 92769 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91499 | 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 | 92778 | .required_features = .{ .avx, null, null, null }, |
| 91504 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91505 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92779 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92780 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91506 | 92781 | .patterns = &.{ |
| 91507 | | .{ .src = .{ .mem, .none, .none } }, |
| 91508 | 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 | 92797 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91511 | 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 }, |
| 91516 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91517 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92803 | .required_features = .{ .sse2, null, null, null }, |
| 92804 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92805 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91518 | 92806 | .patterns = &.{ |
| 91519 | | .{ .src = .{ .mem, .none, .none } }, |
| 91520 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 92807 | .{ .src = .{ .to_mut_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 | 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 }, |
| 91528 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91529 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92831 | .required_features = .{ .sse2, null, null, null }, |
| 92832 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92833 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91530 | 92834 | .patterns = &.{ |
| 91531 | | .{ .src = .{ .mem, .none, .none } }, |
| 91532 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 92835 | .{ .src = .{ .to_mut_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 | 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 }, |
| 91540 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91541 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92856 | .required_features = .{ .sse, null, null, null }, |
| 92857 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92858 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91542 | 92859 | .patterns = &.{ |
| 91543 | 92860 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 91544 | 92861 | }, |
| 91545 | 92862 | .extra_temps = .{ |
| 91546 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 91547 | | .unused, |
| 92863 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92864 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 91548 | 92865 | .unused, |
| 91549 | 92866 | .unused, |
| 91550 | 92867 | .unused, |
| ... | ... | @@ -91557,21 +92874,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91557 | 92874 | }, |
| 91558 | 92875 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 91559 | 92876 | .each = .{ .once = &.{ |
| 91560 | | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91561 | | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 91562 | | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 92877 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92878 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 91563 | 92879 | } }, |
| 91564 | 92880 | }, .{ |
| 91565 | | .required_features = .{ .sse2, null, null, null }, |
| 91566 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91567 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 92881 | .required_features = .{ .avx2, null, null, null }, |
| 92882 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92883 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91568 | 92884 | .patterns = &.{ |
| 91569 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 92885 | .{ .src = .{ .to_sse, .none, .none } }, |
| 91570 | 92886 | }, |
| 91571 | 92887 | .extra_temps = .{ |
| 91572 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 91573 | | .unused, |
| 91574 | | .unused, |
| 92888 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92889 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 92890 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 91575 | 92891 | .unused, |
| 91576 | 92892 | .unused, |
| 91577 | 92893 | .unused, |
| ... | ... | @@ -91581,47 +92897,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91581 | 92897 | .unused, |
| 91582 | 92898 | .unused, |
| 91583 | 92899 | }, |
| 91584 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 92900 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91585 | 92901 | .each = .{ .once = &.{ |
| 91586 | | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91587 | | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 92902 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 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 | 92909 | .required_features = .{ .avx2, null, null, null }, |
| 91591 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91592 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 92910 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92911 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91593 | 92912 | .patterns = &.{ |
| 91594 | | .{ .src = .{ .mem, .none, .none } }, |
| 91595 | 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 | 92928 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 91598 | 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 | 92934 | .required_features = .{ .avx2, null, null, null }, |
| 91603 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91604 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 92935 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92936 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91605 | 92937 | .patterns = &.{ |
| 91606 | | .{ .src = .{ .mem, .none, .none } }, |
| 91607 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 92938 | .{ .src = .{ .to_mem, .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 | 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 | 92969 | .required_features = .{ .avx2, null, null, null }, |
| 91615 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91616 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 92970 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92971 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 91617 | 92972 | .patterns = &.{ |
| 91618 | 92973 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91619 | 92974 | }, |
| 91620 | 92975 | .extra_temps = .{ |
| 91621 | 92976 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91622 | | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| 91623 | | .unused, |
| 91624 | | .unused, |
| 92977 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 92978 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 92979 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91625 | 92980 | .unused, |
| 91626 | 92981 | .unused, |
| 91627 | 92982 | .unused, |
| ... | ... | @@ -91633,26 +92988,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91633 | 92988 | .dst_temps = .{ .mem, .unused }, |
| 91634 | 92989 | .clobbers = .{ .eflags = true }, |
| 91635 | 92990 | .each = .{ .once = &.{ |
| 91636 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91637 | | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91638 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 91639 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 92991 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 92992 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 92993 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 | 92997 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91641 | 92998 | } }, |
| 91642 | 92999 | }, .{ |
| 91643 | | .required_features = .{ .avx2, null, null, null }, |
| 91644 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 91645 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 93000 | .required_features = .{ .avx, null, null, null }, |
| 93001 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93002 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91646 | 93003 | .patterns = &.{ |
| 91647 | 93004 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91648 | 93005 | }, |
| 91649 | 93006 | .extra_temps = .{ |
| 91650 | 93007 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91651 | | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| 91652 | | .unused, |
| 91653 | | .unused, |
| 91654 | | .unused, |
| 91655 | | .unused, |
| 93008 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93009 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93010 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93011 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93012 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 91656 | 93013 | .unused, |
| 91657 | 93014 | .unused, |
| 91658 | 93015 | .unused, |
| ... | ... | @@ -91662,24 +93019,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91662 | 93019 | .dst_temps = .{ .mem, .unused }, |
| 91663 | 93020 | .clobbers = .{ .eflags = true }, |
| 91664 | 93021 | .each = .{ .once = &.{ |
| 91665 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91666 | | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91667 | | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 93022 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 93023 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 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 | 93031 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 91669 | 93032 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91670 | 93033 | } }, |
| 91671 | 93034 | }, .{ |
| 91672 | 93035 | .required_features = .{ .avx, null, null, null }, |
| 91673 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91674 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 93036 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93037 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91675 | 93038 | .patterns = &.{ |
| 91676 | 93039 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91677 | 93040 | }, |
| 91678 | 93041 | .extra_temps = .{ |
| 91679 | 93042 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91680 | | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 91681 | | .unused, |
| 91682 | | .unused, |
| 93043 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93044 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93045 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91683 | 93046 | .unused, |
| 91684 | 93047 | .unused, |
| 91685 | 93048 | .unused, |
| ... | ... | @@ -91691,26 +93054,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91691 | 93054 | .dst_temps = .{ .mem, .unused }, |
| 91692 | 93055 | .clobbers = .{ .eflags = true }, |
| 91693 | 93056 | .each = .{ .once = &.{ |
| 91694 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91695 | | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91696 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91697 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 93057 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 93058 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93059 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 | 93063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91699 | 93064 | } }, |
| 91700 | 93065 | }, .{ |
| 91701 | | .required_features = .{ .avx, null, null, null }, |
| 91702 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 91703 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 93066 | .required_features = .{ .sse2, null, null, null }, |
| 93067 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93068 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91704 | 93069 | .patterns = &.{ |
| 91705 | 93070 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91706 | 93071 | }, |
| 91707 | 93072 | .extra_temps = .{ |
| 91708 | 93073 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91709 | | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 91710 | | .unused, |
| 91711 | | .unused, |
| 91712 | | .unused, |
| 91713 | | .unused, |
| 93074 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93075 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93076 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93077 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93078 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 91714 | 93079 | .unused, |
| 91715 | 93080 | .unused, |
| 91716 | 93081 | .unused, |
| ... | ... | @@ -91720,24 +93085,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91720 | 93085 | .dst_temps = .{ .mem, .unused }, |
| 91721 | 93086 | .clobbers = .{ .eflags = true }, |
| 91722 | 93087 | .each = .{ .once = &.{ |
| 91723 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91724 | | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91725 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91726 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 93088 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 93089 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93090 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| 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 | 93099 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91728 | 93100 | } }, |
| 91729 | 93101 | }, .{ |
| 91730 | | .required_features = .{ .sse4_1, null, null, null }, |
| 91731 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91732 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 93102 | .required_features = .{ .sse2, null, null, null }, |
| 93103 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93104 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91733 | 93105 | .patterns = &.{ |
| 91734 | 93106 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91735 | 93107 | }, |
| 91736 | 93108 | .extra_temps = .{ |
| 91737 | 93109 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91738 | | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 91739 | | .unused, |
| 91740 | | .unused, |
| 93110 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93111 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93112 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91741 | 93113 | .unused, |
| 91742 | 93114 | .unused, |
| 91743 | 93115 | .unused, |
| ... | ... | @@ -91749,24 +93121,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91749 | 93121 | .dst_temps = .{ .mem, .unused }, |
| 91750 | 93122 | .clobbers = .{ .eflags = true }, |
| 91751 | 93123 | .each = .{ .once = &.{ |
| 91752 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91753 | | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91754 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91755 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 93124 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 93125 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93126 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 | 93131 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91757 | 93132 | } }, |
| 91758 | 93133 | }, .{ |
| 91759 | | .required_features = .{ .sse4_1, null, null, null }, |
| 91760 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 91761 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 93134 | .required_features = .{ .sse, null, null, null }, |
| 93135 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93136 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 91762 | 93137 | .patterns = &.{ |
| 91763 | 93138 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91764 | 93139 | }, |
| 91765 | 93140 | .extra_temps = .{ |
| 91766 | 93141 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91767 | | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 91768 | | .unused, |
| 91769 | | .unused, |
| 93142 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93143 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93144 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 91770 | 93145 | .unused, |
| 91771 | 93146 | .unused, |
| 91772 | 93147 | .unused, |
| ... | ... | @@ -91778,22 +93153,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91778 | 93153 | .dst_temps = .{ .mem, .unused }, |
| 91779 | 93154 | .clobbers = .{ .eflags = true }, |
| 91780 | 93155 | .each = .{ .once = &.{ |
| 91781 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91782 | | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91783 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 91784 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 93156 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 93157 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93158 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 | 93163 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91786 | 93164 | } }, |
| 91787 | 93165 | }, .{ |
| 91788 | | .required_features = .{ .@"64bit", null, null, null }, |
| 91789 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91790 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 93166 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93167 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93168 | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, |
| 91791 | 93169 | .patterns = &.{ |
| 91792 | 93170 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91793 | 93171 | }, |
| 91794 | 93172 | .extra_temps = .{ |
| 91795 | 93173 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91796 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 93174 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91797 | 93175 | .unused, |
| 91798 | 93176 | .unused, |
| 91799 | 93177 | .unused, |
| ... | ... | @@ -91807,22 +93185,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91807 | 93185 | .dst_temps = .{ .mem, .unused }, |
| 91808 | 93186 | .clobbers = .{ .eflags = true }, |
| 91809 | 93187 | .each = .{ .once = &.{ |
| 91810 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91811 | | .{ .@"0:", ._d, .movsx, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91812 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91813 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 93188 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93189 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93190 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| 93191 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| 93192 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93193 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 91814 | 93194 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91815 | 93195 | } }, |
| 91816 | 93196 | }, .{ |
| 91817 | | .required_features = .{ .@"64bit", null, null, null }, |
| 91818 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91819 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 93197 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93198 | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, |
| 91820 | 93199 | .patterns = &.{ |
| 91821 | 93200 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91822 | 93201 | }, |
| 91823 | 93202 | .extra_temps = .{ |
| 91824 | 93203 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91825 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 93204 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91826 | 93205 | .unused, |
| 91827 | 93206 | .unused, |
| 91828 | 93207 | .unused, |
| ... | ... | @@ -91836,74 +93215,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91836 | 93215 | .dst_temps = .{ .mem, .unused }, |
| 91837 | 93216 | .clobbers = .{ .eflags = true }, |
| 91838 | 93217 | .each = .{ .once = &.{ |
| 91839 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91840 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91841 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 91842 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 91843 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91844 | | } }, |
| 91845 | | }, .{ |
| 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, ._, ._ }, |
| 93218 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93219 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93220 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| 93221 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| 93222 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93223 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93224 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 91896 | 93225 | } }, |
| 91897 | 93226 | }, .{ |
| 91898 | | .required_features = .{ .sse2, null, null, null }, |
| 91899 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91900 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 93227 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93228 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93229 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91901 | 93230 | .patterns = &.{ |
| 91902 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93231 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91903 | 93232 | }, |
| 91904 | 93233 | .extra_temps = .{ |
| 91905 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 91906 | | .unused, |
| 93234 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93235 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91907 | 93236 | .unused, |
| 91908 | 93237 | .unused, |
| 91909 | 93238 | .unused, |
| ... | ... | @@ -91914,24 +93243,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91914 | 93243 | .unused, |
| 91915 | 93244 | .unused, |
| 91916 | 93245 | }, |
| 91917 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93246 | .dst_temps = .{ .mem, .unused }, |
| 93247 | .clobbers = .{ .eflags = true }, |
| 91918 | 93248 | .each = .{ .once = &.{ |
| 91919 | | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91920 | | .{ ._, .p_d, .cmpgt, .tmp0x, .src0x, ._, ._ }, |
| 91921 | | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 91922 | | .{ ._, .p_, .unpckldq, .tmp0x, .tmp0x, ._, ._ }, |
| 91923 | | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 93249 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93250 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93251 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93252 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 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 }, |
| 91927 | | .src_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91928 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 93258 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93259 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91929 | 93260 | .patterns = &.{ |
| 91930 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93261 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91931 | 93262 | }, |
| 91932 | 93263 | .extra_temps = .{ |
| 91933 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 91934 | | .unused, |
| 93264 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93265 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 91935 | 93266 | .unused, |
| 91936 | 93267 | .unused, |
| 91937 | 93268 | .unused, |
| ... | ... | @@ -91942,24 +93273,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91942 | 93273 | .unused, |
| 91943 | 93274 | .unused, |
| 91944 | 93275 | }, |
| 91945 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93276 | .dst_temps = .{ .mem, .unused }, |
| 93277 | .clobbers = .{ .eflags = true }, |
| 91946 | 93278 | .each = .{ .once = &.{ |
| 91947 | | .{ ._, .p_, .xor, .tmp0x, .tmp0x, ._, ._ }, |
| 91948 | | .{ ._, .p_, .unpckldq, .dst0x, .tmp0x, ._, ._ }, |
| 91949 | | .{ ._, .p_, .unpcklqdq, .dst0x, .tmp0x, ._, ._ }, |
| 93279 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93280 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 91953 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91954 | | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 93288 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93289 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93290 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91955 | 93291 | .patterns = &.{ |
| 91956 | 93292 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91957 | 93293 | }, |
| 91958 | 93294 | .extra_temps = .{ |
| 91959 | 93295 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91960 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91961 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 91962 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93296 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93297 | .unused, |
| 93298 | .unused, |
| 91963 | 93299 | .unused, |
| 91964 | 93300 | .unused, |
| 91965 | 93301 | .unused, |
| ... | ... | @@ -91971,28 +93307,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 91971 | 93307 | .dst_temps = .{ .mem, .unused }, |
| 91972 | 93308 | .clobbers = .{ .eflags = true }, |
| 91973 | 93309 | .each = .{ .once = &.{ |
| 91974 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 91975 | | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 91976 | | .{ .@"0:", ._d, .movsx, .tmp2q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 91977 | | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 91978 | | .{ ._, ._r, .sa, .tmp2q, .si(63), ._, ._ }, |
| 91979 | | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 91980 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 91981 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 93310 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93311 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93312 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93313 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93314 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 91982 | 93315 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 91983 | 93316 | } }, |
| 91984 | 93317 | }, .{ |
| 91985 | | .required_features = .{ .@"64bit", null, null, null }, |
| 91986 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 91987 | | .dst_constraints = .{ .any_scalar_int, .any }, |
| 93318 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93319 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 91988 | 93320 | .patterns = &.{ |
| 91989 | 93321 | .{ .src = .{ .to_mem, .none, .none } }, |
| 91990 | 93322 | }, |
| 91991 | 93323 | .extra_temps = .{ |
| 91992 | 93324 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 91993 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 91994 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 91995 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93325 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93326 | .unused, |
| 93327 | .unused, |
| 91996 | 93328 | .unused, |
| 91997 | 93329 | .unused, |
| 91998 | 93330 | .unused, |
| ... | ... | @@ -92004,29 +93336,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92004 | 93336 | .dst_temps = .{ .mem, .unused }, |
| 92005 | 93337 | .clobbers = .{ .eflags = true }, |
| 92006 | 93338 | .each = .{ .once = &.{ |
| 92007 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 92008 | | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 92009 | | .{ .@"0:", ._, .mov, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 92010 | | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 92011 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 92012 | | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 92013 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 92014 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 92015 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93339 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93340 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93341 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93342 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93343 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93344 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92016 | 93345 | } }, |
| 92017 | 93346 | }, .{ |
| 92018 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 92019 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 92020 | | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 93347 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93348 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93349 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92021 | 93350 | .patterns = &.{ |
| 92022 | 93351 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92023 | 93352 | }, |
| 92024 | 93353 | .extra_temps = .{ |
| 92025 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92026 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92027 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92028 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92029 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 93354 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93355 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93356 | .unused, |
| 93357 | .unused, |
| 93358 | .unused, |
| 92030 | 93359 | .unused, |
| 92031 | 93360 | .unused, |
| 92032 | 93361 | .unused, |
| ... | ... | @@ -92037,32 +93366,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92037 | 93366 | .dst_temps = .{ .mem, .unused }, |
| 92038 | 93367 | .clobbers = .{ .eflags = true }, |
| 92039 | 93368 | .each = .{ .once = &.{ |
| 92040 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 92041 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 92042 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 92043 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 92044 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 93369 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93370 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93371 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93372 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93373 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92052 | 93374 | } }, |
| 92053 | 93375 | }, .{ |
| 92054 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92055 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 92056 | | .dst_constraints = .{ .any_scalar_signed_int, .any }, |
| 93376 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93377 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92057 | 93378 | .patterns = &.{ |
| 92058 | 93379 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92059 | 93380 | }, |
| 92060 | 93381 | .extra_temps = .{ |
| 92061 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92062 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92063 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92064 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92065 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 93382 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93383 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93384 | .unused, |
| 93385 | .unused, |
| 93386 | .unused, |
| 92066 | 93387 | .unused, |
| 92067 | 93388 | .unused, |
| 92068 | 93389 | .unused, |
| ... | ... | @@ -92073,32 +93394,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92073 | 93394 | .dst_temps = .{ .mem, .unused }, |
| 92074 | 93395 | .clobbers = .{ .eflags = true }, |
| 92075 | 93396 | .each = .{ .once = &.{ |
| 92076 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 92077 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 92078 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 92079 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| 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, ._, ._, ._ }, |
| 93397 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93398 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93399 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93400 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92087 | 93401 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92088 | 93402 | } }, |
| 92089 | 93403 | }, .{ |
| 92090 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 92091 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 92092 | | .dst_constraints = .{ .any_scalar_int, .any }, |
| 93404 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93405 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93406 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92093 | 93407 | .patterns = &.{ |
| 92094 | 93408 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92095 | 93409 | }, |
| 92096 | 93410 | .extra_temps = .{ |
| 92097 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92098 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92099 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92100 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92101 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 93411 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93412 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93413 | .unused, |
| 93414 | .unused, |
| 93415 | .unused, |
| 92102 | 93416 | .unused, |
| 92103 | 93417 | .unused, |
| 92104 | 93418 | .unused, |
| ... | ... | @@ -92109,30 +93423,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92109 | 93423 | .dst_temps = .{ .mem, .unused }, |
| 92110 | 93424 | .clobbers = .{ .eflags = true }, |
| 92111 | 93425 | .each = .{ .once = &.{ |
| 92112 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 92113 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 92114 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 92115 | | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 92116 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92117 | | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 92118 | | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 92119 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 92120 | | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 92121 | | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 93426 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93427 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93428 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93429 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93430 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93431 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93432 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92122 | 93433 | } }, |
| 92123 | 93434 | }, .{ |
| 92124 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92125 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 92126 | | .dst_constraints = .{ .any_scalar_int, .any }, |
| 93435 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93436 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92127 | 93437 | .patterns = &.{ |
| 92128 | 93438 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92129 | 93439 | }, |
| 92130 | 93440 | .extra_temps = .{ |
| 92131 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 92132 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92133 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92134 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 92135 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 93441 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93442 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93443 | .unused, |
| 93444 | .unused, |
| 93445 | .unused, |
| 92136 | 93446 | .unused, |
| 92137 | 93447 | .unused, |
| 92138 | 93448 | .unused, |
| ... | ... | @@ -92143,343 +93453,84 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92143 | 93453 | .dst_temps = .{ .mem, .unused }, |
| 92144 | 93454 | .clobbers = .{ .eflags = true }, |
| 92145 | 93455 | .each = .{ .once = &.{ |
| 92146 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 92147 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 92148 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 92149 | | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| 92150 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92151 | | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 92152 | | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| 92153 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 92154 | | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 93456 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93457 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93458 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93459 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93460 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93461 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 92155 | 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 }, |
| 92406 | | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92407 | | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 93465 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93466 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93467 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92408 | 93468 | .patterns = &.{ |
| 92409 | 93469 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92410 | 93470 | }, |
| 92411 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 92412 | | .clobbers = .{ .eflags = true }, |
| 92413 | | .each = .{ .once = &.{ |
| 92414 | | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| 92415 | | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 92416 | | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 92417 | | } }, |
| 92418 | | }, .{ |
| 92419 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 92420 | | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, |
| 92421 | | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 92422 | | .patterns = &.{ |
| 92423 | | .{ .src = .{ .mem, .none, .none } }, |
| 92424 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 93471 | .extra_temps = .{ |
| 93472 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93473 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93474 | .unused, |
| 93475 | .unused, |
| 93476 | .unused, |
| 93477 | .unused, |
| 93478 | .unused, |
| 93479 | .unused, |
| 93480 | .unused, |
| 93481 | .unused, |
| 93482 | .unused, |
| 92425 | 93483 | }, |
| 92426 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 93484 | .dst_temps = .{ .mem, .unused }, |
| 92427 | 93485 | .clobbers = .{ .eflags = true }, |
| 92428 | 93486 | .each = .{ .once = &.{ |
| 92429 | | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 92430 | | .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ }, |
| 93487 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 92434 | | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92435 | | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 93495 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93496 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92436 | 93497 | .patterns = &.{ |
| 92437 | 93498 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92438 | 93499 | }, |
| 92439 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 92440 | | .clobbers = .{ .eflags = true }, |
| 92441 | | .each = .{ .once = &.{ |
| 92442 | | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 92443 | | .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ }, |
| 92444 | | } }, |
| 92445 | | }, .{ |
| 92446 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92447 | | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any, .any }, |
| 92448 | | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 92449 | | .patterns = &.{ |
| 92450 | | .{ .src = .{ .mem, .none, .none } }, |
| 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 } }, |
| 93500 | .extra_temps = .{ |
| 93501 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93502 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93503 | .unused, |
| 93504 | .unused, |
| 93505 | .unused, |
| 93506 | .unused, |
| 93507 | .unused, |
| 93508 | .unused, |
| 93509 | .unused, |
| 93510 | .unused, |
| 93511 | .unused, |
| 92465 | 93512 | }, |
| 92466 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 93513 | .dst_temps = .{ .mem, .unused }, |
| 92467 | 93514 | .clobbers = .{ .eflags = true }, |
| 92468 | 93515 | .each = .{ .once = &.{ |
| 92469 | | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 92470 | | .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ }, |
| 93516 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 92474 | | .src_constraints = .{ .any_int, .any, .any }, |
| 92475 | | .dst_constraints = .{ .{ .exact_remainder_int = .{ .of = .xword, .is = 128 } }, .any }, |
| 93524 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93525 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93526 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92476 | 93527 | .patterns = &.{ |
| 92477 | 93528 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92478 | 93529 | }, |
| 92479 | 93530 | .extra_temps = .{ |
| 92480 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92481 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92482 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93531 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93532 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93533 | .unused, |
| 92483 | 93534 | .unused, |
| 92484 | 93535 | .unused, |
| 92485 | 93536 | .unused, |
| ... | ... | @@ -92490,23 +93541,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92490 | 93541 | .unused, |
| 92491 | 93542 | }, |
| 92492 | 93543 | .dst_temps = .{ .mem, .unused }, |
| 93544 | .clobbers = .{ .eflags = true }, |
| 92493 | 93545 | .each = .{ .once = &.{ |
| 92494 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92495 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92496 | | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| 92497 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 93546 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93547 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93548 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93549 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93550 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92498 | 93551 | } }, |
| 92499 | 93552 | }, .{ |
| 92500 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92501 | | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92502 | | .dst_constraints = .{ .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, .any }, |
| 93553 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93554 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92503 | 93555 | .patterns = &.{ |
| 92504 | 93556 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92505 | 93557 | }, |
| 92506 | 93558 | .extra_temps = .{ |
| 92507 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92508 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92509 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93559 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93560 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93561 | .unused, |
| 92510 | 93562 | .unused, |
| 92511 | 93563 | .unused, |
| 92512 | 93564 | .unused, |
| ... | ... | @@ -92519,26 +93571,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92519 | 93571 | .dst_temps = .{ .mem, .unused }, |
| 92520 | 93572 | .clobbers = .{ .eflags = true }, |
| 92521 | 93573 | .each = .{ .once = &.{ |
| 92522 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92523 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92524 | | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92525 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92526 | | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 92527 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 92528 | | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 92529 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 93574 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93575 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93576 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93577 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93578 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92530 | 93579 | } }, |
| 92531 | 93580 | }, .{ |
| 92532 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92533 | | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92534 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 93581 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93582 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93583 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92535 | 93584 | .patterns = &.{ |
| 92536 | 93585 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92537 | 93586 | }, |
| 92538 | 93587 | .extra_temps = .{ |
| 92539 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92540 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92541 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93588 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93589 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93590 | .unused, |
| 92542 | 93591 | .unused, |
| 92543 | 93592 | .unused, |
| 92544 | 93593 | .unused, |
| ... | ... | @@ -92551,28 +93600,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92551 | 93600 | .dst_temps = .{ .mem, .unused }, |
| 92552 | 93601 | .clobbers = .{ .eflags = true }, |
| 92553 | 93602 | .each = .{ .once = &.{ |
| 92554 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92555 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92556 | | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92557 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92558 | | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 92559 | | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 92560 | | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 92561 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 92562 | | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 92563 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 93603 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93604 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93605 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93606 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93607 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93608 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92564 | 93610 | } }, |
| 92565 | 93611 | }, .{ |
| 92566 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92567 | | .src_constraints = .{ .any_signed_int, .any, .any }, |
| 92568 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 93612 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93613 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92569 | 93614 | .patterns = &.{ |
| 92570 | 93615 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92571 | 93616 | }, |
| 92572 | 93617 | .extra_temps = .{ |
| 92573 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92574 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92575 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93618 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93619 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93620 | .unused, |
| 92576 | 93621 | .unused, |
| 92577 | 93622 | .unused, |
| 92578 | 93623 | .unused, |
| ... | ... | @@ -92585,26 +93630,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92585 | 93630 | .dst_temps = .{ .mem, .unused }, |
| 92586 | 93631 | .clobbers = .{ .eflags = true }, |
| 92587 | 93632 | .each = .{ .once = &.{ |
| 92588 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92589 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92590 | | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 92591 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92592 | | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 92593 | | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 92594 | | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 92595 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 93633 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93634 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93635 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93636 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93637 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93638 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93639 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92596 | 93640 | } }, |
| 92597 | 93641 | }, .{ |
| 92598 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92599 | | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92600 | | .dst_constraints = .{ .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, .any }, |
| 93642 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 93643 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93644 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92601 | 93645 | .patterns = &.{ |
| 92602 | 93646 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92603 | 93647 | }, |
| 92604 | 93648 | .extra_temps = .{ |
| 92605 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92606 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92607 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93649 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93650 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93651 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92608 | 93652 | .unused, |
| 92609 | 93653 | .unused, |
| 92610 | 93654 | .unused, |
| ... | ... | @@ -92615,24 +93659,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92615 | 93659 | .unused, |
| 92616 | 93660 | }, |
| 92617 | 93661 | .dst_temps = .{ .mem, .unused }, |
| 93662 | .clobbers = .{ .eflags = true }, |
| 92618 | 93663 | .each = .{ .once = &.{ |
| 92619 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92620 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92621 | | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 92622 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92623 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 93664 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93665 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93666 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93667 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 93668 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93669 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92624 | 93670 | } }, |
| 92625 | 93671 | }, .{ |
| 92626 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 92627 | | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92628 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 93672 | .required_features = .{ .bmi2, null, null, null }, |
| 93673 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93674 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92629 | 93675 | .patterns = &.{ |
| 92630 | 93676 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92631 | | }, |
| 92632 | | .extra_temps = .{ |
| 92633 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92634 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92635 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93677 | }, |
| 93678 | .extra_temps = .{ |
| 93679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93680 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93681 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92636 | 93682 | .unused, |
| 92637 | 93683 | .unused, |
| 92638 | 93684 | .unused, |
| ... | ... | @@ -92645,26 +93691,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92645 | 93691 | .dst_temps = .{ .mem, .unused }, |
| 92646 | 93692 | .clobbers = .{ .eflags = true }, |
| 92647 | 93693 | .each = .{ .once = &.{ |
| 92648 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92649 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92650 | | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92651 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92652 | | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 92653 | | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -16), .tmp2q, ._ }, |
| 92654 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp2q, ._, ._ }, |
| 92655 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 93694 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93695 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93696 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93697 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 93698 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93699 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92656 | 93700 | } }, |
| 92657 | 93701 | }, .{ |
| 92658 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 92659 | | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92660 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 93702 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93703 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93704 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92661 | 93705 | .patterns = &.{ |
| 92662 | 93706 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92663 | 93707 | }, |
| 92664 | 93708 | .extra_temps = .{ |
| 92665 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92666 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92667 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93709 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93710 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93711 | .unused, |
| 92668 | 93712 | .unused, |
| 92669 | 93713 | .unused, |
| 92670 | 93714 | .unused, |
| ... | ... | @@ -92677,25 +93721,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92677 | 93721 | .dst_temps = .{ .mem, .unused }, |
| 92678 | 93722 | .clobbers = .{ .eflags = true }, |
| 92679 | 93723 | .each = .{ .once = &.{ |
| 92680 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92681 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92682 | | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 92683 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92684 | | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 92685 | | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -8), .tmp2q, ._ }, |
| 92686 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| 93724 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93725 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93726 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93727 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93728 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93729 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92687 | 93730 | } }, |
| 92688 | 93731 | }, .{ |
| 92689 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92690 | | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92691 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 93732 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93733 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92692 | 93734 | .patterns = &.{ |
| 92693 | 93735 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92694 | 93736 | }, |
| 92695 | 93737 | .extra_temps = .{ |
| 92696 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92697 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92698 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93738 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93739 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93740 | .unused, |
| 92699 | 93741 | .unused, |
| 92700 | 93742 | .unused, |
| 92701 | 93743 | .unused, |
| ... | ... | @@ -92708,26 +93750,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92708 | 93750 | .dst_temps = .{ .mem, .unused }, |
| 92709 | 93751 | .clobbers = .{ .eflags = true }, |
| 92710 | 93752 | .each = .{ .once = &.{ |
| 92711 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92712 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92713 | | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 92714 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92715 | | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 92716 | | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| 92717 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| 92718 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 93753 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93754 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93755 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93756 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93757 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93758 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92719 | 93759 | } }, |
| 92720 | 93760 | }, .{ |
| 92721 | | .required_features = .{ .@"64bit", null, null, null }, |
| 92722 | | .src_constraints = .{ .any_unsigned_int, .any, .any }, |
| 92723 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 93761 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93762 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93763 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92724 | 93764 | .patterns = &.{ |
| 92725 | 93765 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92726 | 93766 | }, |
| 92727 | 93767 | .extra_temps = .{ |
| 92728 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 92729 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 92730 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 93768 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93769 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93770 | .unused, |
| 92731 | 93771 | .unused, |
| 92732 | 93772 | .unused, |
| 92733 | 93773 | .unused, |
| ... | ... | @@ -92740,25 +93780,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92740 | 93780 | .dst_temps = .{ .mem, .unused }, |
| 92741 | 93781 | .clobbers = .{ .eflags = true }, |
| 92742 | 93782 | .each = .{ .once = &.{ |
| 92743 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 92744 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 92745 | | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 92746 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 92747 | | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| 92748 | | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 92749 | | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| 93783 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93784 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93785 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93786 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93787 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92750 | 93788 | } }, |
| 92751 | 93789 | }, .{ |
| 92752 | | .required_features = .{ .avx, null, null, null }, |
| 92753 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92754 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 93790 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93791 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92755 | 93792 | .patterns = &.{ |
| 92756 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 93793 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92757 | 93794 | }, |
| 92758 | 93795 | .extra_temps = .{ |
| 92759 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92760 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 92761 | | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 93796 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93797 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93798 | .unused, |
| 92762 | 93799 | .unused, |
| 92763 | 93800 | .unused, |
| 92764 | 93801 | .unused, |
| ... | ... | @@ -92768,24 +93805,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92768 | 93805 | .unused, |
| 92769 | 93806 | .unused, |
| 92770 | 93807 | }, |
| 92771 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93808 | .dst_temps = .{ .mem, .unused }, |
| 93809 | .clobbers = .{ .eflags = true }, |
| 92772 | 93810 | .each = .{ .once = &.{ |
| 92773 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92774 | | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 92775 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 92776 | | .{ ._, .vp_b, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 92777 | | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 93811 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93812 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93813 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93814 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93815 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 92778 | 93816 | } }, |
| 92779 | 93817 | }, .{ |
| 92780 | | .required_features = .{ .avx, null, null, null }, |
| 92781 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92782 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 93818 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93819 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93820 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92783 | 93821 | .patterns = &.{ |
| 92784 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 93822 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92785 | 93823 | }, |
| 92786 | 93824 | .extra_temps = .{ |
| 92787 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92788 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93825 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93826 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 92789 | 93827 | .unused, |
| 92790 | 93828 | .unused, |
| 92791 | 93829 | .unused, |
| ... | ... | @@ -92796,22 +93834,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92796 | 93834 | .unused, |
| 92797 | 93835 | .unused, |
| 92798 | 93836 | }, |
| 92799 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93837 | .dst_temps = .{ .mem, .unused }, |
| 93838 | .clobbers = .{ .eflags = true }, |
| 92800 | 93839 | .each = .{ .once = &.{ |
| 92801 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92802 | | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 93840 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 92806 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92807 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 93849 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93850 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92808 | 93851 | .patterns = &.{ |
| 92809 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93852 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92810 | 93853 | }, |
| 92811 | 93854 | .extra_temps = .{ |
| 92812 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92813 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 92814 | | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 93855 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93856 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93857 | .unused, |
| 92815 | 93858 | .unused, |
| 92816 | 93859 | .unused, |
| 92817 | 93860 | .unused, |
| ... | ... | @@ -92821,25 +93864,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92821 | 93864 | .unused, |
| 92822 | 93865 | .unused, |
| 92823 | 93866 | }, |
| 92824 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93867 | .dst_temps = .{ .mem, .unused }, |
| 93868 | .clobbers = .{ .eflags = true }, |
| 92825 | 93869 | .each = .{ .once = &.{ |
| 92826 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92827 | | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 92828 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 92829 | | .{ ._, .p_b, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 92830 | | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 93870 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93871 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93872 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93873 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 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 }, |
| 92834 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92835 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 93879 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 93880 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93881 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92836 | 93882 | .patterns = &.{ |
| 92837 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93883 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92838 | 93884 | }, |
| 92839 | 93885 | .extra_temps = .{ |
| 92840 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92841 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 92842 | | .unused, |
| 93886 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93887 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93888 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92843 | 93889 | .unused, |
| 92844 | 93890 | .unused, |
| 92845 | 93891 | .unused, |
| ... | ... | @@ -92849,22 +93895,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92849 | 93895 | .unused, |
| 92850 | 93896 | .unused, |
| 92851 | 93897 | }, |
| 92852 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93898 | .dst_temps = .{ .mem, .unused }, |
| 93899 | .clobbers = .{ .eflags = true }, |
| 92853 | 93900 | .each = .{ .once = &.{ |
| 92854 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92855 | | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 93901 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 92859 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 92860 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 93909 | .required_features = .{ .bmi2, null, null, null }, |
| 93910 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93911 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92861 | 93912 | .patterns = &.{ |
| 92862 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93913 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92863 | 93914 | }, |
| 92864 | 93915 | .extra_temps = .{ |
| 92865 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92866 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 92867 | | .unused, |
| 93916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93917 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93918 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92868 | 93919 | .unused, |
| 92869 | 93920 | .unused, |
| 92870 | 93921 | .unused, |
| ... | ... | @@ -92874,22 +93925,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92874 | 93925 | .unused, |
| 92875 | 93926 | .unused, |
| 92876 | 93927 | }, |
| 92877 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93928 | .dst_temps = .{ .mem, .unused }, |
| 93929 | .clobbers = .{ .eflags = true }, |
| 92878 | 93930 | .each = .{ .once = &.{ |
| 92879 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92880 | | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 93931 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 92884 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92885 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 93939 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93940 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93941 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92886 | 93942 | .patterns = &.{ |
| 92887 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 93943 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92888 | 93944 | }, |
| 92889 | 93945 | .extra_temps = .{ |
| 92890 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92891 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 92892 | | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 93946 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93947 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93948 | .unused, |
| 92893 | 93949 | .unused, |
| 92894 | 93950 | .unused, |
| 92895 | 93951 | .unused, |
| ... | ... | @@ -92899,24 +93955,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92899 | 93955 | .unused, |
| 92900 | 93956 | .unused, |
| 92901 | 93957 | }, |
| 92902 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93958 | .dst_temps = .{ .mem, .unused }, |
| 93959 | .clobbers = .{ .eflags = true }, |
| 92903 | 93960 | .each = .{ .once = &.{ |
| 92904 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92905 | | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 92906 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 92907 | | .{ ._, .vp_b, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 92908 | | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| 93961 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93962 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93963 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93964 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93965 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93966 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92909 | 93967 | } }, |
| 92910 | 93968 | }, .{ |
| 92911 | | .required_features = .{ .avx2, null, null, null }, |
| 92912 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92913 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 93969 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93970 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 92914 | 93971 | .patterns = &.{ |
| 92915 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 93972 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92916 | 93973 | }, |
| 92917 | 93974 | .extra_temps = .{ |
| 92918 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 92919 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93975 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93976 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 92920 | 93977 | .unused, |
| 92921 | 93978 | .unused, |
| 92922 | 93979 | .unused, |
| ... | ... | @@ -92927,25 +93984,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92927 | 93984 | .unused, |
| 92928 | 93985 | .unused, |
| 92929 | 93986 | }, |
| 92930 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93987 | .dst_temps = .{ .mem, .unused }, |
| 93988 | .clobbers = .{ .eflags = true }, |
| 92931 | 93989 | .each = .{ .once = &.{ |
| 92932 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 92933 | | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 93990 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 92937 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92938 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 93998 | .required_features = .{ .slow_incdec, null, null, null }, |
| 93999 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 94000 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92939 | 94001 | .patterns = &.{ |
| 92940 | 94002 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92941 | 94003 | }, |
| 92942 | 94004 | .extra_temps = .{ |
| 92943 | 94005 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92944 | | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| 92945 | | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| 92946 | | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| 92947 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 92948 | | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 94006 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94007 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94008 | .unused, |
| 94009 | .unused, |
| 94010 | .unused, |
| 92949 | 94011 | .unused, |
| 92950 | 94012 | .unused, |
| 92951 | 94013 | .unused, |
| ... | ... | @@ -92955,30 +94017,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92955 | 94017 | .dst_temps = .{ .mem, .unused }, |
| 92956 | 94018 | .clobbers = .{ .eflags = true }, |
| 92957 | 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 | 94020 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92963 | | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 92964 | | .{ ._, .vp_b, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| 92965 | | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| 92966 | | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, |
| 92967 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 94021 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94022 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94023 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 94024 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94025 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 92968 | 94026 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 92969 | 94027 | } }, |
| 92970 | 94028 | }, .{ |
| 92971 | | .required_features = .{ .avx2, null, null, null }, |
| 92972 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any, .any }, |
| 92973 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| 94029 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 94030 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 92974 | 94031 | .patterns = &.{ |
| 92975 | 94032 | .{ .src = .{ .to_mem, .none, .none } }, |
| 92976 | 94033 | }, |
| 92977 | 94034 | .extra_temps = .{ |
| 92978 | 94035 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 92979 | | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 92980 | | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| 92981 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94036 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94037 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94038 | .unused, |
| 92982 | 94039 | .unused, |
| 92983 | 94040 | .unused, |
| 92984 | 94041 | .unused, |
| ... | ... | @@ -92990,28 +94047,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92990 | 94047 | .dst_temps = .{ .mem, .unused }, |
| 92991 | 94048 | .clobbers = .{ .eflags = true }, |
| 92992 | 94049 | .each = .{ .once = &.{ |
| 92993 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 92994 | | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 92995 | 94050 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 92996 | | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 92997 | | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 92998 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 92999 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94051 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94052 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94053 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 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 }, |
| 93003 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93004 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 94059 | .required_features = .{ .slow_incdec, null, null, null }, |
| 94060 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 94061 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93005 | 94062 | .patterns = &.{ |
| 93006 | 94063 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93007 | 94064 | }, |
| 93008 | 94065 | .extra_temps = .{ |
| 93009 | 94066 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93010 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93011 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93012 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93013 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93014 | | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 94067 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94068 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94069 | .unused, |
| 94070 | .unused, |
| 94071 | .unused, |
| 93015 | 94072 | .unused, |
| 93016 | 94073 | .unused, |
| 93017 | 94074 | .unused, |
| ... | ... | @@ -93021,30 +94078,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93021 | 94078 | .dst_temps = .{ .mem, .unused }, |
| 93022 | 94079 | .clobbers = .{ .eflags = true }, |
| 93023 | 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 | 94081 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93029 | | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 93030 | | .{ ._, .vp_b, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 93031 | | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 93032 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 93033 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94082 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94083 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94084 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 94085 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 94086 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 94087 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94088 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93034 | 94089 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93035 | 94090 | } }, |
| 93036 | 94091 | }, .{ |
| 93037 | | .required_features = .{ .avx, null, null, null }, |
| 93038 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93039 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 94092 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 94093 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93040 | 94094 | .patterns = &.{ |
| 93041 | 94095 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93042 | 94096 | }, |
| 93043 | 94097 | .extra_temps = .{ |
| 93044 | 94098 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93045 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93046 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93047 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94099 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94100 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94101 | .unused, |
| 93048 | 94102 | .unused, |
| 93049 | 94103 | .unused, |
| 93050 | 94104 | .unused, |
| ... | ... | @@ -93056,28 +94110,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93056 | 94110 | .dst_temps = .{ .mem, .unused }, |
| 93057 | 94111 | .clobbers = .{ .eflags = true }, |
| 93058 | 94112 | .each = .{ .once = &.{ |
| 93059 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 93060 | | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93061 | 94113 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93062 | | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 93063 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 93064 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93065 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94114 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94115 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94116 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 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 }, |
| 93069 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93070 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 94124 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 94125 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94126 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93071 | 94127 | .patterns = &.{ |
| 93072 | 94128 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93073 | 94129 | }, |
| 93074 | 94130 | .extra_temps = .{ |
| 93075 | 94131 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93076 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93077 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93078 | | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| 93079 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93080 | | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| 94132 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94133 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94134 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94135 | .unused, |
| 94136 | .unused, |
| 93081 | 94137 | .unused, |
| 93082 | 94138 | .unused, |
| 93083 | 94139 | .unused, |
| ... | ... | @@ -93087,31 +94143,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93087 | 94143 | .dst_temps = .{ .mem, .unused }, |
| 93088 | 94144 | .clobbers = .{ .eflags = true }, |
| 93089 | 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 | 94146 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93095 | | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, |
| 93096 | | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93097 | | .{ ._, .p_b, .add, .tmp3x, .tmp2x, ._, ._ }, |
| 93098 | | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, |
| 93099 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 93100 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94147 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94148 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94149 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 94150 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 94151 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94152 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93101 | 94153 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93102 | 94154 | } }, |
| 93103 | 94155 | }, .{ |
| 93104 | | .required_features = .{ .sse2, null, null, null }, |
| 93105 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93106 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 94156 | .required_features = .{ .bmi2, null, null, null }, |
| 94157 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94158 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93107 | 94159 | .patterns = &.{ |
| 93108 | 94160 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93109 | 94161 | }, |
| 93110 | 94162 | .extra_temps = .{ |
| 93111 | 94163 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93112 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93113 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93114 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94164 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94165 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94166 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93115 | 94167 | .unused, |
| 93116 | 94168 | .unused, |
| 93117 | 94169 | .unused, |
| ... | ... | @@ -93123,27 +94175,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93123 | 94175 | .dst_temps = .{ .mem, .unused }, |
| 93124 | 94176 | .clobbers = .{ .eflags = true }, |
| 93125 | 94177 | .each = .{ .once = &.{ |
| 93126 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 93127 | | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93128 | 94178 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93129 | | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 93130 | | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93131 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 93132 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93133 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94179 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94180 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94181 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 94182 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 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 }, |
| 93137 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any, .any }, |
| 93138 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 94188 | .required_features = .{ .slow_incdec, null, null, null }, |
| 94189 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94190 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93139 | 94191 | .patterns = &.{ |
| 93140 | 94192 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93141 | 94193 | }, |
| 93142 | 94194 | .extra_temps = .{ |
| 93143 | 94195 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93144 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93145 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 93146 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94196 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94197 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94198 | .unused, |
| 93147 | 94199 | .unused, |
| 93148 | 94200 | .unused, |
| 93149 | 94201 | .unused, |
| ... | ... | @@ -93155,26 +94207,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93155 | 94207 | .dst_temps = .{ .mem, .unused }, |
| 93156 | 94208 | .clobbers = .{ .eflags = true }, |
| 93157 | 94209 | .each = .{ .once = &.{ |
| 93158 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 93159 | | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93160 | 94210 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93161 | | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 93162 | | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93163 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 93164 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94211 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94212 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94213 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 94214 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 94215 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94216 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93165 | 94217 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93166 | 94218 | } }, |
| 93167 | 94219 | }, .{ |
| 93168 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93169 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93170 | | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, |
| 94220 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94221 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 93171 | 94222 | .patterns = &.{ |
| 93172 | 94223 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93173 | 94224 | }, |
| 93174 | 94225 | .extra_temps = .{ |
| 93175 | 94226 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93176 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93177 | | .unused, |
| 94227 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94228 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93178 | 94229 | .unused, |
| 93179 | 94230 | .unused, |
| 93180 | 94231 | .unused, |
| ... | ... | @@ -93188,22 +94239,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93188 | 94239 | .clobbers = .{ .eflags = true }, |
| 93189 | 94240 | .each = .{ .once = &.{ |
| 93190 | 94241 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93191 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93192 | | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| 93193 | | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| 93194 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93195 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 93196 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94242 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94243 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94244 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 94245 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 94246 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 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 }, |
| 93200 | | .dst_constraints = .{ .{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }, .any }, |
| 94251 | .required_features = .{ .avx, null, null, null }, |
| 94252 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94253 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93201 | 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 | 94269 | .extra_temps = .{ |
| 93205 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93206 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94270 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 94271 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93207 | 94272 | .unused, |
| 93208 | 94273 | .unused, |
| 93209 | 94274 | .unused, |
| ... | ... | @@ -93214,27 +94279,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93214 | 94279 | .unused, |
| 93215 | 94280 | .unused, |
| 93216 | 94281 | }, |
| 93217 | | .dst_temps = .{ .mem, .unused }, |
| 93218 | | .clobbers = .{ .eflags = true }, |
| 94282 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93219 | 94283 | .each = .{ .once = &.{ |
| 93220 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93221 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 94284 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 94285 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 93227 | 94286 | } }, |
| 93228 | 94287 | }, .{ |
| 93229 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93230 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93231 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94288 | .required_features = .{ .sse2, null, null, null }, |
| 94289 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94290 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93232 | 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 | 94306 | .extra_temps = .{ |
| 93236 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93237 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94307 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 94308 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93238 | 94309 | .unused, |
| 93239 | 94310 | .unused, |
| 93240 | 94311 | .unused, |
| ... | ... | @@ -93245,26 +94316,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93245 | 94316 | .unused, |
| 93246 | 94317 | .unused, |
| 93247 | 94318 | }, |
| 93248 | | .dst_temps = .{ .mem, .unused }, |
| 93249 | | .clobbers = .{ .eflags = true }, |
| 94319 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93250 | 94320 | .each = .{ .once = &.{ |
| 93251 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93252 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 94321 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 94322 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 93258 | 94323 | } }, |
| 93259 | 94324 | }, .{ |
| 93260 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93261 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94325 | .required_features = .{ .sse, null, null, null }, |
| 94326 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94327 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93262 | 94328 | .patterns = &.{ |
| 93263 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 94329 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 93264 | 94330 | }, |
| 93265 | 94331 | .extra_temps = .{ |
| 93266 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93267 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94332 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 94333 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93268 | 94334 | .unused, |
| 93269 | 94335 | .unused, |
| 93270 | 94336 | .unused, |
| ... | ... | @@ -93275,27 +94341,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93275 | 94341 | .unused, |
| 93276 | 94342 | .unused, |
| 93277 | 94343 | }, |
| 93278 | | .dst_temps = .{ .mem, .unused }, |
| 93279 | | .clobbers = .{ .eflags = true }, |
| 94344 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 93280 | 94345 | .each = .{ .once = &.{ |
| 93281 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93282 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 94346 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 94347 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 93288 | 94348 | } }, |
| 93289 | 94349 | }, .{ |
| 93290 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93291 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93292 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94350 | .required_features = .{ .avx2, null, null, null }, |
| 94351 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 94352 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| 93293 | 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 | 94368 | .extra_temps = .{ |
| 93297 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93298 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94369 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 94370 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 93299 | 94371 | .unused, |
| 93300 | 94372 | .unused, |
| 93301 | 94373 | .unused, |
| ... | ... | @@ -93306,25 +94378,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93306 | 94378 | .unused, |
| 93307 | 94379 | .unused, |
| 93308 | 94380 | }, |
| 93309 | | .dst_temps = .{ .mem, .unused }, |
| 93310 | | .clobbers = .{ .eflags = true }, |
| 94381 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 93311 | 94382 | .each = .{ .once = &.{ |
| 93312 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93313 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 94383 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 94384 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 93318 | 94385 | } }, |
| 93319 | 94386 | }, .{ |
| 93320 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 93321 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94387 | .required_features = .{ .avx2, null, null, null }, |
| 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 | 94390 | .patterns = &.{ |
| 93323 | 94391 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93324 | 94392 | }, |
| 93325 | 94393 | .extra_temps = .{ |
| 93326 | 94394 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93327 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94395 | .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, |
| 93328 | 94396 | .unused, |
| 93329 | 94397 | .unused, |
| 93330 | 94398 | .unused, |
| ... | ... | @@ -93339,24 +94407,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93339 | 94407 | .clobbers = .{ .eflags = true }, |
| 93340 | 94408 | .each = .{ .once = &.{ |
| 93341 | 94409 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93342 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 93343 | | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93344 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93345 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93346 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94410 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94411 | .{ ._, .vp_w, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 94412 | .{ ._, .vp_w, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 94413 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 94414 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 94415 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93347 | 94416 | } }, |
| 93348 | 94417 | }, .{ |
| 93349 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93350 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93351 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 94418 | .required_features = .{ .avx2, null, null, null }, |
| 94419 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 94420 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| 93352 | 94421 | .patterns = &.{ |
| 93353 | 94422 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93354 | 94423 | }, |
| 93355 | 94424 | .extra_temps = .{ |
| 93356 | 94425 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93357 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93358 | | .unused, |
| 93359 | | .unused, |
| 94426 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 94427 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 94428 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93360 | 94429 | .unused, |
| 93361 | 94430 | .unused, |
| 93362 | 94431 | .unused, |
| ... | ... | @@ -93368,21 +94437,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93368 | 94437 | .dst_temps = .{ .mem, .unused }, |
| 93369 | 94438 | .clobbers = .{ .eflags = true }, |
| 93370 | 94439 | .each = .{ .once = &.{ |
| 94440 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 94441 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 93371 | 94442 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93372 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93373 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93374 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94443 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 94444 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 94445 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 93375 | 94446 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93376 | 94447 | } }, |
| 93377 | 94448 | }, .{ |
| 93378 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93379 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 94449 | .required_features = .{ .avx, null, null, null }, |
| 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 | 94452 | .patterns = &.{ |
| 93381 | 94453 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93382 | 94454 | }, |
| 93383 | 94455 | .extra_temps = .{ |
| 93384 | 94456 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93385 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94457 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 93386 | 94458 | .unused, |
| 93387 | 94459 | .unused, |
| 93388 | 94460 | .unused, |
| ... | ... | @@ -93397,23 +94469,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93397 | 94469 | .clobbers = .{ .eflags = true }, |
| 93398 | 94470 | .each = .{ .once = &.{ |
| 93399 | 94471 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93400 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93401 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93402 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93403 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94472 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94473 | .{ ._, .vp_w, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 94474 | .{ ._, .vp_w, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 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 }, |
| 93407 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93408 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94480 | .required_features = .{ .avx, null, null, null }, |
| 94481 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94482 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93409 | 94483 | .patterns = &.{ |
| 93410 | 94484 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93411 | 94485 | }, |
| 93412 | 94486 | .extra_temps = .{ |
| 93413 | 94487 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93414 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93415 | | .unused, |
| 93416 | | .unused, |
| 94488 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94489 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94490 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93417 | 94491 | .unused, |
| 93418 | 94492 | .unused, |
| 93419 | 94493 | .unused, |
| ... | ... | @@ -93425,23 +94499,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93425 | 94499 | .dst_temps = .{ .mem, .unused }, |
| 93426 | 94500 | .clobbers = .{ .eflags = true }, |
| 93427 | 94501 | .each = .{ .once = &.{ |
| 94502 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 94503 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93428 | 94504 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93429 | | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93430 | | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93431 | | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93432 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93433 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94505 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 94506 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 94507 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93434 | 94508 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93435 | 94509 | } }, |
| 93436 | 94510 | }, .{ |
| 93437 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93438 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94511 | .required_features = .{ .sse2, null, null, null }, |
| 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 | 94514 | .patterns = &.{ |
| 93440 | 94515 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93441 | 94516 | }, |
| 93442 | 94517 | .extra_temps = .{ |
| 93443 | 94518 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93444 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94519 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 93445 | 94520 | .unused, |
| 93446 | 94521 | .unused, |
| 93447 | 94522 | .unused, |
| ... | ... | @@ -93456,25 +94531,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93456 | 94531 | .clobbers = .{ .eflags = true }, |
| 93457 | 94532 | .each = .{ .once = &.{ |
| 93458 | 94533 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93459 | | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93460 | | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93461 | | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93462 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93463 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93464 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94534 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94535 | .{ ._, .p_w, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 94536 | .{ ._, .p_w, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 94537 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 94538 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94539 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93465 | 94540 | } }, |
| 93466 | 94541 | }, .{ |
| 93467 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93468 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93469 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94542 | .required_features = .{ .sse2, null, null, null }, |
| 94543 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94544 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 93470 | 94545 | .patterns = &.{ |
| 93471 | 94546 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93472 | 94547 | }, |
| 93473 | 94548 | .extra_temps = .{ |
| 93474 | 94549 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93475 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93476 | | .unused, |
| 93477 | | .unused, |
| 94550 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94551 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94552 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93478 | 94553 | .unused, |
| 93479 | 94554 | .unused, |
| 93480 | 94555 | .unused, |
| ... | ... | @@ -93486,24 +94561,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93486 | 94561 | .dst_temps = .{ .mem, .unused }, |
| 93487 | 94562 | .clobbers = .{ .eflags = true }, |
| 93488 | 94563 | .each = .{ .once = &.{ |
| 94564 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 94565 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93489 | 94566 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93490 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93491 | | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93492 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93493 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94567 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 94568 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94569 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 94570 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 93494 | 94571 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93495 | 94572 | } }, |
| 93496 | 94573 | }, .{ |
| 93497 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 93498 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94574 | .required_features = .{ .sse, null, null, null }, |
| 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 | 94577 | .patterns = &.{ |
| 93500 | 94578 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93501 | 94579 | }, |
| 93502 | 94580 | .extra_temps = .{ |
| 93503 | 94581 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93504 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93505 | | .unused, |
| 93506 | | .unused, |
| 94582 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94583 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94584 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 93507 | 94585 | .unused, |
| 93508 | 94586 | .unused, |
| 93509 | 94587 | .unused, |
| ... | ... | @@ -93515,23 +94593,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93515 | 94593 | .dst_temps = .{ .mem, .unused }, |
| 93516 | 94594 | .clobbers = .{ .eflags = true }, |
| 93517 | 94595 | .each = .{ .once = &.{ |
| 94596 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 94597 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 93518 | 94598 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93519 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93520 | | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93521 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93522 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93523 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94599 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 94600 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94601 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 94602 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94603 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93524 | 94604 | } }, |
| 93525 | 94605 | }, .{ |
| 93526 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93527 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93528 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 94606 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94607 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 93529 | 94608 | .patterns = &.{ |
| 93530 | 94609 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93531 | 94610 | }, |
| 93532 | 94611 | .extra_temps = .{ |
| 93533 | 94612 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93534 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94613 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93535 | 94614 | .unused, |
| 93536 | 94615 | .unused, |
| 93537 | 94616 | .unused, |
| ... | ... | @@ -93546,20 +94625,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93546 | 94625 | .clobbers = .{ .eflags = true }, |
| 93547 | 94626 | .each = .{ .once = &.{ |
| 93548 | 94627 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93549 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93550 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93551 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94628 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94629 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94630 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93552 | 94631 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93553 | 94632 | } }, |
| 93554 | 94633 | }, .{ |
| 93555 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93556 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 94634 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94635 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 93557 | 94636 | .patterns = &.{ |
| 93558 | 94637 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93559 | 94638 | }, |
| 93560 | 94639 | .extra_temps = .{ |
| 93561 | 94640 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93562 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94641 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 93563 | 94642 | .unused, |
| 93564 | 94643 | .unused, |
| 93565 | 94644 | .unused, |
| ... | ... | @@ -93574,21 +94653,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93574 | 94653 | .clobbers = .{ .eflags = true }, |
| 93575 | 94654 | .each = .{ .once = &.{ |
| 93576 | 94655 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93577 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93578 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93579 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93580 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94656 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94657 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94658 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 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 }, |
| 93584 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93585 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94664 | .required_features = .{ .fast_imm16, null, null, null }, |
| 94665 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94666 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93586 | 94667 | .patterns = &.{ |
| 93587 | 94668 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93588 | 94669 | }, |
| 93589 | 94670 | .extra_temps = .{ |
| 93590 | 94671 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93591 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94672 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93592 | 94673 | .unused, |
| 93593 | 94674 | .unused, |
| 93594 | 94675 | .unused, |
| ... | ... | @@ -93603,22 +94684,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93603 | 94684 | .clobbers = .{ .eflags = true }, |
| 93604 | 94685 | .each = .{ .once = &.{ |
| 93605 | 94686 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93606 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93607 | | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93608 | | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93609 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93610 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94687 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94688 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94689 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94690 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93611 | 94691 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93612 | 94692 | } }, |
| 93613 | 94693 | }, .{ |
| 93614 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93615 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94694 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94695 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93616 | 94696 | .patterns = &.{ |
| 93617 | 94697 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93618 | 94698 | }, |
| 93619 | 94699 | .extra_temps = .{ |
| 93620 | 94700 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93621 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94701 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93622 | 94702 | .unused, |
| 93623 | 94703 | .unused, |
| 93624 | 94704 | .unused, |
| ... | ... | @@ -93633,24 +94713,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93633 | 94713 | .clobbers = .{ .eflags = true }, |
| 93634 | 94714 | .each = .{ .once = &.{ |
| 93635 | 94715 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93636 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93637 | | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93638 | | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93639 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93640 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93641 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94716 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94717 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94718 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94719 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94720 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93642 | 94721 | } }, |
| 93643 | 94722 | }, .{ |
| 93644 | | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 93645 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93646 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94723 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94724 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 93647 | 94725 | .patterns = &.{ |
| 93648 | 94726 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93649 | 94727 | }, |
| 93650 | 94728 | .extra_temps = .{ |
| 93651 | 94729 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93652 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93653 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94730 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94731 | .unused, |
| 93654 | 94732 | .unused, |
| 93655 | 94733 | .unused, |
| 93656 | 94734 | .unused, |
| ... | ... | @@ -93664,23 +94742,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93664 | 94742 | .clobbers = .{ .eflags = true }, |
| 93665 | 94743 | .each = .{ .once = &.{ |
| 93666 | 94744 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93667 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93668 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93669 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 93670 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94745 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94746 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94747 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93671 | 94748 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93672 | 94749 | } }, |
| 93673 | 94750 | }, .{ |
| 93674 | | .required_features = .{ .bmi2, null, null, null }, |
| 93675 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 93676 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94751 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94752 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 93677 | 94753 | .patterns = &.{ |
| 93678 | 94754 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93679 | 94755 | }, |
| 93680 | 94756 | .extra_temps = .{ |
| 93681 | 94757 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93682 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93683 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94758 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 94759 | .unused, |
| 93684 | 94760 | .unused, |
| 93685 | 94761 | .unused, |
| 93686 | 94762 | .unused, |
| ... | ... | @@ -93694,23 +94770,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93694 | 94770 | .clobbers = .{ .eflags = true }, |
| 93695 | 94771 | .each = .{ .once = &.{ |
| 93696 | 94772 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93697 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93698 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93699 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 93700 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93701 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94773 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94774 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94775 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94776 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 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 | 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 | 94784 | .patterns = &.{ |
| 93708 | 94785 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93709 | 94786 | }, |
| 93710 | 94787 | .extra_temps = .{ |
| 93711 | 94788 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93712 | 94789 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93713 | | .unused, |
| 94790 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93714 | 94791 | .unused, |
| 93715 | 94792 | .unused, |
| 93716 | 94793 | .unused, |
| ... | ... | @@ -93724,21 +94801,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93724 | 94801 | .clobbers = .{ .eflags = true }, |
| 93725 | 94802 | .each = .{ .once = &.{ |
| 93726 | 94803 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93727 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93728 | | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93729 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93730 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94804 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94805 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 94806 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94807 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93731 | 94808 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93732 | 94809 | } }, |
| 93733 | 94810 | }, .{ |
| 94811 | .required_features = .{ .fast_imm16, null, null, null }, |
| 93734 | 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 | 94814 | .patterns = &.{ |
| 93737 | 94815 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93738 | 94816 | }, |
| 93739 | 94817 | .extra_temps = .{ |
| 93740 | 94818 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93741 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94819 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93742 | 94820 | .unused, |
| 93743 | 94821 | .unused, |
| 93744 | 94822 | .unused, |
| ... | ... | @@ -93753,22 +94831,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93753 | 94831 | .clobbers = .{ .eflags = true }, |
| 93754 | 94832 | .each = .{ .once = &.{ |
| 93755 | 94833 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93756 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93757 | | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93758 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93759 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93760 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94834 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94835 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94836 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94837 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94838 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93761 | 94839 | } }, |
| 93762 | 94840 | }, .{ |
| 93763 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93764 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93765 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 94841 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94842 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 93766 | 94843 | .patterns = &.{ |
| 93767 | 94844 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93768 | 94845 | }, |
| 93769 | 94846 | .extra_temps = .{ |
| 93770 | 94847 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93771 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94848 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93772 | 94849 | .unused, |
| 93773 | 94850 | .unused, |
| 93774 | 94851 | .unused, |
| ... | ... | @@ -93783,20 +94860,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93783 | 94860 | .clobbers = .{ .eflags = true }, |
| 93784 | 94861 | .each = .{ .once = &.{ |
| 93785 | 94862 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93786 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93787 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93788 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94863 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94864 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94865 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94866 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93789 | 94867 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93790 | 94868 | } }, |
| 93791 | 94869 | }, .{ |
| 93792 | 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 | 94872 | .patterns = &.{ |
| 93795 | 94873 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93796 | 94874 | }, |
| 93797 | 94875 | .extra_temps = .{ |
| 93798 | 94876 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93799 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94877 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93800 | 94878 | .unused, |
| 93801 | 94879 | .unused, |
| 93802 | 94880 | .unused, |
| ... | ... | @@ -93811,21 +94889,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93811 | 94889 | .clobbers = .{ .eflags = true }, |
| 93812 | 94890 | .each = .{ .once = &.{ |
| 93813 | 94891 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93814 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93815 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93816 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93817 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94892 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94893 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94894 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94895 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93818 | 94896 | } }, |
| 93819 | 94897 | }, .{ |
| 93820 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93821 | 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 | 94900 | .patterns = &.{ |
| 93824 | 94901 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93825 | 94902 | }, |
| 93826 | 94903 | .extra_temps = .{ |
| 93827 | 94904 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93828 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 94905 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 93829 | 94906 | .unused, |
| 93830 | 94907 | .unused, |
| 93831 | 94908 | .unused, |
| ... | ... | @@ -93840,23 +94917,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93840 | 94917 | .clobbers = .{ .eflags = true }, |
| 93841 | 94918 | .each = .{ .once = &.{ |
| 93842 | 94919 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93843 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93844 | | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93845 | | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93846 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93847 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94920 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94921 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94922 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94923 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94924 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93848 | 94925 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93849 | 94926 | } }, |
| 93850 | 94927 | }, .{ |
| 93851 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93852 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 94928 | .required_features = .{ .bmi2, null, null, null }, |
| 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 | 94931 | .patterns = &.{ |
| 93854 | 94932 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93855 | 94933 | }, |
| 93856 | 94934 | .extra_temps = .{ |
| 93857 | 94935 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93858 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 93859 | | .unused, |
| 94936 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94937 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93860 | 94938 | .unused, |
| 93861 | 94939 | .unused, |
| 93862 | 94940 | .unused, |
| ... | ... | @@ -93870,24 +94948,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93870 | 94948 | .clobbers = .{ .eflags = true }, |
| 93871 | 94949 | .each = .{ .once = &.{ |
| 93872 | 94950 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93873 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93874 | | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93875 | | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 93876 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93877 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93878 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 94951 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94952 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 94953 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94954 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94955 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93879 | 94956 | } }, |
| 93880 | 94957 | }, .{ |
| 93881 | | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 94958 | .required_features = .{ .fast_imm16, null, null, null }, |
| 93882 | 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 | 94961 | .patterns = &.{ |
| 93885 | 94962 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93886 | 94963 | }, |
| 93887 | 94964 | .extra_temps = .{ |
| 93888 | 94965 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93889 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93890 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94966 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94967 | .unused, |
| 93891 | 94968 | .unused, |
| 93892 | 94969 | .unused, |
| 93893 | 94970 | .unused, |
| ... | ... | @@ -93901,23 +94978,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93901 | 94978 | .clobbers = .{ .eflags = true }, |
| 93902 | 94979 | .each = .{ .once = &.{ |
| 93903 | 94980 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93904 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93905 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93906 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 93907 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 94981 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94982 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94983 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94984 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93908 | 94985 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93909 | 94986 | } }, |
| 93910 | 94987 | }, .{ |
| 93911 | | .required_features = .{ .bmi2, null, null, null }, |
| 93912 | 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 | 94990 | .patterns = &.{ |
| 93915 | 94991 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93916 | 94992 | }, |
| 93917 | 94993 | .extra_temps = .{ |
| 93918 | 94994 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93919 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 93920 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94995 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94996 | .unused, |
| 93921 | 94997 | .unused, |
| 93922 | 94998 | .unused, |
| 93923 | 94999 | .unused, |
| ... | ... | @@ -93931,22 +95007,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93931 | 95007 | .clobbers = .{ .eflags = true }, |
| 93932 | 95008 | .each = .{ .once = &.{ |
| 93933 | 95009 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93934 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 93935 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 93936 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 93937 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93938 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95010 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95011 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95012 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95013 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95014 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93939 | 95015 | } }, |
| 93940 | 95016 | }, .{ |
| 93941 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 93942 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93943 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 95017 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95018 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 93944 | 95019 | .patterns = &.{ |
| 93945 | 95020 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93946 | 95021 | }, |
| 93947 | 95022 | .extra_temps = .{ |
| 93948 | 95023 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93949 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95024 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 93950 | 95025 | .unused, |
| 93951 | 95026 | .unused, |
| 93952 | 95027 | .unused, |
| ... | ... | @@ -93962,20 +95037,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93962 | 95037 | .each = .{ .once = &.{ |
| 93963 | 95038 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93964 | 95039 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93965 | | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93966 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93967 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 95040 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95041 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 93968 | 95042 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93969 | 95043 | } }, |
| 93970 | 95044 | }, .{ |
| 93971 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 93972 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 95045 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95046 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 93973 | 95047 | .patterns = &.{ |
| 93974 | 95048 | .{ .src = .{ .to_mem, .none, .none } }, |
| 93975 | 95049 | }, |
| 93976 | 95050 | .extra_temps = .{ |
| 93977 | 95051 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 93978 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95052 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 93979 | 95053 | .unused, |
| 93980 | 95054 | .unused, |
| 93981 | 95055 | .unused, |
| ... | ... | @@ -93991,22 +95065,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 93991 | 95065 | .each = .{ .once = &.{ |
| 93992 | 95066 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 93993 | 95067 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 93994 | | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| 93995 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 93996 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 93997 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95068 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95069 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95070 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95071 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95072 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 93998 | 95073 | } }, |
| 93999 | 95074 | }, .{ |
| 94000 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 94001 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 94002 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 95075 | .required_features = .{ .bmi2, null, null, null }, |
| 95076 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95077 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94003 | 95078 | .patterns = &.{ |
| 94004 | 95079 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94005 | 95080 | }, |
| 94006 | 95081 | .extra_temps = .{ |
| 94007 | 95082 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94008 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94009 | 95083 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95084 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94010 | 95085 | .unused, |
| 94011 | 95086 | .unused, |
| 94012 | 95087 | .unused, |
| ... | ... | @@ -94020,23 +95095,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94020 | 95095 | .clobbers = .{ .eflags = true }, |
| 94021 | 95096 | .each = .{ .once = &.{ |
| 94022 | 95097 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94023 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94024 | | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94025 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 94026 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94027 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 95098 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95099 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 95100 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 95101 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94028 | 95102 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94029 | 95103 | } }, |
| 94030 | | }, .{ |
| 94031 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 94032 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }, .any }, |
| 95104 | }, .{ |
| 95105 | .required_features = .{ .fast_imm16, null, null, null }, |
| 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 | 95108 | .patterns = &.{ |
| 94034 | 95109 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94035 | 95110 | }, |
| 94036 | 95111 | .extra_temps = .{ |
| 94037 | 95112 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94038 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94039 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95113 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95114 | .unused, |
| 94040 | 95115 | .unused, |
| 94041 | 95116 | .unused, |
| 94042 | 95117 | .unused, |
| ... | ... | @@ -94050,24 +95125,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94050 | 95125 | .clobbers = .{ .eflags = true }, |
| 94051 | 95126 | .each = .{ .once = &.{ |
| 94052 | 95127 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94053 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94054 | | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94055 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 94056 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94057 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 94058 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95128 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95129 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 95130 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95131 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95132 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94059 | 95133 | } }, |
| 94060 | 95134 | }, .{ |
| 94061 | | .required_features = .{ .slow_incdec, null, null, null }, |
| 94062 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 94063 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 95135 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95136 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 94064 | 95137 | .patterns = &.{ |
| 94065 | 95138 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94066 | 95139 | }, |
| 94067 | 95140 | .extra_temps = .{ |
| 94068 | 95141 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94069 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94070 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 95142 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95143 | .unused, |
| 94071 | 95144 | .unused, |
| 94072 | 95145 | .unused, |
| 94073 | 95146 | .unused, |
| ... | ... | @@ -94081,25 +95154,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94081 | 95154 | .clobbers = .{ .eflags = true }, |
| 94082 | 95155 | .each = .{ .once = &.{ |
| 94083 | 95156 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94084 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94085 | | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94086 | | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 94087 | | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 94088 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 94089 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94090 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 95157 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95158 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95159 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95160 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94091 | 95161 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94092 | 95162 | } }, |
| 94093 | 95163 | }, .{ |
| 94094 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 94095 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 95164 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 95165 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 94096 | 95166 | .patterns = &.{ |
| 94097 | 95167 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94098 | 95168 | }, |
| 94099 | 95169 | .extra_temps = .{ |
| 94100 | 95170 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94101 | 95171 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94102 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 95172 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94103 | 95173 | .unused, |
| 94104 | 95174 | .unused, |
| 94105 | 95175 | .unused, |
| ... | ... | @@ -94115,25 +95185,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94115 | 95185 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94116 | 95186 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94117 | 95187 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94118 | | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 94119 | | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| 94120 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 95188 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94121 | 95189 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94122 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 94123 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95190 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95191 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94124 | 95192 | } }, |
| 94125 | 95193 | }, .{ |
| 94126 | | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| 94127 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 94128 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 95194 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 95195 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 94129 | 95196 | .patterns = &.{ |
| 94130 | 95197 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94131 | 95198 | }, |
| 94132 | 95199 | .extra_temps = .{ |
| 94133 | 95200 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94134 | 95201 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94135 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94136 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95202 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 95203 | .unused, |
| 94137 | 95204 | .unused, |
| 94138 | 95205 | .unused, |
| 94139 | 95206 | .unused, |
| ... | ... | @@ -94147,17 +95214,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94147 | 95214 | .each = .{ .once = &.{ |
| 94148 | 95215 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94149 | 95216 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94150 | | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94151 | | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 94152 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 95217 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 95218 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95219 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95220 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94153 | 95221 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94154 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 95222 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94155 | 95223 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94156 | 95224 | } }, |
| 94157 | 95225 | }, .{ |
| 94158 | 95226 | .required_features = .{ .bmi2, null, null, null }, |
| 94159 | 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 | 95229 | .patterns = &.{ |
| 94162 | 95230 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94163 | 95231 | }, |
| ... | ... | @@ -94165,7 +95233,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94165 | 95233 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94166 | 95234 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94167 | 95235 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94168 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95236 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94169 | 95237 | .unused, |
| 94170 | 95238 | .unused, |
| 94171 | 95239 | .unused, |
| ... | ... | @@ -94181,22 +95249,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94181 | 95249 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94182 | 95250 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94183 | 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 | 95253 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94186 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 94187 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95254 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 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 | 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 | 95261 | .patterns = &.{ |
| 94194 | 95262 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94195 | 95263 | }, |
| 94196 | 95264 | .extra_temps = .{ |
| 94197 | 95265 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94198 | 95266 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94199 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95267 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94200 | 95268 | .unused, |
| 94201 | 95269 | .unused, |
| 94202 | 95270 | .unused, |
| ... | ... | @@ -94212,22 +95280,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94212 | 95280 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94213 | 95281 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94214 | 95282 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94215 | | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 94216 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 95283 | .{ ._, ._, .@"and", .tmp2w, .sa(.dst0, .add_umax), ._, ._ }, |
| 95284 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94217 | 95285 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94218 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 95286 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 94219 | 95287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94220 | 95288 | } }, |
| 94221 | 95289 | }, .{ |
| 94222 | 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 | 95292 | .patterns = &.{ |
| 94225 | 95293 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94226 | 95294 | }, |
| 94227 | 95295 | .extra_temps = .{ |
| 94228 | 95296 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94229 | 95297 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94230 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95298 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94231 | 95299 | .unused, |
| 94232 | 95300 | .unused, |
| 94233 | 95301 | .unused, |
| ... | ... | @@ -94243,28 +95311,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94243 | 95311 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94244 | 95312 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 94245 | 95313 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 94246 | | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| 94247 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 95314 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95315 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94248 | 95316 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 94249 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 94250 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 95317 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95318 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94251 | 95319 | } }, |
| 94252 | 95320 | }, .{ |
| 94253 | 95321 | .required_features = .{ .avx, null, null, null }, |
| 94254 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94255 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95322 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95323 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94256 | 95324 | .patterns = &.{ |
| 94257 | 95325 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94258 | 95326 | }, |
| 94259 | 95327 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 94260 | 95328 | .each = .{ .once = &.{ |
| 94261 | | .{ ._, .vp_w, .sll, .dst0x, .src0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 94262 | | .{ ._, .vp_w, .sra, .dst0x, .dst0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 95329 | .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95330 | .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94263 | 95331 | } }, |
| 94264 | 95332 | }, .{ |
| 94265 | 95333 | .required_features = .{ .avx, null, null, null }, |
| 94266 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94267 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95334 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95335 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94268 | 95336 | .patterns = &.{ |
| 94269 | 95337 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94270 | 95338 | }, |
| ... | ... | @@ -94288,20 +95356,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94288 | 95356 | } }, |
| 94289 | 95357 | }, .{ |
| 94290 | 95358 | .required_features = .{ .sse2, null, null, null }, |
| 94291 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94292 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95359 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95360 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94293 | 95361 | .patterns = &.{ |
| 94294 | 95362 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 94295 | 95363 | }, |
| 94296 | 95364 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 94297 | 95365 | .each = .{ .once = &.{ |
| 94298 | | .{ ._, .p_w, .sll, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 94299 | | .{ ._, .p_w, .sra, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 95366 | .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95367 | .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94300 | 95368 | } }, |
| 94301 | 95369 | }, .{ |
| 94302 | 95370 | .required_features = .{ .sse2, null, null, null }, |
| 94303 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94304 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95371 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95372 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94305 | 95373 | .patterns = &.{ |
| 94306 | 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 | 95393 | } }, |
| 94326 | 95394 | }, .{ |
| 94327 | 95395 | .required_features = .{ .sse, null, null, null }, |
| 94328 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94329 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95396 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95397 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94330 | 95398 | .patterns = &.{ |
| 94331 | 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 | 95418 | } }, |
| 94351 | 95419 | }, .{ |
| 94352 | 95420 | .required_features = .{ .avx2, null, null, null }, |
| 94353 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 94354 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| 95421 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 95422 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94355 | 95423 | .patterns = &.{ |
| 94356 | 95424 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94357 | 95425 | }, |
| 94358 | 95426 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 94359 | 95427 | .each = .{ .once = &.{ |
| 94360 | | .{ ._, .vp_w, .sll, .dst0y, .src0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 94361 | | .{ ._, .vp_w, .sra, .dst0y, .dst0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 95428 | .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95429 | .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94362 | 95430 | } }, |
| 94363 | 95431 | }, .{ |
| 94364 | 95432 | .required_features = .{ .avx2, null, null, null }, |
| 94365 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 94366 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| 95433 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 95434 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94367 | 95435 | .patterns = &.{ |
| 94368 | 95436 | .{ .src = .{ .to_sse, .none, .none } }, |
| 94369 | 95437 | }, |
| ... | ... | @@ -94387,14 +95455,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94387 | 95455 | } }, |
| 94388 | 95456 | }, .{ |
| 94389 | 95457 | .required_features = .{ .avx2, null, null, null }, |
| 94390 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 94391 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| 95458 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 95459 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94392 | 95460 | .patterns = &.{ |
| 94393 | 95461 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94394 | 95462 | }, |
| 94395 | 95463 | .extra_temps = .{ |
| 94396 | 95464 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94397 | | .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, |
| 95465 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 94398 | 95466 | .unused, |
| 94399 | 95467 | .unused, |
| 94400 | 95468 | .unused, |
| ... | ... | @@ -94410,23 +95478,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94410 | 95478 | .each = .{ .once = &.{ |
| 94411 | 95479 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94412 | 95480 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94413 | | .{ ._, .vp_w, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 94414 | | .{ ._, .vp_w, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 95481 | .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95482 | .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94415 | 95483 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 94416 | 95484 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 94417 | 95485 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94418 | 95486 | } }, |
| 94419 | 95487 | }, .{ |
| 94420 | 95488 | .required_features = .{ .avx2, null, null, null }, |
| 94421 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any, .any }, |
| 94422 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| 95489 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 95490 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 94423 | 95491 | .patterns = &.{ |
| 94424 | 95492 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94425 | 95493 | }, |
| 94426 | 95494 | .extra_temps = .{ |
| 94427 | 95495 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94428 | | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 94429 | | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| 95496 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 95497 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 94430 | 95498 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94431 | 95499 | .unused, |
| 94432 | 95500 | .unused, |
| ... | ... | @@ -94449,14 +95517,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94449 | 95517 | } }, |
| 94450 | 95518 | }, .{ |
| 94451 | 95519 | .required_features = .{ .avx, null, null, null }, |
| 94452 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94453 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95520 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95521 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94454 | 95522 | .patterns = &.{ |
| 94455 | 95523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94456 | 95524 | }, |
| 94457 | 95525 | .extra_temps = .{ |
| 94458 | 95526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94459 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 95527 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 94460 | 95528 | .unused, |
| 94461 | 95529 | .unused, |
| 94462 | 95530 | .unused, |
| ... | ... | @@ -94472,23 +95540,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94472 | 95540 | .each = .{ .once = &.{ |
| 94473 | 95541 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94474 | 95542 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94475 | | .{ ._, .vp_w, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 94476 | | .{ ._, .vp_w, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| 95543 | .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95544 | .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 94477 | 95545 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 94478 | 95546 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94479 | 95547 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94480 | 95548 | } }, |
| 94481 | 95549 | }, .{ |
| 94482 | 95550 | .required_features = .{ .avx, null, null, null }, |
| 94483 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94484 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95551 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95552 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94485 | 95553 | .patterns = &.{ |
| 94486 | 95554 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94487 | 95555 | }, |
| 94488 | 95556 | .extra_temps = .{ |
| 94489 | 95557 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94490 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94491 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 95558 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95559 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94492 | 95560 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94493 | 95561 | .unused, |
| 94494 | 95562 | .unused, |
| ... | ... | @@ -94511,14 +95579,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94511 | 95579 | } }, |
| 94512 | 95580 | }, .{ |
| 94513 | 95581 | .required_features = .{ .sse2, null, null, null }, |
| 94514 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94515 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95582 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95583 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94516 | 95584 | .patterns = &.{ |
| 94517 | 95585 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94518 | 95586 | }, |
| 94519 | 95587 | .extra_temps = .{ |
| 94520 | 95588 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94521 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 95589 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 94522 | 95590 | .unused, |
| 94523 | 95591 | .unused, |
| 94524 | 95592 | .unused, |
| ... | ... | @@ -94534,23 +95602,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94534 | 95602 | .each = .{ .once = &.{ |
| 94535 | 95603 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94536 | 95604 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94537 | | .{ ._, .p_w, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 94538 | | .{ ._, .p_w, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| 95605 | .{ ._, .p_d, .sll, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95606 | .{ ._, .p_d, .sra, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94539 | 95607 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 94540 | 95608 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 94541 | 95609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94542 | 95610 | } }, |
| 94543 | 95611 | }, .{ |
| 94544 | 95612 | .required_features = .{ .sse2, null, null, null }, |
| 94545 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94546 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95613 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95614 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94547 | 95615 | .patterns = &.{ |
| 94548 | 95616 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94549 | 95617 | }, |
| 94550 | 95618 | .extra_temps = .{ |
| 94551 | 95619 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94552 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94553 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 95620 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95621 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94554 | 95622 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94555 | 95623 | .unused, |
| 94556 | 95624 | .unused, |
| ... | ... | @@ -94574,15 +95642,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94574 | 95642 | } }, |
| 94575 | 95643 | }, .{ |
| 94576 | 95644 | .required_features = .{ .sse, null, null, null }, |
| 94577 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 94578 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| 95645 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95646 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 94579 | 95647 | .patterns = &.{ |
| 94580 | 95648 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94581 | 95649 | }, |
| 94582 | 95650 | .extra_temps = .{ |
| 94583 | 95651 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94584 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 94585 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 95652 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95653 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 94586 | 95654 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 94587 | 95655 | .unused, |
| 94588 | 95656 | .unused, |
| ... | ... | @@ -94605,14 +95673,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94605 | 95673 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94606 | 95674 | } }, |
| 94607 | 95675 | }, .{ |
| 94608 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94609 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 95676 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 95677 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94610 | 95678 | .patterns = &.{ |
| 94611 | 95679 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94612 | 95680 | }, |
| 94613 | 95681 | .extra_temps = .{ |
| 94614 | 95682 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94615 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95683 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94616 | 95684 | .unused, |
| 94617 | 95685 | .unused, |
| 94618 | 95686 | .unused, |
| ... | ... | @@ -94627,20 +95695,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94627 | 95695 | .clobbers = .{ .eflags = true }, |
| 94628 | 95696 | .each = .{ .once = &.{ |
| 94629 | 95697 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94630 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94631 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94632 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95698 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95699 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95700 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94633 | 95701 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94634 | 95702 | } }, |
| 94635 | 95703 | }, .{ |
| 94636 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94637 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 95704 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 95705 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94638 | 95706 | .patterns = &.{ |
| 94639 | 95707 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94640 | 95708 | }, |
| 94641 | 95709 | .extra_temps = .{ |
| 94642 | 95710 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94643 | | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 95711 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94644 | 95712 | .unused, |
| 94645 | 95713 | .unused, |
| 94646 | 95714 | .unused, |
| ... | ... | @@ -94655,24 +95723,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94655 | 95723 | .clobbers = .{ .eflags = true }, |
| 94656 | 95724 | .each = .{ .once = &.{ |
| 94657 | 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 | 95727 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94660 | 95728 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94661 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94662 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95729 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95730 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94663 | 95731 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94664 | 95732 | } }, |
| 94665 | 95733 | }, .{ |
| 94666 | | .required_features = .{ .fast_imm16, null, null, null }, |
| 94667 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94668 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 95734 | .required_features = .{ .bmi2, null, null, null }, |
| 95735 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 95736 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94669 | 95737 | .patterns = &.{ |
| 94670 | 95738 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94671 | 95739 | }, |
| 94672 | 95740 | .extra_temps = .{ |
| 94673 | 95741 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94674 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94675 | | .unused, |
| 95742 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95743 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94676 | 95744 | .unused, |
| 94677 | 95745 | .unused, |
| 94678 | 95746 | .unused, |
| ... | ... | @@ -94686,21 +95754,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94686 | 95754 | .clobbers = .{ .eflags = true }, |
| 94687 | 95755 | .each = .{ .once = &.{ |
| 94688 | 95756 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94689 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 94690 | | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94691 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94692 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95757 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95758 | .{ .@"0:", ._, .bzhi, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 95759 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 95760 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94693 | 95761 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94694 | 95762 | } }, |
| 94695 | 95763 | }, .{ |
| 94696 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 94697 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 95764 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 95765 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94698 | 95766 | .patterns = &.{ |
| 94699 | 95767 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94700 | 95768 | }, |
| 94701 | 95769 | .extra_temps = .{ |
| 94702 | 95770 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94703 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95771 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94704 | 95772 | .unused, |
| 94705 | 95773 | .unused, |
| 94706 | 95774 | .unused, |
| ... | ... | @@ -94715,21 +95783,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94715 | 95783 | .clobbers = .{ .eflags = true }, |
| 94716 | 95784 | .each = .{ .once = &.{ |
| 94717 | 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 | 95787 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94720 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94721 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95788 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95789 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94722 | 95790 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94723 | 95791 | } }, |
| 94724 | 95792 | }, .{ |
| 94725 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94726 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 95793 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95794 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94727 | 95795 | .patterns = &.{ |
| 94728 | 95796 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94729 | 95797 | }, |
| 94730 | 95798 | .extra_temps = .{ |
| 94731 | 95799 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94732 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95800 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94733 | 95801 | .unused, |
| 94734 | 95802 | .unused, |
| 94735 | 95803 | .unused, |
| ... | ... | @@ -94745,19 +95813,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94745 | 95813 | .each = .{ .once = &.{ |
| 94746 | 95814 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94747 | 95815 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94748 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94749 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95816 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95817 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94750 | 95818 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94751 | 95819 | } }, |
| 94752 | 95820 | }, .{ |
| 94753 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94754 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 95821 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95822 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94755 | 95823 | .patterns = &.{ |
| 94756 | 95824 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94757 | 95825 | }, |
| 94758 | 95826 | .extra_temps = .{ |
| 94759 | 95827 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94760 | | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 95828 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94761 | 95829 | .unused, |
| 94762 | 95830 | .unused, |
| 94763 | 95831 | .unused, |
| ... | ... | @@ -94775,21 +95843,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94775 | 95843 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94776 | 95844 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94777 | 95845 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94778 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94779 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95846 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95847 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94780 | 95848 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94781 | 95849 | } }, |
| 94782 | 95850 | }, .{ |
| 94783 | 95851 | .required_features = .{ .bmi2, null, null, null }, |
| 94784 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94785 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 95852 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95853 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94786 | 95854 | .patterns = &.{ |
| 94787 | 95855 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94788 | 95856 | }, |
| 94789 | 95857 | .extra_temps = .{ |
| 94790 | 95858 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94791 | 95859 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94792 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95860 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94793 | 95861 | .unused, |
| 94794 | 95862 | .unused, |
| 94795 | 95863 | .unused, |
| ... | ... | @@ -94805,20 +95873,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94805 | 95873 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94806 | 95874 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94807 | 95875 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 94808 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94809 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95876 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 95877 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94810 | 95878 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94811 | 95879 | } }, |
| 94812 | 95880 | }, .{ |
| 94813 | | .required_features = .{ .fast_imm16, null, null, null }, |
| 94814 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94815 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 95881 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95882 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94816 | 95883 | .patterns = &.{ |
| 94817 | 95884 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94818 | 95885 | }, |
| 94819 | 95886 | .extra_temps = .{ |
| 94820 | 95887 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94821 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95888 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94822 | 95889 | .unused, |
| 94823 | 95890 | .unused, |
| 94824 | 95891 | .unused, |
| ... | ... | @@ -94834,20 +95901,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94834 | 95901 | .each = .{ .once = &.{ |
| 94835 | 95902 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94836 | 95903 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94837 | | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94838 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94839 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95904 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95905 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95906 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94840 | 95907 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94841 | 95908 | } }, |
| 94842 | 95909 | }, .{ |
| 94843 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 94844 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 95910 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95911 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94845 | 95912 | .patterns = &.{ |
| 94846 | 95913 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94847 | 95914 | }, |
| 94848 | 95915 | .extra_temps = .{ |
| 94849 | 95916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94850 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95917 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94851 | 95918 | .unused, |
| 94852 | 95919 | .unused, |
| 94853 | 95920 | .unused, |
| ... | ... | @@ -94862,21 +95929,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94862 | 95929 | .clobbers = .{ .eflags = true }, |
| 94863 | 95930 | .each = .{ .once = &.{ |
| 94864 | 95931 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94865 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94866 | | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 94867 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94868 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95932 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95933 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95934 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94869 | 95935 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94870 | 95936 | } }, |
| 94871 | 95937 | }, .{ |
| 94872 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94873 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 95938 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95939 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94874 | 95940 | .patterns = &.{ |
| 94875 | 95941 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94876 | 95942 | }, |
| 94877 | 95943 | .extra_temps = .{ |
| 94878 | 95944 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94879 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95945 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94880 | 95946 | .unused, |
| 94881 | 95947 | .unused, |
| 94882 | 95948 | .unused, |
| ... | ... | @@ -94892,19 +95958,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94892 | 95958 | .each = .{ .once = &.{ |
| 94893 | 95959 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94894 | 95960 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94895 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94896 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 95961 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 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 | 95965 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94898 | 95966 | } }, |
| 94899 | 95967 | }, .{ |
| 94900 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94901 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 95968 | .required_features = .{ .bmi2, null, null, null }, |
| 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 | 95971 | .patterns = &.{ |
| 94903 | 95972 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94904 | 95973 | }, |
| 94905 | 95974 | .extra_temps = .{ |
| 94906 | 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 | 96006 | .unused, |
| 94909 | 96007 | .unused, |
| 94910 | 96008 | .unused, |
| ... | ... | @@ -94920,23 +96018,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94920 | 96018 | .each = .{ .once = &.{ |
| 94921 | 96019 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94922 | 96020 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94923 | | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94924 | | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 94925 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94926 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96021 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 96022 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96023 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94927 | 96024 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94928 | 96025 | } }, |
| 94929 | 96026 | }, .{ |
| 94930 | | .required_features = .{ .bmi2, null, null, null }, |
| 94931 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94932 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96027 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96028 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 94933 | 96029 | .patterns = &.{ |
| 94934 | 96030 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94935 | 96031 | }, |
| 94936 | 96032 | .extra_temps = .{ |
| 94937 | 96033 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94938 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 94939 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 96034 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96035 | .unused, |
| 94940 | 96036 | .unused, |
| 94941 | 96037 | .unused, |
| 94942 | 96038 | .unused, |
| ... | ... | @@ -94950,22 +96046,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94950 | 96046 | .clobbers = .{ .eflags = true }, |
| 94951 | 96047 | .each = .{ .once = &.{ |
| 94952 | 96048 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94953 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 94954 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 94955 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 94956 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96049 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96050 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96051 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94957 | 96052 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94958 | 96053 | } }, |
| 94959 | 96054 | }, .{ |
| 94960 | | .required_features = .{ .fast_imm16, null, null, null }, |
| 94961 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94962 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96055 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96056 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 94963 | 96057 | .patterns = &.{ |
| 94964 | 96058 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94965 | 96059 | }, |
| 94966 | 96060 | .extra_temps = .{ |
| 94967 | 96061 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94968 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 96062 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 94969 | 96063 | .unused, |
| 94970 | 96064 | .unused, |
| 94971 | 96065 | .unused, |
| ... | ... | @@ -94980,22 +96074,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 94980 | 96074 | .clobbers = .{ .eflags = true }, |
| 94981 | 96075 | .each = .{ .once = &.{ |
| 94982 | 96076 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 94983 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 94984 | | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 94985 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 94986 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96077 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96078 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 96079 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 96080 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96081 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 94987 | 96082 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 94988 | 96083 | } }, |
| 94989 | 96084 | }, .{ |
| 94990 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 94991 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96085 | .required_features = .{ .bmi2, null, null, null }, |
| 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 | 96088 | .patterns = &.{ |
| 94993 | 96089 | .{ .src = .{ .to_mem, .none, .none } }, |
| 94994 | 96090 | }, |
| 94995 | 96091 | .extra_temps = .{ |
| 94996 | 96092 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 94997 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 94998 | | .unused, |
| 96093 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 96094 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 94999 | 96095 | .unused, |
| 95000 | 96096 | .unused, |
| 95001 | 96097 | .unused, |
| ... | ... | @@ -95009,21 +96105,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95009 | 96105 | .clobbers = .{ .eflags = true }, |
| 95010 | 96106 | .each = .{ .once = &.{ |
| 95011 | 96107 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95012 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95013 | | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95014 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95015 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96108 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 96109 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 96110 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 96111 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95016 | 96112 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95017 | 96113 | } }, |
| 95018 | 96114 | }, .{ |
| 95019 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95020 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 96115 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96116 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 95021 | 96117 | .patterns = &.{ |
| 95022 | 96118 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95023 | 96119 | }, |
| 95024 | 96120 | .extra_temps = .{ |
| 95025 | 96121 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95026 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 96122 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95027 | 96123 | .unused, |
| 95028 | 96124 | .unused, |
| 95029 | 96125 | .unused, |
| ... | ... | @@ -95039,19 +96135,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95039 | 96135 | .each = .{ .once = &.{ |
| 95040 | 96136 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95041 | 96137 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95042 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95043 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96138 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 96139 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96140 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95044 | 96141 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95045 | 96142 | } }, |
| 95046 | 96143 | }, .{ |
| 95047 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95048 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 96144 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 96145 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 95049 | 96146 | .patterns = &.{ |
| 95050 | 96147 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95051 | 96148 | }, |
| 95052 | 96149 | .extra_temps = .{ |
| 95053 | 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 | 96154 | .unused, |
| 95056 | 96155 | .unused, |
| 95057 | 96156 | .unused, |
| ... | ... | @@ -95059,6 +96158,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95059 | 96158 | .unused, |
| 95060 | 96159 | .unused, |
| 95061 | 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 | 96189 | .unused, |
| 95063 | 96190 | .unused, |
| 95064 | 96191 | }, |
| ... | ... | @@ -95066,25 +96193,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95066 | 96193 | .clobbers = .{ .eflags = true }, |
| 95067 | 96194 | .each = .{ .once = &.{ |
| 95068 | 96195 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95069 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95070 | | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95071 | | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95072 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95073 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96196 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 96197 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 96198 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 96199 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 96200 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 96201 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 96202 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95074 | 96203 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95075 | 96204 | } }, |
| 95076 | 96205 | }, .{ |
| 95077 | 96206 | .required_features = .{ .bmi2, null, null, null }, |
| 95078 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95079 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96207 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 96208 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 95080 | 96209 | .patterns = &.{ |
| 95081 | 96210 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95082 | 96211 | }, |
| 95083 | 96212 | .extra_temps = .{ |
| 95084 | 96213 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96214 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95085 | 96215 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95086 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95087 | | .unused, |
| 96216 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95088 | 96217 | .unused, |
| 95089 | 96218 | .unused, |
| 95090 | 96219 | .unused, |
| ... | ... | @@ -95097,23 +96226,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95097 | 96226 | .clobbers = .{ .eflags = true }, |
| 95098 | 96227 | .each = .{ .once = &.{ |
| 95099 | 96228 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95100 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95101 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 95102 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 95103 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96229 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 96230 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 96231 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 96232 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 96233 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 96234 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95104 | 96235 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95105 | 96236 | } }, |
| 95106 | 96237 | }, .{ |
| 95107 | | .required_features = .{ .fast_imm16, null, null, null }, |
| 95108 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95109 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96238 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 96239 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 95110 | 96240 | .patterns = &.{ |
| 95111 | 96241 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95112 | 96242 | }, |
| 95113 | 96243 | .extra_temps = .{ |
| 95114 | 96244 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95115 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 95116 | | .unused, |
| 96245 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96246 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95117 | 96247 | .unused, |
| 95118 | 96248 | .unused, |
| 95119 | 96249 | .unused, |
| ... | ... | @@ -95127,26 +96257,248 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95127 | 96257 | .clobbers = .{ .eflags = true }, |
| 95128 | 96258 | .each = .{ .once = &.{ |
| 95129 | 96259 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95130 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95131 | | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| 95132 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95133 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96260 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 96261 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 96262 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| 96263 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 96264 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 96265 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95134 | 96266 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95135 | 96267 | } }, |
| 95136 | 96268 | }, .{ |
| 95137 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95138 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96269 | .required_features = .{ .avx, null, null, null }, |
| 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 | 96456 | .patterns = &.{ |
| 95140 | 96457 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95141 | 96458 | }, |
| 95142 | 96459 | .extra_temps = .{ |
| 95143 | 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 | 96466 | .unused, |
| 95146 | 96467 | .unused, |
| 95147 | 96468 | .unused, |
| 95148 | 96469 | .unused, |
| 95149 | 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 | 96502 | .unused, |
| 95151 | 96503 | .unused, |
| 95152 | 96504 | .unused, |
| ... | ... | @@ -95155,24 +96507,61 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95155 | 96507 | .dst_temps = .{ .mem, .unused }, |
| 95156 | 96508 | .clobbers = .{ .eflags = true }, |
| 95157 | 96509 | .each = .{ .once = &.{ |
| 96510 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 96511 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 95158 | 96512 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95159 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95160 | | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95161 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 95162 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96513 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 96514 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 96515 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 95163 | 96516 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95164 | 96517 | } }, |
| 95165 | 96518 | }, .{ |
| 95166 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 95167 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }, .any }, |
| 96519 | .required_features = .{ .avx, null, null, null }, |
| 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 | 96522 | .patterns = &.{ |
| 95169 | 96523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95170 | 96524 | }, |
| 95171 | 96525 | .extra_temps = .{ |
| 95172 | 96526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95173 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95174 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 96527 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 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 | 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 | 96565 | .unused, |
| 95177 | 96566 | .unused, |
| 95178 | 96567 | .unused, |
| ... | ... | @@ -95184,27 +96573,64 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95184 | 96573 | .dst_temps = .{ .mem, .unused }, |
| 95185 | 96574 | .clobbers = .{ .eflags = true }, |
| 95186 | 96575 | .each = .{ .once = &.{ |
| 96576 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 96577 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95187 | 96578 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95188 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95189 | | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 95190 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 95191 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 95192 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96579 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 96580 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 96581 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 95193 | 96582 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95194 | 96583 | } }, |
| 95195 | 96584 | }, .{ |
| 95196 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 95197 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 96585 | .required_features = .{ .sse2, null, null, null }, |
| 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 | 96588 | .patterns = &.{ |
| 95199 | 96589 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95200 | 96590 | }, |
| 95201 | 96591 | .extra_temps = .{ |
| 95202 | 96592 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95203 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95204 | | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| 96593 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 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 | 96600 | .unused, |
| 95206 | 96601 | .unused, |
| 95207 | 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 | 96634 | .unused, |
| 95209 | 96635 | .unused, |
| 95210 | 96636 | .unused, |
| ... | ... | @@ -95214,28 +96640,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95214 | 96640 | .dst_temps = .{ .mem, .unused }, |
| 95215 | 96641 | .clobbers = .{ .eflags = true }, |
| 95216 | 96642 | .each = .{ .once = &.{ |
| 96643 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 96644 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95217 | 96645 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95218 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95219 | | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 95220 | | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95221 | | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95222 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 95223 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 95224 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96646 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 96647 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 96648 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 96649 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 95225 | 96650 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95226 | 96651 | } }, |
| 95227 | 96652 | }, .{ |
| 95228 | | .required_features = .{ .bmi2, null, null, null }, |
| 95229 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 95230 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96653 | .required_features = .{ .sse, null, null, null }, |
| 96654 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96655 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95231 | 96656 | .patterns = &.{ |
| 95232 | 96657 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95233 | 96658 | }, |
| 95234 | 96659 | .extra_temps = .{ |
| 95235 | 96660 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95236 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95237 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95238 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 96661 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 96662 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 96663 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 95239 | 96664 | .unused, |
| 95240 | 96665 | .unused, |
| 95241 | 96666 | .unused, |
| ... | ... | @@ -95247,26 +96672,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95247 | 96672 | .dst_temps = .{ .mem, .unused }, |
| 95248 | 96673 | .clobbers = .{ .eflags = true }, |
| 95249 | 96674 | .each = .{ .once = &.{ |
| 96675 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 96676 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95250 | 96677 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95251 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95252 | | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95253 | | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| 95254 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 95255 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 95256 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96678 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 96679 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 96680 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 96681 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 95257 | 96682 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95258 | 96683 | } }, |
| 95259 | 96684 | }, .{ |
| 95260 | | .required_features = .{ .fast_imm16, null, null, null }, |
| 95261 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 95262 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96685 | .required_features = .{ .@"64bit", null, null, null }, |
| 96686 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 96687 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95263 | 96688 | .patterns = &.{ |
| 95264 | 96689 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95265 | 96690 | }, |
| 95266 | 96691 | .extra_temps = .{ |
| 95267 | 96692 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95268 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95269 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 96693 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 96694 | .unused, |
| 95270 | 96695 | .unused, |
| 95271 | 96696 | .unused, |
| 95272 | 96697 | .unused, |
| ... | ... | @@ -95280,24 +96705,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95280 | 96705 | .clobbers = .{ .eflags = true }, |
| 95281 | 96706 | .each = .{ .once = &.{ |
| 95282 | 96707 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95283 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95284 | | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 95285 | | .{ ._, ._, .@"and", .tmp2w, .sa(.dst0, .add_umax), ._, ._ }, |
| 95286 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 95287 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 95288 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96708 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 96709 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 96710 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95289 | 96711 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95290 | 96712 | } }, |
| 95291 | 96713 | }, .{ |
| 95292 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 95293 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 96714 | .required_features = .{ .@"64bit", null, null, null }, |
| 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 | 96717 | .patterns = &.{ |
| 95295 | 96718 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95296 | 96719 | }, |
| 95297 | 96720 | .extra_temps = .{ |
| 95298 | 96721 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95299 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95300 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 96722 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 96723 | .unused, |
| 95301 | 96724 | .unused, |
| 95302 | 96725 | .unused, |
| 95303 | 96726 | .unused, |
| ... | ... | @@ -95311,36 +96734,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95311 | 96734 | .clobbers = .{ .eflags = true }, |
| 95312 | 96735 | .each = .{ .once = &.{ |
| 95313 | 96736 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95314 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 95315 | | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| 95316 | | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95317 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 95318 | | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 95319 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 96737 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 96738 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 96739 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 96740 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 96741 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95320 | 96742 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95321 | 96743 | } }, |
| 95322 | 96744 | }, .{ |
| 95323 | | .required_features = .{ .avx, null, null, null }, |
| 95324 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95325 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 96745 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 96746 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 96747 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95326 | 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 | 96766 | .each = .{ .once = &.{ |
| 95331 | | .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95332 | | .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 96767 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_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 }, |
| 95336 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95337 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 96775 | .required_features = .{ .@"64bit", null, null, null }, |
| 96776 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 96777 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95338 | 96778 | .patterns = &.{ |
| 95339 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 96779 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95340 | 96780 | }, |
| 95341 | 96781 | .extra_temps = .{ |
| 95342 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 95343 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 96782 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96783 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95344 | 96784 | .unused, |
| 95345 | 96785 | .unused, |
| 95346 | 96786 | .unused, |
| ... | ... | @@ -95351,33 +96791,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95351 | 96791 | .unused, |
| 95352 | 96792 | .unused, |
| 95353 | 96793 | }, |
| 95354 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 96794 | .dst_temps = .{ .mem, .unused }, |
| 96795 | .clobbers = .{ .eflags = true }, |
| 95355 | 96796 | .each = .{ .once = &.{ |
| 95356 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 95357 | | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 96797 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 95361 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95362 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 96805 | .required_features = .{ .@"64bit", null, null, null }, |
| 96806 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 96807 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95363 | 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 | 96826 | .each = .{ .once = &.{ |
| 95368 | | .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95369 | | .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 96827 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_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 }, |
| 95373 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95374 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 96834 | .required_features = .{ .@"64bit", null, null, null }, |
| 96835 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 96836 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95375 | 96837 | .patterns = &.{ |
| 95376 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 96838 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95377 | 96839 | }, |
| 95378 | 96840 | .extra_temps = .{ |
| 95379 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 95380 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 96841 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96842 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 95381 | 96843 | .unused, |
| 95382 | 96844 | .unused, |
| 95383 | 96845 | .unused, |
| ... | ... | @@ -95388,22 +96850,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95388 | 96850 | .unused, |
| 95389 | 96851 | .unused, |
| 95390 | 96852 | }, |
| 95391 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 96853 | .dst_temps = .{ .mem, .unused }, |
| 96854 | .clobbers = .{ .eflags = true }, |
| 95392 | 96855 | .each = .{ .once = &.{ |
| 95393 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 95394 | | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 96856 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 95398 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95399 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 96865 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 96866 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 96867 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95400 | 96868 | .patterns = &.{ |
| 95401 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 96869 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95402 | 96870 | }, |
| 95403 | 96871 | .extra_temps = .{ |
| 95404 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 95405 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 95406 | | .unused, |
| 96872 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96873 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 96874 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95407 | 96875 | .unused, |
| 95408 | 96876 | .unused, |
| 95409 | 96877 | .unused, |
| ... | ... | @@ -95413,33 +96881,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95413 | 96881 | .unused, |
| 95414 | 96882 | .unused, |
| 95415 | 96883 | }, |
| 95416 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 95417 | | .each = .{ .once = &.{ |
| 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 }, |
| 96884 | .dst_temps = .{ .mem, .unused }, |
| 96885 | .clobbers = .{ .eflags = true }, |
| 95429 | 96886 | .each = .{ .once = &.{ |
| 95430 | | .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95431 | | .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 96887 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_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 }, |
| 95435 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 95436 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 96895 | .required_features = .{ .@"64bit", null, null, null }, |
| 96896 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 96897 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95437 | 96898 | .patterns = &.{ |
| 95438 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 96899 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95439 | 96900 | }, |
| 95440 | 96901 | .extra_temps = .{ |
| 95441 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 95442 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| 96902 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96903 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95443 | 96904 | .unused, |
| 95444 | 96905 | .unused, |
| 95445 | 96906 | .unused, |
| ... | ... | @@ -95450,21 +96911,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95450 | 96911 | .unused, |
| 95451 | 96912 | .unused, |
| 95452 | 96913 | }, |
| 95453 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 96914 | .dst_temps = .{ .mem, .unused }, |
| 96915 | .clobbers = .{ .eflags = true }, |
| 95454 | 96916 | .each = .{ .once = &.{ |
| 95455 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 95456 | | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 96917 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 95460 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 95461 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 96925 | .required_features = .{ .@"64bit", null, null, null }, |
| 96926 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96927 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95462 | 96928 | .patterns = &.{ |
| 95463 | 96929 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95464 | 96930 | }, |
| 95465 | 96931 | .extra_temps = .{ |
| 95466 | 96932 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95467 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 96933 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95468 | 96934 | .unused, |
| 95469 | 96935 | .unused, |
| 95470 | 96936 | .unused, |
| ... | ... | @@ -95479,25 +96945,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95479 | 96945 | .clobbers = .{ .eflags = true }, |
| 95480 | 96946 | .each = .{ .once = &.{ |
| 95481 | 96947 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95482 | | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95483 | | .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95484 | | .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95485 | | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 95486 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 96948 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96949 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 96950 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95487 | 96951 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95488 | 96952 | } }, |
| 95489 | 96953 | }, .{ |
| 95490 | | .required_features = .{ .avx2, null, null, null }, |
| 95491 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 95492 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| 96954 | .required_features = .{ .@"64bit", null, null, null }, |
| 96955 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96956 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95493 | 96957 | .patterns = &.{ |
| 95494 | 96958 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95495 | 96959 | }, |
| 95496 | 96960 | .extra_temps = .{ |
| 95497 | 96961 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95498 | | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 95499 | | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| 95500 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 96962 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 96963 | .unused, |
| 96964 | .unused, |
| 95501 | 96965 | .unused, |
| 95502 | 96966 | .unused, |
| 95503 | 96967 | .unused, |
| ... | ... | @@ -95509,25 +96973,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95509 | 96973 | .dst_temps = .{ .mem, .unused }, |
| 95510 | 96974 | .clobbers = .{ .eflags = true }, |
| 95511 | 96975 | .each = .{ .once = &.{ |
| 95512 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 95513 | | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| 95514 | 96976 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95515 | | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| 95516 | | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 95517 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 96977 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96978 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 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 | 96982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95519 | 96983 | } }, |
| 95520 | 96984 | }, .{ |
| 95521 | | .required_features = .{ .avx, null, null, null }, |
| 95522 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95523 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 96985 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 96986 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96987 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95524 | 96988 | .patterns = &.{ |
| 95525 | 96989 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95526 | 96990 | }, |
| 95527 | 96991 | .extra_temps = .{ |
| 95528 | 96992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95529 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 95530 | | .unused, |
| 96993 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 96994 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95531 | 96995 | .unused, |
| 95532 | 96996 | .unused, |
| 95533 | 96997 | .unused, |
| ... | ... | @@ -95541,25 +97005,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95541 | 97005 | .clobbers = .{ .eflags = true }, |
| 95542 | 97006 | .each = .{ .once = &.{ |
| 95543 | 97007 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95544 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95545 | | .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95546 | | .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| 95547 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 95548 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 97008 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 97009 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| 97010 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 97011 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95549 | 97012 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95550 | 97013 | } }, |
| 95551 | 97014 | }, .{ |
| 95552 | | .required_features = .{ .avx, null, null, null }, |
| 95553 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95554 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 97015 | .required_features = .{ .@"64bit", null, null, null }, |
| 97016 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 97017 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95555 | 97018 | .patterns = &.{ |
| 95556 | 97019 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95557 | 97020 | }, |
| 95558 | 97021 | .extra_temps = .{ |
| 95559 | 97022 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95560 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95561 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95562 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 97023 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 97024 | .unused, |
| 97025 | .unused, |
| 95563 | 97026 | .unused, |
| 95564 | 97027 | .unused, |
| 95565 | 97028 | .unused, |
| ... | ... | @@ -95571,25 +97034,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95571 | 97034 | .dst_temps = .{ .mem, .unused }, |
| 95572 | 97035 | .clobbers = .{ .eflags = true }, |
| 95573 | 97036 | .each = .{ .once = &.{ |
| 95574 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 95575 | | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95576 | 97037 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95577 | | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| 95578 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 95579 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 97038 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 97039 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 97040 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 97041 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95580 | 97042 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95581 | 97043 | } }, |
| 95582 | 97044 | }, .{ |
| 95583 | | .required_features = .{ .sse2, null, null, null }, |
| 95584 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95585 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 97045 | .required_features = .{ .@"64bit", null, null, null }, |
| 97046 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 97047 | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 95586 | 97048 | .patterns = &.{ |
| 95587 | 97049 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95588 | 97050 | }, |
| 95589 | 97051 | .extra_temps = .{ |
| 95590 | 97052 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95591 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 95592 | | .unused, |
| 97053 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97054 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95593 | 97055 | .unused, |
| 95594 | 97056 | .unused, |
| 95595 | 97057 | .unused, |
| ... | ... | @@ -95603,25 +97065,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95603 | 97065 | .clobbers = .{ .eflags = true }, |
| 95604 | 97066 | .each = .{ .once = &.{ |
| 95605 | 97067 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95606 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95607 | | .{ ._, .p_d, .sll, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95608 | | .{ ._, .p_d, .sra, .tmp1x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95609 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 95610 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 97068 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 97069 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| 97070 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 97071 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 97072 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95611 | 97073 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95612 | 97074 | } }, |
| 95613 | 97075 | }, .{ |
| 95614 | | .required_features = .{ .sse2, null, null, null }, |
| 95615 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95616 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 97076 | .required_features = .{ .@"64bit", null, null, null }, |
| 97077 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97078 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95617 | 97079 | .patterns = &.{ |
| 95618 | 97080 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95619 | 97081 | }, |
| 95620 | 97082 | .extra_temps = .{ |
| 95621 | 97083 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95622 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95623 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95624 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 97084 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97085 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 97086 | .unused, |
| 95625 | 97087 | .unused, |
| 95626 | 97088 | .unused, |
| 95627 | 97089 | .unused, |
| ... | ... | @@ -95633,27 +97095,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95633 | 97095 | .dst_temps = .{ .mem, .unused }, |
| 95634 | 97096 | .clobbers = .{ .eflags = true }, |
| 95635 | 97097 | .each = .{ .once = &.{ |
| 95636 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 95637 | | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95638 | 97098 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95639 | | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 95640 | | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95641 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 95642 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 97099 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 97100 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| 97101 | .{ ._, ._l, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 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 | 97106 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95644 | 97107 | } }, |
| 95645 | 97108 | }, .{ |
| 95646 | | .required_features = .{ .sse, null, null, null }, |
| 95647 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 95648 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 97109 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 97110 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97111 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95649 | 97112 | .patterns = &.{ |
| 95650 | 97113 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95651 | 97114 | }, |
| 95652 | 97115 | .extra_temps = .{ |
| 95653 | 97116 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95654 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95655 | | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 95656 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 97117 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97118 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 97119 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95657 | 97120 | .unused, |
| 95658 | 97121 | .unused, |
| 95659 | 97122 | .unused, |
| ... | ... | @@ -95665,25 +97128,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95665 | 97128 | .dst_temps = .{ .mem, .unused }, |
| 95666 | 97129 | .clobbers = .{ .eflags = true }, |
| 95667 | 97130 | .each = .{ .once = &.{ |
| 95668 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 95669 | | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| 95670 | 97131 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95671 | | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 95672 | | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95673 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| 95674 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 97132 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 97133 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 97134 | .{ .@"0:", ._, .bzhi, .tmp3q, .memi(.src0q, .tmp1), .tmp2q, ._ }, |
| 97135 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 97136 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| 97137 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 95675 | 97138 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95676 | 97139 | } }, |
| 95677 | 97140 | }, .{ |
| 95678 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 95679 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 97141 | .required_features = .{ .@"64bit", null, null, null }, |
| 97142 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97143 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 95680 | 97144 | .patterns = &.{ |
| 95681 | 97145 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95682 | 97146 | }, |
| 95683 | 97147 | .extra_temps = .{ |
| 95684 | 97148 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95685 | 97149 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95686 | | .unused, |
| 97150 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 95687 | 97151 | .unused, |
| 95688 | 97152 | .unused, |
| 95689 | 97153 | .unused, |
| ... | ... | @@ -95697,22 +97161,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95697 | 97161 | .clobbers = .{ .eflags = true }, |
| 95698 | 97162 | .each = .{ .once = &.{ |
| 95699 | 97163 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95700 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95701 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95702 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 97164 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 97165 | .{ .@"0:", ._, .mov, .tmp2q, .ua(.dst0, .add_umax), ._, ._ }, |
| 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 | 97170 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 95704 | 97171 | } }, |
| 95705 | 97172 | }, .{ |
| 95706 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 95707 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97173 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97174 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 97175 | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95708 | 97176 | .patterns = &.{ |
| 95709 | 97177 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95710 | 97178 | }, |
| 95711 | 97179 | .extra_temps = .{ |
| 95712 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95713 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 95714 | | .unused, |
| 95715 | | .unused, |
| 97180 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97181 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97182 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97183 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95716 | 97184 | .unused, |
| 95717 | 97185 | .unused, |
| 95718 | 97186 | .unused, |
| ... | ... | @@ -95724,26 +97192,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95724 | 97192 | .dst_temps = .{ .mem, .unused }, |
| 95725 | 97193 | .clobbers = .{ .eflags = true }, |
| 95726 | 97194 | .each = .{ .once = &.{ |
| 95727 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95728 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95729 | | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95730 | | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95731 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95732 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95733 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97195 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97196 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97197 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97198 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| 97199 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97200 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 97201 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 97202 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 95734 | 97203 | } }, |
| 95735 | 97204 | }, .{ |
| 95736 | | .required_features = .{ .bmi2, null, null, null }, |
| 95737 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 95738 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97205 | .required_features = .{ .@"64bit", null, null, null }, |
| 97206 | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 97207 | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95739 | 97208 | .patterns = &.{ |
| 95740 | 97209 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95741 | 97210 | }, |
| 95742 | 97211 | .extra_temps = .{ |
| 95743 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95744 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95745 | 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 | 97216 | .unused, |
| 95748 | 97217 | .unused, |
| 95749 | 97218 | .unused, |
| ... | ... | @@ -95755,24 +97224,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95755 | 97224 | .dst_temps = .{ .mem, .unused }, |
| 95756 | 97225 | .clobbers = .{ .eflags = true }, |
| 95757 | 97226 | .each = .{ .once = &.{ |
| 95758 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95759 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95760 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 95761 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 95762 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95763 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97227 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97228 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97229 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97230 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| 97231 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 }, |
| 95767 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97237 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97238 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97239 | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95768 | 97240 | .patterns = &.{ |
| 95769 | 97241 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95770 | 97242 | }, |
| 95771 | 97243 | .extra_temps = .{ |
| 95772 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95773 | 97244 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95774 | | .unused, |
| 95775 | | .unused, |
| 97245 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97246 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97247 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95776 | 97248 | .unused, |
| 95777 | 97249 | .unused, |
| 95778 | 97250 | .unused, |
| ... | ... | @@ -95784,24 +97256,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95784 | 97256 | .dst_temps = .{ .mem, .unused }, |
| 95785 | 97257 | .clobbers = .{ .eflags = true }, |
| 95786 | 97258 | .each = .{ .once = &.{ |
| 95787 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95788 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 95789 | | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95790 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95791 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95792 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97259 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97260 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97261 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97262 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97263 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 }, |
| 95796 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 97274 | .required_features = .{ .@"64bit", null, null, null }, |
| 97275 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97276 | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95797 | 97277 | .patterns = &.{ |
| 95798 | 97278 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95799 | 97279 | }, |
| 95800 | 97280 | .extra_temps = .{ |
| 95801 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95802 | 97281 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95803 | | .unused, |
| 95804 | | .unused, |
| 97282 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97283 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97284 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95805 | 97285 | .unused, |
| 95806 | 97286 | .unused, |
| 95807 | 97287 | .unused, |
| ... | ... | @@ -95813,23 +97293,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95813 | 97293 | .dst_temps = .{ .mem, .unused }, |
| 95814 | 97294 | .clobbers = .{ .eflags = true }, |
| 95815 | 97295 | .each = .{ .once = &.{ |
| 95816 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95817 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95818 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95819 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95820 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97296 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97297 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97298 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97299 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 95824 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97311 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97312 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97313 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95825 | 97314 | .patterns = &.{ |
| 95826 | 97315 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95827 | 97316 | }, |
| 95828 | 97317 | .extra_temps = .{ |
| 95829 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95830 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 95831 | | .unused, |
| 95832 | | .unused, |
| 97318 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97319 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97320 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97321 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95833 | 97322 | .unused, |
| 95834 | 97323 | .unused, |
| 95835 | 97324 | .unused, |
| ... | ... | @@ -95841,26 +97330,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95841 | 97330 | .dst_temps = .{ .mem, .unused }, |
| 95842 | 97331 | .clobbers = .{ .eflags = true }, |
| 95843 | 97332 | .each = .{ .once = &.{ |
| 95844 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95845 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95846 | | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95847 | | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95848 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95849 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95850 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97333 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97334 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97335 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97336 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97337 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97338 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 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 }, |
| 95854 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 95855 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97350 | .required_features = .{ .@"64bit", null, null, null }, |
| 97351 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97352 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95856 | 97353 | .patterns = &.{ |
| 95857 | 97354 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95858 | 97355 | }, |
| 95859 | 97356 | .extra_temps = .{ |
| 95860 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95861 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95862 | 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 | 97361 | .unused, |
| 95865 | 97362 | .unused, |
| 95866 | 97363 | .unused, |
| ... | ... | @@ -95872,25 +97369,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95872 | 97369 | .dst_temps = .{ .mem, .unused }, |
| 95873 | 97370 | .clobbers = .{ .eflags = true }, |
| 95874 | 97371 | .each = .{ .once = &.{ |
| 95875 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95876 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95877 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 95878 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 95879 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95880 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97372 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97373 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97374 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97375 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97376 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 }, |
| 95884 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97389 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97390 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97391 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95885 | 97392 | .patterns = &.{ |
| 95886 | 97393 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95887 | 97394 | }, |
| 95888 | 97395 | .extra_temps = .{ |
| 95889 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95890 | 97396 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95891 | | .unused, |
| 95892 | | .unused, |
| 95893 | | .unused, |
| 97397 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97398 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97399 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97400 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 95894 | 97401 | .unused, |
| 95895 | 97402 | .unused, |
| 95896 | 97403 | .unused, |
| ... | ... | @@ -95901,25 +97408,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95901 | 97408 | .dst_temps = .{ .mem, .unused }, |
| 95902 | 97409 | .clobbers = .{ .eflags = true }, |
| 95903 | 97410 | .each = .{ .once = &.{ |
| 95904 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95905 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95906 | | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 95907 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95908 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95909 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97411 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97412 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97413 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97414 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97415 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 }, |
| 95913 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 97425 | .required_features = .{ .@"64bit", null, null, null }, |
| 97426 | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97427 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 95914 | 97428 | .patterns = &.{ |
| 95915 | 97429 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95916 | 97430 | }, |
| 95917 | 97431 | .extra_temps = .{ |
| 95918 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95919 | 97432 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95920 | | .unused, |
| 95921 | | .unused, |
| 95922 | | .unused, |
| 97433 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97434 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97435 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97436 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 95923 | 97437 | .unused, |
| 95924 | 97438 | .unused, |
| 95925 | 97439 | .unused, |
| ... | ... | @@ -95930,24 +97444,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95930 | 97444 | .dst_temps = .{ .mem, .unused }, |
| 95931 | 97445 | .clobbers = .{ .eflags = true }, |
| 95932 | 97446 | .each = .{ .once = &.{ |
| 95933 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95934 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95935 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95936 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95937 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97447 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97448 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97449 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97450 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 95941 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97461 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97462 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97463 | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95942 | 97464 | .patterns = &.{ |
| 95943 | 97465 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95944 | 97466 | }, |
| 95945 | 97467 | .extra_temps = .{ |
| 95946 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95947 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 95948 | | .unused, |
| 95949 | | .unused, |
| 95950 | | .unused, |
| 97468 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97469 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97470 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97471 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97472 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95951 | 97473 | .unused, |
| 95952 | 97474 | .unused, |
| 95953 | 97475 | .unused, |
| ... | ... | @@ -95958,27 +97480,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95958 | 97480 | .dst_temps = .{ .mem, .unused }, |
| 95959 | 97481 | .clobbers = .{ .eflags = true }, |
| 95960 | 97482 | .each = .{ .once = &.{ |
| 95961 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95962 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 95963 | | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95964 | | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 95965 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 95966 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95967 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97483 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97484 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97485 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97486 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 97487 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97488 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 }, |
| 95971 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 95972 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97495 | .required_features = .{ .@"64bit", null, null, null }, |
| 97496 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97497 | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 95973 | 97498 | .patterns = &.{ |
| 95974 | 97499 | .{ .src = .{ .to_mem, .none, .none } }, |
| 95975 | 97500 | }, |
| 95976 | 97501 | .extra_temps = .{ |
| 95977 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 95978 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 95979 | 97502 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 95980 | | .unused, |
| 95981 | | .unused, |
| 97503 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97504 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97505 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97506 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 95982 | 97507 | .unused, |
| 95983 | 97508 | .unused, |
| 95984 | 97509 | .unused, |
| ... | ... | @@ -95989,26 +97514,68 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 95989 | 97514 | .dst_temps = .{ .mem, .unused }, |
| 95990 | 97515 | .clobbers = .{ .eflags = true }, |
| 95991 | 97516 | .each = .{ .once = &.{ |
| 95992 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 95993 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 95994 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 95995 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 95996 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 95997 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97517 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97518 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97519 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97520 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 97521 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 96001 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97529 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 97530 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97531 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 96002 | 97532 | .patterns = &.{ |
| 96003 | 97533 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96004 | 97534 | }, |
| 96005 | 97535 | .extra_temps = .{ |
| 96006 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96007 | 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 | 97543 | .unused, |
| 96009 | 97544 | .unused, |
| 96010 | 97545 | .unused, |
| 96011 | 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 | 97579 | .unused, |
| 96013 | 97580 | .unused, |
| 96014 | 97581 | .unused, |
| ... | ... | @@ -96018,27 +97585,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96018 | 97585 | .dst_temps = .{ .mem, .unused }, |
| 96019 | 97586 | .clobbers = .{ .eflags = true }, |
| 96020 | 97587 | .each = .{ .once = &.{ |
| 96021 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96022 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96023 | | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 96024 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96025 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 96026 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97588 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97589 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97590 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97591 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 97592 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 96030 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 97603 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 97604 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97605 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 96031 | 97606 | .patterns = &.{ |
| 96032 | 97607 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96033 | 97608 | }, |
| 96034 | 97609 | .extra_temps = .{ |
| 96035 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96036 | 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 | 97616 | .unused, |
| 96038 | 97617 | .unused, |
| 96039 | 97618 | .unused, |
| 96040 | 97619 | .unused, |
| 96041 | 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 | 97652 | .unused, |
| 96043 | 97653 | .unused, |
| 96044 | 97654 | .unused, |
| ... | ... | @@ -96047,23 +97657,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96047 | 97657 | .dst_temps = .{ .mem, .unused }, |
| 96048 | 97658 | .clobbers = .{ .eflags = true }, |
| 96049 | 97659 | .each = .{ .once = &.{ |
| 96050 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96051 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96052 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96053 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 96054 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97660 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97661 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97662 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97663 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 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 }, |
| 96058 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97673 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97674 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97675 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 96059 | 97676 | .patterns = &.{ |
| 96060 | 97677 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96061 | 97678 | }, |
| 96062 | 97679 | .extra_temps = .{ |
| 96063 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96064 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 96065 | | .unused, |
| 96066 | | .unused, |
| 97680 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97681 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97682 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97683 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96067 | 97684 | .unused, |
| 96068 | 97685 | .unused, |
| 96069 | 97686 | .unused, |
| ... | ... | @@ -96075,26 +97692,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96075 | 97692 | .dst_temps = .{ .mem, .unused }, |
| 96076 | 97693 | .clobbers = .{ .eflags = true }, |
| 96077 | 97694 | .each = .{ .once = &.{ |
| 96078 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96079 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96080 | | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 96081 | | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| 96082 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96083 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 96084 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97695 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97696 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97697 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97698 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97699 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97700 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| 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 }, |
| 96088 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96089 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97710 | .required_features = .{ .@"64bit", null, null, null }, |
| 97711 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97712 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 96090 | 97713 | .patterns = &.{ |
| 96091 | 97714 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96092 | 97715 | }, |
| 96093 | 97716 | .extra_temps = .{ |
| 96094 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96095 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 96096 | 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 | 97721 | .unused, |
| 96099 | 97722 | .unused, |
| 96100 | 97723 | .unused, |
| ... | ... | @@ -96106,25 +97729,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96106 | 97729 | .dst_temps = .{ .mem, .unused }, |
| 96107 | 97730 | .clobbers = .{ .eflags = true }, |
| 96108 | 97731 | .each = .{ .once = &.{ |
| 96109 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96110 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 96111 | | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| 96112 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 96113 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 96114 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97732 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97733 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97734 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97735 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97736 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 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 }, |
| 96118 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 97747 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97748 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97749 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 96119 | 97750 | .patterns = &.{ |
| 96120 | 97751 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96121 | 97752 | }, |
| 96122 | 97753 | .extra_temps = .{ |
| 96123 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96124 | 97754 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96125 | | .unused, |
| 96126 | | .unused, |
| 96127 | | .unused, |
| 97755 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97756 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97757 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97758 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96128 | 97759 | .unused, |
| 96129 | 97760 | .unused, |
| 96130 | 97761 | .unused, |
| ... | ... | @@ -96135,25 +97766,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96135 | 97766 | .dst_temps = .{ .mem, .unused }, |
| 96136 | 97767 | .clobbers = .{ .eflags = true }, |
| 96137 | 97768 | .each = .{ .once = &.{ |
| 96138 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96139 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96140 | | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| 96141 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 96142 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 96143 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97769 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97770 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97771 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97772 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 97773 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 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 }, |
| 96147 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }, .any }, |
| 97783 | .required_features = .{ .@"64bit", null, null, null }, |
| 97784 | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97785 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 96148 | 97786 | .patterns = &.{ |
| 96149 | 97787 | .{ .src = .{ .to_mem, .none, .none } }, |
| 96150 | 97788 | }, |
| 96151 | 97789 | .extra_temps = .{ |
| 96152 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96153 | 97790 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96154 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 96155 | | .unused, |
| 96156 | | .unused, |
| 97791 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97792 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97793 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97794 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96157 | 97795 | .unused, |
| 96158 | 97796 | .unused, |
| 96159 | 97797 | .unused, |
| ... | ... | @@ -96161,658 +97799,659 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96161 | 97799 | .unused, |
| 96162 | 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 | 98072 | .clobbers = .{ .eflags = true }, |
| 96166 | 98073 | .each = .{ .once = &.{ |
| 96167 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98074 | .{ ._, ._, .bt, .src0d, .ua(.none, .add_src1_rem_32), ._, ._ }, |
| 96174 | 98075 | } }, |
| 96175 | 98076 | }, .{ |
| 96176 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 96177 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98077 | .src_constraints = .{ .{ .bool_vec = .dword }, .any, .any }, |
| 96178 | 98078 | .patterns = &.{ |
| 96179 | | .{ .src = .{ .to_mem, .none, .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, |
| 98079 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96193 | 98080 | }, |
| 96194 | | .dst_temps = .{ .mem, .unused }, |
| 98081 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 96195 | 98082 | .clobbers = .{ .eflags = true }, |
| 96196 | 98083 | .each = .{ .once = &.{ |
| 96197 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98084 | .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, |
| 96206 | 98085 | } }, |
| 96207 | 98086 | }, .{ |
| 96208 | | .required_features = .{ .bmi2, null, null, null }, |
| 96209 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 96210 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98087 | .required_features = .{ .@"64bit", null, null, null }, |
| 98088 | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, |
| 96211 | 98089 | .patterns = &.{ |
| 96212 | | .{ .src = .{ .to_mem, .none, .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, |
| 98090 | .{ .src = .{ .to_gpr, .imm32, .none } }, |
| 96226 | 98091 | }, |
| 96227 | | .dst_temps = .{ .mem, .unused }, |
| 98092 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 96228 | 98093 | .clobbers = .{ .eflags = true }, |
| 96229 | 98094 | .each = .{ .once = &.{ |
| 96230 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98095 | .{ ._, ._, .bt, .src0q, .ua(.none, .add_src1_rem_64), ._, ._ }, |
| 96238 | 98096 | } }, |
| 96239 | 98097 | }, .{ |
| 96240 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 96241 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98098 | .required_features = .{ .@"64bit", null, null, null }, |
| 98099 | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, |
| 96242 | 98100 | .patterns = &.{ |
| 96243 | | .{ .src = .{ .to_mem, .none, .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, |
| 98101 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96257 | 98102 | }, |
| 96258 | | .dst_temps = .{ .mem, .unused }, |
| 98103 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 96259 | 98104 | .clobbers = .{ .eflags = true }, |
| 96260 | 98105 | .each = .{ .once = &.{ |
| 96261 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98106 | .{ ._, ._, .bt, .src0q, .src1q, ._, ._ }, |
| 96269 | 98107 | } }, |
| 96270 | 98108 | }, .{ |
| 96271 | | .required_features = .{ .avx, null, null, null }, |
| 96272 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96273 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98109 | .src_constraints = .{ .any_bool_vec, .any, .any }, |
| 96274 | 98110 | .patterns = &.{ |
| 96275 | | .{ .src = .{ .to_sse, .none, .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, |
| 98111 | .{ .src = .{ .to_mem, .imm32, .none } }, |
| 96289 | 98112 | }, |
| 96290 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98113 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 98114 | .clobbers = .{ .eflags = true }, |
| 96291 | 98115 | .each = .{ .once = &.{ |
| 96292 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 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), ._ }, |
| 98116 | .{ ._, ._, .bt, .mema(.src0d, .add_src1_div_8_down_4), .ua(.none, .add_src1_rem_32), ._, ._ }, |
| 96297 | 98117 | } }, |
| 96298 | 98118 | }, .{ |
| 96299 | | .required_features = .{ .avx, null, null, null }, |
| 96300 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96301 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98119 | .src_constraints = .{ .any_bool_vec, .any, .any }, |
| 96302 | 98120 | .patterns = &.{ |
| 96303 | | .{ .src = .{ .to_sse, .none, .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, |
| 98121 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96317 | 98122 | }, |
| 96318 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98123 | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 98124 | .clobbers = .{ .eflags = true }, |
| 96319 | 98125 | .each = .{ .once = &.{ |
| 96320 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 96321 | | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 98126 | .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, |
| 96322 | 98127 | } }, |
| 96323 | 98128 | }, .{ |
| 96324 | | .required_features = .{ .sse2, null, null, null }, |
| 96325 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96326 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98129 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 96327 | 98130 | .patterns = &.{ |
| 96328 | | .{ .src = .{ .to_mut_sse, .none, .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, |
| 98131 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96342 | 98132 | }, |
| 96343 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 98133 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96344 | 98134 | .each = .{ .once = &.{ |
| 96345 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 96346 | | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 96347 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 96348 | | .{ ._, .p_q, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 96349 | | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 98135 | .{ ._, ._, .movzx, .dst0d, .mema(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96350 | 98136 | } }, |
| 96351 | 98137 | }, .{ |
| 96352 | | .required_features = .{ .sse2, null, null, null }, |
| 96353 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96354 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98138 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 96355 | 98139 | .patterns = &.{ |
| 96356 | | .{ .src = .{ .to_mut_sse, .none, .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, |
| 98140 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96370 | 98141 | }, |
| 96371 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 98142 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96372 | 98143 | .each = .{ .once = &.{ |
| 96373 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 96374 | | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 98144 | .{ ._, ._, .movzx, .dst0d, .memi(.src0b, .src1), ._, ._ }, |
| 96375 | 98145 | } }, |
| 96376 | 98146 | }, .{ |
| 96377 | | .required_features = .{ .sse, null, null, null }, |
| 96378 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96379 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98147 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96380 | 98148 | .patterns = &.{ |
| 96381 | | .{ .src = .{ .to_mut_sse, .none, .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, |
| 98149 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96395 | 98150 | }, |
| 96396 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 98151 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96397 | 98152 | .each = .{ .once = &.{ |
| 96398 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 96399 | | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| 98153 | .{ ._, ._, .movzx, .dst0d, .mema(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96400 | 98154 | } }, |
| 96401 | 98155 | }, .{ |
| 96402 | | .required_features = .{ .avx2, null, null, null }, |
| 96403 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 96404 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 98156 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96405 | 98157 | .patterns = &.{ |
| 96406 | | .{ .src = .{ .to_sse, .none, .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, |
| 98158 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96420 | 98159 | }, |
| 96421 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98160 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96422 | 98161 | .each = .{ .once = &.{ |
| 96423 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 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), ._ }, |
| 98162 | .{ ._, ._, .movzx, .dst0d, .memsi(.src0w, .@"2", .src1), ._, ._ }, |
| 96428 | 98163 | } }, |
| 96429 | 98164 | }, .{ |
| 96430 | | .required_features = .{ .avx2, null, null, null }, |
| 96431 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 96432 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, |
| 98165 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96433 | 98166 | .patterns = &.{ |
| 96434 | | .{ .src = .{ .to_sse, .none, .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, |
| 98167 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96448 | 98168 | }, |
| 96449 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98169 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96450 | 98170 | .each = .{ .once = &.{ |
| 96451 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 96452 | | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| 98171 | .{ ._, ._, .mov, .dst0d, .mema(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96453 | 98172 | } }, |
| 96454 | 98173 | }, .{ |
| 96455 | | .required_features = .{ .avx2, null, null, null }, |
| 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 }, |
| 98174 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96458 | 98175 | .patterns = &.{ |
| 96459 | | .{ .src = .{ .to_mem, .none, .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, |
| 98176 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96473 | 98177 | }, |
| 96474 | | .dst_temps = .{ .mem, .unused }, |
| 96475 | | .clobbers = .{ .eflags = true }, |
| 98178 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96476 | 98179 | .each = .{ .once = &.{ |
| 96477 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98180 | .{ ._, ._, .mov, .dst0d, .memsi(.src0d, .@"4", .src1), ._, ._ }, |
| 96488 | 98181 | } }, |
| 96489 | 98182 | }, .{ |
| 96490 | | .required_features = .{ .avx2, null, null, null }, |
| 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 }, |
| 98183 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96493 | 98184 | .patterns = &.{ |
| 96494 | | .{ .src = .{ .to_mem, .none, .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, |
| 98185 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 96508 | 98186 | }, |
| 96509 | | .dst_temps = .{ .mem, .unused }, |
| 96510 | | .clobbers = .{ .eflags = true }, |
| 98187 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96511 | 98188 | .each = .{ .once = &.{ |
| 96512 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98189 | .{ ._, ._, .mov, .dst0q, .mema(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96519 | 98190 | } }, |
| 96520 | 98191 | }, .{ |
| 96521 | | .required_features = .{ .avx, null, null, null }, |
| 96522 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96523 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98192 | .required_features = .{ .@"64bit", null, null, null }, |
| 98193 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96524 | 98194 | .patterns = &.{ |
| 96525 | | .{ .src = .{ .to_mem, .none, .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, |
| 98195 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 96539 | 98196 | }, |
| 96540 | | .dst_temps = .{ .mem, .unused }, |
| 96541 | | .clobbers = .{ .eflags = true }, |
| 98197 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96542 | 98198 | .each = .{ .once = &.{ |
| 96543 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98199 | .{ ._, ._, .mov, .dst0q, .memsi(.src0q, .@"8", .src1), ._, ._ }, |
| 96554 | 98200 | } }, |
| 96555 | | }, .{ |
| 96556 | | .required_features = .{ .avx, null, null, null }, |
| 96557 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 96558 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 96559 | | .patterns = &.{ |
| 96560 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98201 | } }) catch |err| switch (err) { |
| 98202 | error.SelectFailed => { |
| 98203 | const elem_size = res_ty.abiSize(zcu); |
| 98204 | const base = try cg.tempAllocReg(.usize, abi.RegisterClass.gp); |
| 98205 | while (try ops[0].toBase(false, cg) or |
| 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 = .{ |
| 96563 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96564 | | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 96565 | | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 96566 | | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| 96567 | | .unused, |
| 96568 | | .unused, |
| 96569 | | .unused, |
| 96570 | | .unused, |
| 96571 | | .unused, |
| 96572 | | .unused, |
| 96573 | | .unused, |
| 98250 | else => |e| return e, |
| 98251 | }; |
| 98252 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 98253 | }, |
| 98254 | .slice_elem_val, .ptr_elem_val => |air_tag| if (use_old) switch (air_tag) { |
| 98255 | else => unreachable, |
| 98256 | .slice_elem_val => try cg.airSliceElemVal(inst), |
| 98257 | .ptr_elem_val => try cg.airPtrElemVal(inst), |
| 98258 | } else { |
| 98259 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 98260 | const res_ty = cg.typeOf(bin_op.lhs).elemType2(zcu); |
| 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 }, |
| 96576 | | .clobbers = .{ .eflags = true }, |
| 98269 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96577 | 98270 | .each = .{ .once = &.{ |
| 96578 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98271 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96585 | 98272 | } }, |
| 96586 | 98273 | }, .{ |
| 96587 | | .required_features = .{ .sse2, null, null, null }, |
| 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 }, |
| 98274 | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 96590 | 98275 | .patterns = &.{ |
| 96591 | | .{ .src = .{ .to_mem, .none, .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, |
| 98276 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96605 | 98277 | }, |
| 96606 | | .dst_temps = .{ .mem, .unused }, |
| 96607 | | .clobbers = .{ .eflags = true }, |
| 98278 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96608 | 98279 | .each = .{ .once = &.{ |
| 96609 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98280 | .{ ._, ._, .movzx, .dst0d, .leai(.src0b, .src1), ._, ._ }, |
| 96621 | 98281 | } }, |
| 96622 | 98282 | }, .{ |
| 96623 | | .required_features = .{ .sse2, null, null, null }, |
| 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 }, |
| 98283 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96626 | 98284 | .patterns = &.{ |
| 96627 | | .{ .src = .{ .to_mem, .none, .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, |
| 98285 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 96641 | 98286 | }, |
| 96642 | | .dst_temps = .{ .mem, .unused }, |
| 96643 | | .clobbers = .{ .eflags = true }, |
| 98287 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96644 | 98288 | .each = .{ .once = &.{ |
| 96645 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98289 | .{ ._, ._, .movzx, .dst0d, .leaa(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96653 | 98290 | } }, |
| 96654 | 98291 | }, .{ |
| 96655 | | .required_features = .{ .sse, null, null, null }, |
| 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 }, |
| 98292 | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 96658 | 98293 | .patterns = &.{ |
| 96659 | | .{ .src = .{ .to_mem, .none, .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, |
| 98294 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96673 | 98295 | }, |
| 96674 | | .dst_temps = .{ .mem, .unused }, |
| 96675 | | .clobbers = .{ .eflags = true }, |
| 98296 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96676 | 98297 | .each = .{ .once = &.{ |
| 96677 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98298 | .{ ._, ._, .movzx, .dst0d, .leasi(.src0w, .@"2", .src1), ._, ._ }, |
| 96685 | 98299 | } }, |
| 96686 | 98300 | }, .{ |
| 96687 | | .required_features = .{ .@"64bit", null, null, null }, |
| 96688 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 96689 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 98301 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96690 | 98302 | .patterns = &.{ |
| 96691 | | .{ .src = .{ .to_mem, .none, .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, |
| 98303 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 96705 | 98304 | }, |
| 96706 | | .dst_temps = .{ .mem, .unused }, |
| 96707 | | .clobbers = .{ .eflags = true }, |
| 98305 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96708 | 98306 | .each = .{ .once = &.{ |
| 96709 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98307 | .{ ._, ._, .mov, .dst0d, .leaa(.src0d, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96714 | 98308 | } }, |
| 96715 | 98309 | }, .{ |
| 96716 | | .required_features = .{ .@"64bit", null, null, null }, |
| 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 }, |
| 98310 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 96719 | 98311 | .patterns = &.{ |
| 96720 | | .{ .src = .{ .to_mem, .none, .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, |
| 98312 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96734 | 98313 | }, |
| 96735 | | .dst_temps = .{ .mem, .unused }, |
| 96736 | | .clobbers = .{ .eflags = true }, |
| 98314 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96737 | 98315 | .each = .{ .once = &.{ |
| 96738 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98316 | .{ ._, ._, .mov, .dst0d, .leasi(.src0d, .@"4", .src1), ._, ._ }, |
| 96745 | 98317 | } }, |
| 96746 | 98318 | }, .{ |
| 96747 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 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 }, |
| 98319 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96750 | 98320 | .patterns = &.{ |
| 96751 | | .{ .src = .{ .to_mem, .none, .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, |
| 98321 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 96765 | 98322 | }, |
| 96766 | | .dst_temps = .{ .mem, .unused }, |
| 96767 | | .clobbers = .{ .eflags = true }, |
| 98323 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96768 | 98324 | .each = .{ .once = &.{ |
| 96769 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98325 | .{ ._, ._, .mov, .dst0q, .leaa(.src0q, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 96775 | 98326 | } }, |
| 96776 | 98327 | }, .{ |
| 96777 | 98328 | .required_features = .{ .@"64bit", null, null, null }, |
| 96778 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 96779 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98329 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 96780 | 98330 | .patterns = &.{ |
| 96781 | | .{ .src = .{ .to_mem, .none, .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, |
| 98331 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 96795 | 98332 | }, |
| 96796 | | .dst_temps = .{ .mem, .unused }, |
| 96797 | | .clobbers = .{ .eflags = true }, |
| 98333 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96798 | 98334 | .each = .{ .once = &.{ |
| 96799 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98335 | .{ ._, ._, .mov, .dst0q, .leasi(.src0q, .@"8", .src1), ._, ._ }, |
| 96805 | 98336 | } }, |
| 96806 | | }, .{ |
| 96807 | | .required_features = .{ .@"64bit", null, null, null }, |
| 96808 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 96809 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 98337 | } }) catch |err| switch (err) { |
| 98338 | error.SelectFailed => { |
| 98339 | const elem_size = res_ty.abiSize(zcu); |
| 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 | 98449 | .patterns = &.{ |
| 96811 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98450 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96812 | 98451 | }, |
| 96813 | 98452 | .extra_temps = .{ |
| 96814 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96815 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 98453 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98454 | .unused, |
| 96816 | 98455 | .unused, |
| 96817 | 98456 | .unused, |
| 96818 | 98457 | .unused, |
| ... | ... | @@ -96823,57 +98462,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96823 | 98462 | .unused, |
| 96824 | 98463 | .unused, |
| 96825 | 98464 | }, |
| 96826 | | .dst_temps = .{ .mem, .unused }, |
| 96827 | | .clobbers = .{ .eflags = true }, |
| 98465 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96828 | 98466 | .each = .{ .once = &.{ |
| 96829 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96830 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96831 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 96832 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 96833 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98467 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98468 | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, |
| 96834 | 98469 | } }, |
| 96835 | 98470 | }, .{ |
| 96836 | | .required_features = .{ .@"64bit", null, null, null }, |
| 96837 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 96838 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98471 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98472 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98473 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 96839 | 98474 | .patterns = &.{ |
| 96840 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98475 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96841 | 98476 | }, |
| 96842 | 98477 | .extra_temps = .{ |
| 96843 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96844 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 96845 | | .unused, |
| 96846 | | .unused, |
| 96847 | | .unused, |
| 96848 | | .unused, |
| 96849 | | .unused, |
| 96850 | | .unused, |
| 96851 | | .unused, |
| 98478 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 96852 | 98479 | .unused, |
| 96853 | 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 | 98481 | .unused, |
| 96878 | 98482 | .unused, |
| 96879 | 98483 | .unused, |
| ... | ... | @@ -96883,26 +98487,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96883 | 98487 | .unused, |
| 96884 | 98488 | .unused, |
| 96885 | 98489 | }, |
| 96886 | | .dst_temps = .{ .mem, .unused }, |
| 96887 | | .clobbers = .{ .eflags = true }, |
| 98490 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96888 | 98491 | .each = .{ .once = &.{ |
| 96889 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96890 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98492 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98493 | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, |
| 96895 | 98494 | } }, |
| 96896 | 98495 | }, .{ |
| 96897 | | .required_features = .{ .@"64bit", null, null, null }, |
| 96898 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 96899 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98496 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98497 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98498 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 96900 | 98499 | .patterns = &.{ |
| 96901 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98500 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96902 | 98501 | }, |
| 96903 | 98502 | .extra_temps = .{ |
| 96904 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96905 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 98503 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98504 | .unused, |
| 96906 | 98505 | .unused, |
| 96907 | 98506 | .unused, |
| 96908 | 98507 | .unused, |
| ... | ... | @@ -96913,26 +98512,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96913 | 98512 | .unused, |
| 96914 | 98513 | .unused, |
| 96915 | 98514 | }, |
| 96916 | | .dst_temps = .{ .mem, .unused }, |
| 96917 | | .clobbers = .{ .eflags = true }, |
| 98515 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 96918 | 98516 | .each = .{ .once = &.{ |
| 96919 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96920 | | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98517 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98518 | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, |
| 96925 | 98519 | } }, |
| 96926 | 98520 | }, .{ |
| 96927 | | .required_features = .{ .@"64bit", null, null, null }, |
| 96928 | | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96929 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 98521 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98522 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98523 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 96930 | 98524 | .patterns = &.{ |
| 96931 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98525 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96932 | 98526 | }, |
| 96933 | 98527 | .extra_temps = .{ |
| 96934 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96935 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 98528 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98529 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 96936 | 98530 | .unused, |
| 96937 | 98531 | .unused, |
| 96938 | 98532 | .unused, |
| ... | ... | @@ -96946,22 +98540,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96946 | 98540 | .dst_temps = .{ .mem, .unused }, |
| 96947 | 98541 | .clobbers = .{ .eflags = true }, |
| 96948 | 98542 | .each = .{ .once = &.{ |
| 96949 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96950 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96951 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 96952 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 96953 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98543 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98544 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 98545 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98546 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 98547 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q, ._, ._ }, |
| 96954 | 98548 | } }, |
| 96955 | 98549 | }, .{ |
| 96956 | | .required_features = .{ .@"64bit", null, null, null }, |
| 96957 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96958 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98550 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98551 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98552 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 96959 | 98553 | .patterns = &.{ |
| 96960 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98554 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96961 | 98555 | }, |
| 96962 | 98556 | .extra_temps = .{ |
| 96963 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96964 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98557 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98558 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 96965 | 98559 | .unused, |
| 96966 | 98560 | .unused, |
| 96967 | 98561 | .unused, |
| ... | ... | @@ -96973,28 +98567,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 96973 | 98567 | .unused, |
| 96974 | 98568 | }, |
| 96975 | 98569 | .dst_temps = .{ .mem, .unused }, |
| 96976 | | .clobbers = .{ .eflags = true }, |
| 96977 | 98570 | .each = .{ .once = &.{ |
| 96978 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 96979 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 96980 | | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 96981 | | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| 96982 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 96983 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 96984 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98571 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98572 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 98573 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98574 | .{ ._, ._, .mov, .memd(.dst0q, 8), .si(0), ._, ._ }, |
| 96985 | 98575 | } }, |
| 96986 | 98576 | }, .{ |
| 96987 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 96988 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 96989 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98577 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98578 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98579 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 96990 | 98580 | .patterns = &.{ |
| 96991 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98581 | .{ .src = .{ .to_sse, .none, .none } }, |
| 96992 | 98582 | }, |
| 96993 | 98583 | .extra_temps = .{ |
| 96994 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 96995 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 96996 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 96997 | | .unused, |
| 98584 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98585 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98586 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98587 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 96998 | 98588 | .unused, |
| 96999 | 98589 | .unused, |
| 97000 | 98590 | .unused, |
| ... | ... | @@ -97006,25 +98596,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97006 | 98596 | .dst_temps = .{ .mem, .unused }, |
| 97007 | 98597 | .clobbers = .{ .eflags = true }, |
| 97008 | 98598 | .each = .{ .once = &.{ |
| 97009 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97010 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 97011 | | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| 97012 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 97013 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 97014 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98599 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98600 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 98601 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98602 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 98603 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 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 }, |
| 97018 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any, .any }, |
| 97019 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98608 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98609 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98610 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 97020 | 98611 | .patterns = &.{ |
| 97021 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98612 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97022 | 98613 | }, |
| 97023 | 98614 | .extra_temps = .{ |
| 97024 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97025 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 97026 | | .unused, |
| 97027 | | .unused, |
| 98615 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98616 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98617 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98618 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97028 | 98619 | .unused, |
| 97029 | 98620 | .unused, |
| 97030 | 98621 | .unused, |
| ... | ... | @@ -97036,24 +98627,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97036 | 98627 | .dst_temps = .{ .mem, .unused }, |
| 97037 | 98628 | .clobbers = .{ .eflags = true }, |
| 97038 | 98629 | .each = .{ .once = &.{ |
| 97039 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 97040 | | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 97041 | | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 97042 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 97043 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 97044 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98630 | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98631 | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 98632 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98633 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 98634 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 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 }, |
| 97048 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 97049 | | .dst_constraints = .{ .{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }, .any }, |
| 98639 | .required_features = .{ .sse, null, null, null }, |
| 98640 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98641 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 97050 | 98642 | .patterns = &.{ |
| 97051 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98643 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97052 | 98644 | }, |
| 98645 | .call_frame = .{ .alignment = .@"16" }, |
| 97053 | 98646 | .extra_temps = .{ |
| 97054 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97055 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97056 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 98647 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 98648 | .unused, |
| 98649 | .unused, |
| 97057 | 98650 | .unused, |
| 97058 | 98651 | .unused, |
| 97059 | 98652 | .unused, |
| ... | ... | @@ -97063,28 +98656,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97063 | 98656 | .unused, |
| 97064 | 98657 | .unused, |
| 97065 | 98658 | }, |
| 97066 | | .dst_temps = .{ .mem, .unused }, |
| 97067 | | .clobbers = .{ .eflags = true }, |
| 98659 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 98660 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97068 | 98661 | .each = .{ .once = &.{ |
| 97069 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98662 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97076 | 98663 | } }, |
| 97077 | 98664 | }, .{ |
| 97078 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97079 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97080 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98665 | .required_features = .{ .sse, null, null, null }, |
| 98666 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98667 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 97081 | 98668 | .patterns = &.{ |
| 97082 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98669 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97083 | 98670 | }, |
| 98671 | .call_frame = .{ .alignment = .@"16" }, |
| 97084 | 98672 | .extra_temps = .{ |
| 97085 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97086 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97087 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98673 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| 98674 | .unused, |
| 98675 | .unused, |
| 97088 | 98676 | .unused, |
| 97089 | 98677 | .unused, |
| 97090 | 98678 | .unused, |
| ... | ... | @@ -97094,31 +98682,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97094 | 98682 | .unused, |
| 97095 | 98683 | .unused, |
| 97096 | 98684 | }, |
| 97097 | | .dst_temps = .{ .mem, .unused }, |
| 97098 | | .clobbers = .{ .eflags = true }, |
| 98685 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 98686 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97099 | 98687 | .each = .{ .once = &.{ |
| 97100 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98688 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97109 | 98689 | } }, |
| 97110 | 98690 | }, .{ |
| 97111 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 97112 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97113 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98691 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98692 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98693 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 97114 | 98694 | .patterns = &.{ |
| 97115 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98695 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97116 | 98696 | }, |
| 98697 | .call_frame = .{ .alignment = .@"16" }, |
| 97117 | 98698 | .extra_temps = .{ |
| 97118 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97119 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97120 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 97121 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 98699 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 98700 | .unused, |
| 98701 | .unused, |
| 98702 | .unused, |
| 97122 | 98703 | .unused, |
| 97123 | 98704 | .unused, |
| 97124 | 98705 | .unused, |
| ... | ... | @@ -97127,29 +98708,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97127 | 98708 | .unused, |
| 97128 | 98709 | .unused, |
| 97129 | 98710 | }, |
| 97130 | | .dst_temps = .{ .mem, .unused }, |
| 97131 | | .clobbers = .{ .eflags = true }, |
| 98711 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 98712 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97132 | 98713 | .each = .{ .once = &.{ |
| 97133 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98714 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97141 | 98715 | } }, |
| 97142 | 98716 | }, .{ |
| 97143 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97144 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97145 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98717 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98718 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98719 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 97146 | 98720 | .patterns = &.{ |
| 97147 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98721 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97148 | 98722 | }, |
| 98723 | .call_frame = .{ .alignment = .@"16" }, |
| 97149 | 98724 | .extra_temps = .{ |
| 97150 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 97151 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97152 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 98725 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| 98726 | .unused, |
| 98727 | .unused, |
| 97153 | 98728 | .unused, |
| 97154 | 98729 | .unused, |
| 97155 | 98730 | .unused, |
| ... | ... | @@ -97159,30 +98734,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97159 | 98734 | .unused, |
| 97160 | 98735 | .unused, |
| 97161 | 98736 | }, |
| 97162 | | .dst_temps = .{ .mem, .unused }, |
| 97163 | | .clobbers = .{ .eflags = true }, |
| 98737 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 98738 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97164 | 98739 | .each = .{ .once = &.{ |
| 97165 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98740 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97173 | 98741 | } }, |
| 97174 | 98742 | }, .{ |
| 97175 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97176 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 97177 | | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98743 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98744 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98745 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 97178 | 98746 | .patterns = &.{ |
| 97179 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98747 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97180 | 98748 | }, |
| 98749 | .call_frame = .{ .alignment = .@"16" }, |
| 97181 | 98750 | .extra_temps = .{ |
| 97182 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97183 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97184 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97185 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98751 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, |
| 98752 | .unused, |
| 98753 | .unused, |
| 98754 | .unused, |
| 97186 | 98755 | .unused, |
| 97187 | 98756 | .unused, |
| 97188 | 98757 | .unused, |
| ... | ... | @@ -97191,30 +98760,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97191 | 98760 | .unused, |
| 97192 | 98761 | .unused, |
| 97193 | 98762 | }, |
| 97194 | | .dst_temps = .{ .mem, .unused }, |
| 97195 | | .clobbers = .{ .eflags = true }, |
| 98763 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 98764 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97196 | 98765 | .each = .{ .once = &.{ |
| 97197 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98766 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97205 | 98767 | } }, |
| 97206 | 98768 | }, .{ |
| 97207 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97208 | | .src_constraints = .{ .any_scalar_int, .any, .any }, |
| 97209 | | .dst_constraints = .{ .{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98769 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98770 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98771 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 97210 | 98772 | .patterns = &.{ |
| 97211 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98773 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97212 | 98774 | }, |
| 98775 | .call_frame = .{ .alignment = .@"16" }, |
| 97213 | 98776 | .extra_temps = .{ |
| 97214 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97215 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97216 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97217 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98777 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, |
| 98778 | .unused, |
| 98779 | .unused, |
| 98780 | .unused, |
| 97218 | 98781 | .unused, |
| 97219 | 98782 | .unused, |
| 97220 | 98783 | .unused, |
| ... | ... | @@ -97223,28 +98786,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97223 | 98786 | .unused, |
| 97224 | 98787 | .unused, |
| 97225 | 98788 | }, |
| 97226 | | .dst_temps = .{ .mem, .unused }, |
| 97227 | | .clobbers = .{ .eflags = true }, |
| 98789 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 98790 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97228 | 98791 | .each = .{ .once = &.{ |
| 97229 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98792 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 97237 | 98793 | } }, |
| 97238 | 98794 | }, .{ |
| 97239 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97240 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97241 | | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98795 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98796 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98797 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 97242 | 98798 | .patterns = &.{ |
| 97243 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98799 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97244 | 98800 | }, |
| 98801 | .call_frame = .{ .alignment = .@"16" }, |
| 97245 | 98802 | .extra_temps = .{ |
| 97246 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97247 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 98803 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 98804 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 97248 | 98805 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97249 | 98806 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97250 | 98807 | .unused, |
| ... | ... | @@ -97256,32 +98813,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97256 | 98813 | .unused, |
| 97257 | 98814 | }, |
| 97258 | 98815 | .dst_temps = .{ .mem, .unused }, |
| 97259 | | .clobbers = .{ .eflags = true }, |
| 98816 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97260 | 98817 | .each = .{ .once = &.{ |
| 97261 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97262 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97263 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97264 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97265 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97266 | | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98818 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98819 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98820 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 98821 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 98822 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 98823 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 97274 | 98824 | } }, |
| 97275 | 98825 | }, .{ |
| 97276 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97277 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97278 | | .dst_constraints = .{ .{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98826 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98827 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98828 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 97279 | 98829 | .patterns = &.{ |
| 97280 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98830 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 97281 | 98831 | }, |
| 98832 | .call_frame = .{ .alignment = .@"16" }, |
| 97282 | 98833 | .extra_temps = .{ |
| 97283 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97284 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 98834 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| 98835 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 97285 | 98836 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97286 | 98837 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97287 | 98838 | .unused, |
| ... | ... | @@ -97293,34 +98844,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97293 | 98844 | .unused, |
| 97294 | 98845 | }, |
| 97295 | 98846 | .dst_temps = .{ .mem, .unused }, |
| 97296 | | .clobbers = .{ .eflags = true }, |
| 98847 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97297 | 98848 | .each = .{ .once = &.{ |
| 97298 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97299 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97300 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97301 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97302 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97303 | | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98849 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98850 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98851 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 98852 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 98853 | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 98854 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 97311 | 98855 | } }, |
| 97312 | 98856 | }, .{ |
| 97313 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97314 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97315 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98857 | .required_features = .{ .f16c, null, null, null }, |
| 98858 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 98859 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 97316 | 98860 | .patterns = &.{ |
| 97317 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 98861 | .{ .src = .{ .mem, .none, .none } }, |
| 98862 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97318 | 98863 | }, |
| 97319 | 98864 | .extra_temps = .{ |
| 97320 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97321 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97322 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97323 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98865 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 98866 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 98867 | .unused, |
| 98868 | .unused, |
| 97324 | 98869 | .unused, |
| 97325 | 98870 | .unused, |
| 97326 | 98871 | .unused, |
| ... | ... | @@ -97329,37 +98874,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97329 | 98874 | .unused, |
| 97330 | 98875 | .unused, |
| 97331 | 98876 | }, |
| 97332 | | .dst_temps = .{ .mem, .unused }, |
| 97333 | | .clobbers = .{ .eflags = true }, |
| 98877 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 97334 | 98878 | .each = .{ .once = &.{ |
| 97335 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97336 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97337 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97338 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98879 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98880 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 98881 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 98882 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 97350 | 98883 | } }, |
| 97351 | 98884 | }, .{ |
| 97352 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97353 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97354 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98885 | .required_features = .{ .f16c, null, null, null }, |
| 98886 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 98887 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 97355 | 98888 | .patterns = &.{ |
| 97356 | 98889 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97357 | 98890 | }, |
| 97358 | 98891 | .extra_temps = .{ |
| 97359 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97360 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97361 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97362 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98892 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98893 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 98894 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 98895 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 97363 | 98896 | .unused, |
| 97364 | 98897 | .unused, |
| 97365 | 98898 | .unused, |
| ... | ... | @@ -97369,37 +98902,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97369 | 98902 | .unused, |
| 97370 | 98903 | }, |
| 97371 | 98904 | .dst_temps = .{ .mem, .unused }, |
| 97372 | | .clobbers = .{ .eflags = true }, |
| 97373 | 98905 | .each = .{ .once = &.{ |
| 97374 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97375 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97376 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97377 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97378 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97379 | | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 97380 | | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 97381 | | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 97382 | | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98906 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98907 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 98908 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98909 | .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 98910 | .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ }, |
| 98911 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 98912 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 98913 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 98914 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97389 | 98915 | } }, |
| 97390 | 98916 | }, .{ |
| 97391 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97392 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97393 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98917 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 98918 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 98919 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97394 | 98920 | .patterns = &.{ |
| 97395 | 98921 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97396 | 98922 | }, |
| 98923 | .call_frame = .{ .alignment = .@"16" }, |
| 97397 | 98924 | .extra_temps = .{ |
| 97398 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97399 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97400 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97401 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97402 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 98925 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98926 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 98927 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 98928 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 98929 | .unused, |
| 97403 | 98930 | .unused, |
| 97404 | 98931 | .unused, |
| 97405 | 98932 | .unused, |
| ... | ... | @@ -97408,34 +98935,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97408 | 98935 | .unused, |
| 97409 | 98936 | }, |
| 97410 | 98937 | .dst_temps = .{ .mem, .unused }, |
| 97411 | | .clobbers = .{ .eflags = true }, |
| 98938 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97412 | 98939 | .each = .{ .once = &.{ |
| 97413 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97414 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97415 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97416 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97417 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97418 | | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 97419 | | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 98940 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98941 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 98942 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 98943 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 98944 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 98945 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 98946 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97425 | 98947 | } }, |
| 97426 | 98948 | }, .{ |
| 97427 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97428 | | .src_constraints = .{ .any_scalar_signed_int, .any, .any }, |
| 97429 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98949 | .required_features = .{ .avx, null, null, null }, |
| 98950 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 98951 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97430 | 98952 | .patterns = &.{ |
| 97431 | 98953 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97432 | 98954 | }, |
| 98955 | .call_frame = .{ .alignment = .@"16" }, |
| 97433 | 98956 | .extra_temps = .{ |
| 97434 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97435 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97436 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97437 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97438 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 98957 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98958 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 98959 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 98960 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 98961 | .unused, |
| 97439 | 98962 | .unused, |
| 97440 | 98963 | .unused, |
| 97441 | 98964 | .unused, |
| ... | ... | @@ -97444,34 +98967,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97444 | 98967 | .unused, |
| 97445 | 98968 | }, |
| 97446 | 98969 | .dst_temps = .{ .mem, .unused }, |
| 97447 | | .clobbers = .{ .eflags = true }, |
| 98970 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97448 | 98971 | .each = .{ .once = &.{ |
| 97449 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97450 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97451 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97452 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97453 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97454 | | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 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, ._, ._, ._ }, |
| 98972 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98973 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 98974 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 98975 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 98976 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 98977 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 97460 | 98978 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 97461 | 98979 | } }, |
| 97462 | 98980 | }, .{ |
| 97463 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97464 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97465 | | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 98981 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 98982 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 98983 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97466 | 98984 | .patterns = &.{ |
| 97467 | 98985 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97468 | 98986 | }, |
| 98987 | .call_frame = .{ .alignment = .@"16" }, |
| 97469 | 98988 | .extra_temps = .{ |
| 97470 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97471 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97472 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97473 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97474 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98989 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98990 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 98991 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 98992 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 98993 | .unused, |
| 97475 | 98994 | .unused, |
| 97476 | 98995 | .unused, |
| 97477 | 98996 | .unused, |
| ... | ... | @@ -97480,32 +98999,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97480 | 98999 | .unused, |
| 97481 | 99000 | }, |
| 97482 | 99001 | .dst_temps = .{ .mem, .unused }, |
| 97483 | | .clobbers = .{ .eflags = true }, |
| 99002 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97484 | 99003 | .each = .{ .once = &.{ |
| 97485 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97486 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97487 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97488 | | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 97489 | | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97490 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97491 | | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 97492 | | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 97493 | | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 97494 | | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 99004 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99005 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99006 | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 99007 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99008 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99009 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99010 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97495 | 99011 | } }, |
| 97496 | 99012 | }, .{ |
| 97497 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97498 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97499 | | .dst_constraints = .{ .{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 99013 | .required_features = .{ .sse2, null, null, null }, |
| 99014 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99015 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97500 | 99016 | .patterns = &.{ |
| 97501 | 99017 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97502 | 99018 | }, |
| 99019 | .call_frame = .{ .alignment = .@"16" }, |
| 97503 | 99020 | .extra_temps = .{ |
| 97504 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97505 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97506 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97507 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97508 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 99021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99022 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99023 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 99024 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99025 | .unused, |
| 97509 | 99026 | .unused, |
| 97510 | 99027 | .unused, |
| 97511 | 99028 | .unused, |
| ... | ... | @@ -97514,32 +99031,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97514 | 99031 | .unused, |
| 97515 | 99032 | }, |
| 97516 | 99033 | .dst_temps = .{ .mem, .unused }, |
| 97517 | | .clobbers = .{ .eflags = true }, |
| 99034 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97518 | 99035 | .each = .{ .once = &.{ |
| 97519 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97520 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97521 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97522 | | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 97523 | | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97524 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97525 | | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 97526 | | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 97527 | | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 99036 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99037 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99038 | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 99039 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99040 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99041 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 97528 | 99042 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 97529 | 99043 | } }, |
| 97530 | 99044 | }, .{ |
| 97531 | | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 97532 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97533 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 99045 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 99046 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99047 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97534 | 99048 | .patterns = &.{ |
| 97535 | 99049 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97536 | 99050 | }, |
| 99051 | .call_frame = .{ .alignment = .@"16" }, |
| 97537 | 99052 | .extra_temps = .{ |
| 97538 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97539 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97540 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97541 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 97542 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 99053 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99054 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99055 | .{ .type = .f32, .kind = .mem }, |
| 99056 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99057 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97543 | 99058 | .unused, |
| 97544 | 99059 | .unused, |
| 97545 | 99060 | .unused, |
| ... | ... | @@ -97548,35 +99063,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97548 | 99063 | .unused, |
| 97549 | 99064 | }, |
| 97550 | 99065 | .dst_temps = .{ .mem, .unused }, |
| 97551 | | .clobbers = .{ .eflags = true }, |
| 99066 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97552 | 99067 | .each = .{ .once = &.{ |
| 97553 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97554 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97555 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97556 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 97557 | | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97558 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97559 | | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| 97560 | | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 99068 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99069 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99070 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99071 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99072 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99073 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 99074 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99075 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97566 | 99076 | } }, |
| 97567 | 99077 | }, .{ |
| 97568 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 97569 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97570 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 99078 | .required_features = .{ .sse, null, null, null }, |
| 99079 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99080 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 97571 | 99081 | .patterns = &.{ |
| 97572 | 99082 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97573 | 99083 | }, |
| 99084 | .call_frame = .{ .alignment = .@"16" }, |
| 97574 | 99085 | .extra_temps = .{ |
| 97575 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97576 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97577 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97578 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 97579 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 99086 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99087 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99088 | .{ .type = .f32, .kind = .mem }, |
| 99089 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99090 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 97580 | 99091 | .unused, |
| 97581 | 99092 | .unused, |
| 97582 | 99093 | .unused, |
| ... | ... | @@ -97585,71 +99096,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97585 | 99096 | .unused, |
| 97586 | 99097 | }, |
| 97587 | 99098 | .dst_temps = .{ .mem, .unused }, |
| 97588 | | .clobbers = .{ .eflags = true }, |
| 99099 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97589 | 99100 | .each = .{ .once = &.{ |
| 97590 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97591 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97592 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97593 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 97594 | | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97595 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97596 | | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| 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, ._, ._, ._ }, |
| 99101 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99102 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99103 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99104 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99105 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99106 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 99107 | .{ ._, ._c, .in, .tmp0p, .si(1), ._, ._ }, |
| 97602 | 99108 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 97603 | 99109 | } }, |
| 97604 | 99110 | }, .{ |
| 97605 | | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 97606 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97607 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99111 | .required_features = .{ .f16c, null, null, null }, |
| 99112 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 99113 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 97608 | 99114 | .patterns = &.{ |
| 97609 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 99115 | .{ .src = .{ .mem, .none, .none } }, |
| 99116 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97610 | 99117 | }, |
| 97611 | | .extra_temps = .{ |
| 97612 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97613 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97614 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97615 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 97616 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97617 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97618 | | .unused, |
| 97619 | | .unused, |
| 97620 | | .unused, |
| 97621 | | .unused, |
| 97622 | | .unused, |
| 99118 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99119 | .each = .{ .once = &.{ |
| 99120 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 99121 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 99122 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, |
| 99123 | } }, |
| 99124 | }, .{ |
| 99125 | .required_features = .{ .f16c, null, null, null }, |
| 99126 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 99127 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99128 | .patterns = &.{ |
| 99129 | .{ .src = .{ .mem, .none, .none } }, |
| 99130 | .{ .src = .{ .to_sse, .none, .none } }, |
| 97623 | 99131 | }, |
| 97624 | | .dst_temps = .{ .mem, .unused }, |
| 97625 | | .clobbers = .{ .eflags = true }, |
| 99132 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 97626 | 99133 | .each = .{ .once = &.{ |
| 97627 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97628 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97629 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 99134 | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 99135 | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 99136 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, |
| 97638 | 99137 | } }, |
| 97639 | 99138 | }, .{ |
| 97640 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 97641 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97642 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99139 | .required_features = .{ .f16c, null, null, null }, |
| 99140 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 99141 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 97643 | 99142 | .patterns = &.{ |
| 97644 | 99143 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97645 | 99144 | }, |
| 97646 | 99145 | .extra_temps = .{ |
| 97647 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97648 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97649 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97650 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 97651 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97652 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99146 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99147 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 99148 | .unused, |
| 99149 | .unused, |
| 99150 | .unused, |
| 99151 | .unused, |
| 97653 | 99152 | .unused, |
| 97654 | 99153 | .unused, |
| 97655 | 99154 | .unused, |
| ... | ... | @@ -97657,32 +99156,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97657 | 99156 | .unused, |
| 97658 | 99157 | }, |
| 97659 | 99158 | .dst_temps = .{ .mem, .unused }, |
| 97660 | | .clobbers = .{ .eflags = true }, |
| 97661 | 99159 | .each = .{ .once = &.{ |
| 97662 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97663 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97664 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97665 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| 97666 | | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97667 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97668 | | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, |
| 97669 | | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 97670 | | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 97671 | | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 97672 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 99160 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99161 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99162 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 99163 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99164 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99165 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99166 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97673 | 99167 | } }, |
| 97674 | 99168 | }, .{ |
| 97675 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97676 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97677 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 99169 | .required_features = .{ .f16c, null, null, null }, |
| 99170 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 99171 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 97678 | 99172 | .patterns = &.{ |
| 97679 | 99173 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97680 | 99174 | }, |
| 97681 | 99175 | .extra_temps = .{ |
| 97682 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97683 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97684 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97685 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 99176 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99177 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 99178 | .unused, |
| 99179 | .unused, |
| 97686 | 99180 | .unused, |
| 97687 | 99181 | .unused, |
| 97688 | 99182 | .unused, |
| ... | ... | @@ -97692,34 +99186,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97692 | 99186 | .unused, |
| 97693 | 99187 | }, |
| 97694 | 99188 | .dst_temps = .{ .mem, .unused }, |
| 97695 | | .clobbers = .{ .eflags = true }, |
| 97696 | 99189 | .each = .{ .once = &.{ |
| 97697 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97698 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97699 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97700 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97701 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97702 | | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| 97703 | | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 99190 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99191 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99192 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 99193 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99194 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99195 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99196 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97710 | 99197 | } }, |
| 97711 | 99198 | }, .{ |
| 97712 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97713 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97714 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 99199 | .required_features = .{ .avx, null, null, null }, |
| 99200 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99201 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 97715 | 99202 | .patterns = &.{ |
| 97716 | 99203 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97717 | 99204 | }, |
| 99205 | .call_frame = .{ .alignment = .@"16" }, |
| 97718 | 99206 | .extra_temps = .{ |
| 97719 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97720 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97721 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97722 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 99207 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99208 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99209 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 99210 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 97723 | 99211 | .unused, |
| 97724 | 99212 | .unused, |
| 97725 | 99213 | .unused, |
| ... | ... | @@ -97729,35 +99217,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97729 | 99217 | .unused, |
| 97730 | 99218 | }, |
| 97731 | 99219 | .dst_temps = .{ .mem, .unused }, |
| 97732 | | .clobbers = .{ .eflags = true }, |
| 99220 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97733 | 99221 | .each = .{ .once = &.{ |
| 97734 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97735 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97736 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97737 | | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97738 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97739 | | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| 97740 | | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 99222 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99223 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99224 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 99225 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99226 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99227 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99228 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97747 | 99229 | } }, |
| 97748 | 99230 | }, .{ |
| 97749 | | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 97750 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97751 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99231 | .required_features = .{ .sse2, null, null, null }, |
| 99232 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99233 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 97752 | 99234 | .patterns = &.{ |
| 97753 | 99235 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97754 | 99236 | }, |
| 99237 | .call_frame = .{ .alignment = .@"16" }, |
| 97755 | 99238 | .extra_temps = .{ |
| 97756 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97757 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97758 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97759 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97760 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 99239 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99240 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99241 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 99242 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99243 | .unused, |
| 97761 | 99244 | .unused, |
| 97762 | 99245 | .unused, |
| 97763 | 99246 | .unused, |
| ... | ... | @@ -97766,858 +99249,1000 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 97766 | 99249 | .unused, |
| 97767 | 99250 | }, |
| 97768 | 99251 | .dst_temps = .{ .mem, .unused }, |
| 97769 | | .clobbers = .{ .eflags = true }, |
| 99252 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 97770 | 99253 | .each = .{ .once = &.{ |
| 97771 | | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 97772 | | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 97773 | | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 97774 | | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 97775 | | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 97776 | | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 97777 | | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 99254 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99255 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99256 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 99257 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99258 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99259 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 97783 | 99261 | } }, |
| 97784 | 99262 | }, .{ |
| 97785 | | .required_features = .{ .@"64bit", null, null, null }, |
| 97786 | | .src_constraints = .{ .any_scalar_unsigned_int, .any, .any }, |
| 97787 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99263 | .required_features = .{ .sse, null, null, null }, |
| 99264 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99265 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 97788 | 99266 | .patterns = &.{ |
| 97789 | 99267 | .{ .src = .{ .to_mem, .none, .none } }, |
| 97790 | 99268 | }, |
| 99269 | .call_frame = .{ .alignment = .@"16" }, |
| 97791 | 99270 | .extra_temps = .{ |
| 97792 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 97793 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 97794 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 97795 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 97796 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 97797 | | .unused, |
| 99271 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99272 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99273 | .{ .type = .f32, .kind = .mem }, |
| 99274 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99275 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 99276 | .unused, |
| 97798 | 99277 | .unused, |
| 97799 | 99278 | .unused, |
| 97800 | 99279 | .unused, |
| 97801 | 99280 | .unused, |
| 97802 | 99281 | .unused, |
| 97803 | 99282 | }, |
| 97804 | | .dst_temps = .{ .mem, .unused }, |
| 97805 | | .clobbers = .{ .eflags = true }, |
| 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 }, |
| 99283 | .dst_temps = .{ .mem, .unused }, |
| 99284 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98085 | 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 }, |
| 98090 | | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, |
| 99296 | .required_features = .{ .f16c, null, null, null }, |
| 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 | 99299 | .patterns = &.{ |
| 98092 | | .{ .src = .{ .to_gpr, .imm32, .none } }, |
| 99300 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98093 | 99301 | }, |
| 98094 | | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 98095 | | .clobbers = .{ .eflags = true }, |
| 99302 | .extra_temps = .{ |
| 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 | 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 }, |
| 98101 | | .src_constraints = .{ .{ .bool_vec = .qword }, .any, .any }, |
| 99325 | .required_features = .{ .f16c, null, null, null }, |
| 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 | 99328 | .patterns = &.{ |
| 98103 | | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 99329 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98104 | 99330 | }, |
| 98105 | | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 98106 | | .clobbers = .{ .eflags = true }, |
| 99331 | .extra_temps = .{ |
| 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 | 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 | 99359 | .patterns = &.{ |
| 98113 | | .{ .src = .{ .to_mem, .imm32, .none } }, |
| 99360 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98114 | 99361 | }, |
| 98115 | | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 98116 | | .clobbers = .{ .eflags = true }, |
| 99362 | .call_frame = .{ .alignment = .@"16" }, |
| 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 | 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 | 99391 | .patterns = &.{ |
| 98123 | | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 99392 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98124 | 99393 | }, |
| 98125 | | .dst_temps = .{ .{ .cc = .c }, .unused }, |
| 98126 | | .clobbers = .{ .eflags = true }, |
| 99394 | .call_frame = .{ .alignment = .@"16" }, |
| 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 }, |
| 98195 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 99645 | .required_features = .{ .sse2, null, null, null }, |
| 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 | 99648 | .patterns = &.{ |
| 98197 | | .{ .src = .{ .to_mem, .to_gpr, .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); |
| 99649 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98251 | 99650 | }, |
| 98252 | | else => |e| return e, |
| 98253 | | }; |
| 98254 | | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 98255 | | }, |
| 98256 | | .slice_elem_val, .ptr_elem_val => |air_tag| if (use_old) switch (air_tag) { |
| 98257 | | else => unreachable, |
| 98258 | | .slice_elem_val => try cg.airSliceElemVal(inst), |
| 98259 | | .ptr_elem_val => try cg.airPtrElemVal(inst), |
| 98260 | | } else { |
| 98261 | | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 98262 | | const res_ty = cg.typeOf(bin_op.lhs).elemType2(zcu); |
| 98263 | | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 98264 | | try ops[0].toSlicePtr(cg); |
| 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 } }, |
| 99651 | .call_frame = .{ .alignment = .@"16" }, |
| 99652 | .extra_temps = .{ |
| 99653 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99654 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99655 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 99656 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 99657 | .unused, |
| 99658 | .unused, |
| 99659 | .unused, |
| 99660 | .unused, |
| 99661 | .unused, |
| 99662 | .unused, |
| 99663 | .unused, |
| 98270 | 99664 | }, |
| 98271 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 99665 | .dst_temps = .{ .mem, .unused }, |
| 99666 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98272 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 }, |
| 98331 | | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 99874 | .required_features = .{ .sse2, null, null, null }, |
| 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 | 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 | 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) { |
| 98340 | | error.SelectFailed => { |
| 98341 | | const elem_size = res_ty.abiSize(zcu); |
| 98342 | | while (true) for (&ops) |*op| { |
| 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 }, |
| 99906 | }, .{ |
| 99907 | .required_features = .{ .sse, null, null, null }, |
| 99908 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99909 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 98451 | 99910 | .patterns = &.{ |
| 98452 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 99911 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98453 | 99912 | }, |
| 99913 | .call_frame = .{ .alignment = .@"16" }, |
| 98454 | 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 | 99921 | .unused, |
| 98457 | 99922 | .unused, |
| 98458 | 99923 | .unused, |
| 98459 | 99924 | .unused, |
| 98460 | 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 | 99955 | .unused, |
| 98462 | 99956 | .unused, |
| 98463 | 99957 | .unused, |
| 98464 | 99958 | .unused, |
| 98465 | 99959 | .unused, |
| 98466 | 99960 | }, |
| 98467 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 99961 | .dst_temps = .{ .mem, .unused }, |
| 99962 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98468 | 99963 | .each = .{ .once = &.{ |
| 98469 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98470 | | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, |
| 99964 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 98474 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98475 | | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 99975 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 99976 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99977 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98476 | 99978 | .patterns = &.{ |
| 98477 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 99979 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98478 | 99980 | }, |
| 99981 | .call_frame = .{ .alignment = .@"16" }, |
| 98479 | 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 | 99989 | .unused, |
| 98482 | 99990 | .unused, |
| 98483 | 99991 | .unused, |
| 98484 | 99992 | .unused, |
| 98485 | 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 | 100024 | .unused, |
| 98487 | 100025 | .unused, |
| 98488 | 100026 | .unused, |
| 98489 | 100027 | .unused, |
| 98490 | 100028 | .unused, |
| 98491 | 100029 | }, |
| 98492 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100030 | .dst_temps = .{ .mem, .unused }, |
| 100031 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98493 | 100032 | .each = .{ .once = &.{ |
| 98494 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98495 | | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, |
| 100033 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 98499 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98500 | | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 100045 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 100046 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100047 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98501 | 100048 | .patterns = &.{ |
| 98502 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 100049 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98503 | 100050 | }, |
| 100051 | .call_frame = .{ .alignment = .@"16" }, |
| 98504 | 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 | 100059 | .unused, |
| 98507 | 100060 | .unused, |
| 98508 | 100061 | .unused, |
| 98509 | 100062 | .unused, |
| 98510 | 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 | 100094 | .unused, |
| 98512 | 100095 | .unused, |
| 98513 | 100096 | .unused, |
| 98514 | 100097 | .unused, |
| 98515 | 100098 | .unused, |
| 98516 | 100099 | }, |
| 98517 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100100 | .dst_temps = .{ .mem, .unused }, |
| 100101 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98518 | 100102 | .each = .{ .once = &.{ |
| 98519 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98520 | | .{ ._, .v_, .cvttss2si, .dst0d, .tmp0d, ._, ._ }, |
| 100103 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 98524 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98525 | | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 100115 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100116 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100117 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 98526 | 100118 | .patterns = &.{ |
| 98527 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 100119 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98528 | 100120 | }, |
| 100121 | .call_frame = .{ .alignment = .@"16" }, |
| 98529 | 100122 | .extra_temps = .{ |
| 98530 | | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98531 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 98532 | | .unused, |
| 100123 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100124 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 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 | 100130 | .unused, |
| 98534 | 100131 | .unused, |
| 98535 | 100132 | .unused, |
| 98536 | 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 | 100166 | .unused, |
| 98538 | 100167 | .unused, |
| 98539 | 100168 | .unused, |
| 98540 | 100169 | .unused, |
| 98541 | 100170 | }, |
| 98542 | 100171 | .dst_temps = .{ .mem, .unused }, |
| 98543 | | .clobbers = .{ .eflags = true }, |
| 100172 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98544 | 100173 | .each = .{ .once = &.{ |
| 98545 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98546 | | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 98547 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98548 | | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 98549 | | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q, ._, ._ }, |
| 100174 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100175 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100176 | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 100177 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 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 }, |
| 98553 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98554 | | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 100187 | .required_features = .{ .avx, null, null, null }, |
| 100188 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100189 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 98555 | 100190 | .patterns = &.{ |
| 100191 | .{ .src = .{ .mem, .none, .none } }, |
| 98556 | 100192 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98557 | 100193 | }, |
| 98558 | | .extra_temps = .{ |
| 98559 | | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98560 | | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 98561 | | .unused, |
| 98562 | | .unused, |
| 98563 | | .unused, |
| 98564 | | .unused, |
| 98565 | | .unused, |
| 98566 | | .unused, |
| 98567 | | .unused, |
| 98568 | | .unused, |
| 98569 | | .unused, |
| 100194 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100195 | .each = .{ .once = &.{ |
| 100196 | .{ ._, .v_, .cvttss2si, .dst0d, .src0d, ._, ._ }, |
| 100197 | } }, |
| 100198 | }, .{ |
| 100199 | .required_features = .{ .sse, null, null, null }, |
| 100200 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100201 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 100202 | .patterns = &.{ |
| 100203 | .{ .src = .{ .mem, .none, .none } }, |
| 100204 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98570 | 100205 | }, |
| 98571 | | .dst_temps = .{ .mem, .unused }, |
| 100206 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98572 | 100207 | .each = .{ .once = &.{ |
| 98573 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98574 | | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 98575 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98576 | | .{ ._, ._, .mov, .memd(.dst0q, 8), .si(0), ._, ._ }, |
| 100208 | .{ ._, ._, .cvttss2si, .dst0d, .src0d, ._, ._ }, |
| 98577 | 100209 | } }, |
| 98578 | 100210 | }, .{ |
| 98579 | | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98580 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98581 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 100211 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100212 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100213 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 98582 | 100214 | .patterns = &.{ |
| 100215 | .{ .src = .{ .mem, .none, .none } }, |
| 98583 | 100216 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98584 | 100217 | }, |
| 98585 | | .extra_temps = .{ |
| 98586 | | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98587 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98588 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98589 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98590 | | .unused, |
| 98591 | | .unused, |
| 98592 | | .unused, |
| 98593 | | .unused, |
| 98594 | | .unused, |
| 98595 | | .unused, |
| 98596 | | .unused, |
| 100218 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100219 | .each = .{ .once = &.{ |
| 100220 | .{ ._, .v_, .cvttss2si, .dst0q, .src0d, ._, ._ }, |
| 100221 | } }, |
| 100222 | }, .{ |
| 100223 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100224 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100225 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 100226 | .patterns = &.{ |
| 100227 | .{ .src = .{ .mem, .none, .none } }, |
| 100228 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98597 | 100229 | }, |
| 98598 | | .dst_temps = .{ .mem, .unused }, |
| 98599 | | .clobbers = .{ .eflags = true }, |
| 100230 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98600 | 100231 | .each = .{ .once = &.{ |
| 98601 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 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, ._, ._, ._, ._ }, |
| 100232 | .{ ._, ._, .cvttss2si, .dst0q, .src0d, ._, ._ }, |
| 98608 | 100233 | } }, |
| 98609 | 100234 | }, .{ |
| 98610 | | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 98611 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98612 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 100235 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100236 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100237 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 98613 | 100238 | .patterns = &.{ |
| 98614 | 100239 | .{ .src = .{ .to_sse, .none, .none } }, |
| 98615 | 100240 | }, |
| 98616 | 100241 | .extra_temps = .{ |
| 98617 | 100242 | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 98618 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98619 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98620 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 100243 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100244 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100245 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 98621 | 100246 | .unused, |
| 98622 | 100247 | .unused, |
| 98623 | 100248 | .unused, |
| ... | ... | @@ -98626,29 +100251,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98626 | 100251 | .unused, |
| 98627 | 100252 | .unused, |
| 98628 | 100253 | }, |
| 98629 | | .dst_temps = .{ .mem, .unused }, |
| 100254 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 98630 | 100255 | .clobbers = .{ .eflags = true }, |
| 98631 | 100256 | .each = .{ .once = &.{ |
| 98632 | | .{ ._, .v_ps, .cvtph2, .tmp0x, .src0q, ._, ._ }, |
| 98633 | | .{ ._, .v_, .cvttss2si, .tmp1q, .tmp0d, ._, ._ }, |
| 98634 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98635 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 98636 | | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 98637 | | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 98638 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 100257 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 100258 | .{ ._, .v_, .cvttss2si, .tmp2q, .src0d, ._, ._ }, |
| 100259 | .{ ._, .v_ss, .sub, .tmp0x, .src0x, .lea(.tmp1d), ._ }, |
| 100260 | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, |
| 100261 | .{ ._, ._, .mov, .tmp1q, .tmp2q, ._, ._ }, |
| 100262 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 100263 | .{ ._, ._, .@"and", .dst0q, .tmp2q, ._, ._ }, |
| 100264 | .{ ._, ._, .@"or", .dst0q, .tmp1q, ._, ._ }, |
| 98639 | 100265 | } }, |
| 98640 | 100266 | }, .{ |
| 98641 | | .required_features = .{ .sse, null, null, null }, |
| 98642 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98643 | | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 100267 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100268 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100269 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 98644 | 100270 | .patterns = &.{ |
| 98645 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100271 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 98646 | 100272 | }, |
| 98647 | | .call_frame = .{ .alignment = .@"16" }, |
| 98648 | 100273 | .extra_temps = .{ |
| 98649 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 98650 | | .unused, |
| 98651 | | .unused, |
| 100274 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100275 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100276 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 98652 | 100277 | .unused, |
| 98653 | 100278 | .unused, |
| 98654 | 100279 | .unused, |
| ... | ... | @@ -98658,21 +100283,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98658 | 100283 | .unused, |
| 98659 | 100284 | .unused, |
| 98660 | 100285 | }, |
| 98661 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 98662 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100286 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100287 | .clobbers = .{ .eflags = true }, |
| 98663 | 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 }, |
| 98668 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98669 | | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 100299 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100300 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100301 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 98670 | 100302 | .patterns = &.{ |
| 98671 | 100303 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98672 | 100304 | }, |
| 98673 | 100305 | .call_frame = .{ .alignment = .@"16" }, |
| 98674 | 100306 | .extra_temps = .{ |
| 98675 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| 100307 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 98676 | 100308 | .unused, |
| 98677 | 100309 | .unused, |
| 98678 | 100310 | .unused, |
| ... | ... | @@ -98684,21 +100316,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98684 | 100316 | .unused, |
| 98685 | 100317 | .unused, |
| 98686 | 100318 | }, |
| 98687 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 100319 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 98688 | 100320 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98689 | 100321 | .each = .{ .once = &.{ |
| 98690 | 100322 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98691 | 100323 | } }, |
| 98692 | 100324 | }, .{ |
| 98693 | 100325 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98694 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98695 | | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 100326 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100327 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 98696 | 100328 | .patterns = &.{ |
| 98697 | 100329 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98698 | 100330 | }, |
| 98699 | 100331 | .call_frame = .{ .alignment = .@"16" }, |
| 98700 | 100332 | .extra_temps = .{ |
| 98701 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 100333 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 98702 | 100334 | .unused, |
| 98703 | 100335 | .unused, |
| 98704 | 100336 | .unused, |
| ... | ... | @@ -98710,100 +100342,146 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98710 | 100342 | .unused, |
| 98711 | 100343 | .unused, |
| 98712 | 100344 | }, |
| 98713 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 100345 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 98714 | 100346 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98715 | 100347 | .each = .{ .once = &.{ |
| 98716 | 100348 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98717 | 100349 | } }, |
| 98718 | 100350 | }, .{ |
| 98719 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98720 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98721 | | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 100351 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100352 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100353 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98722 | 100354 | .patterns = &.{ |
| 98723 | 100355 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98724 | 100356 | }, |
| 98725 | 100357 | .call_frame = .{ .alignment = .@"16" }, |
| 98726 | 100358 | .extra_temps = .{ |
| 98727 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| 98728 | | .unused, |
| 98729 | | .unused, |
| 98730 | | .unused, |
| 98731 | | .unused, |
| 98732 | | .unused, |
| 98733 | | .unused, |
| 100359 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100360 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 100361 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 100362 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 100363 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 100364 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100365 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98734 | 100366 | .unused, |
| 98735 | 100367 | .unused, |
| 98736 | 100368 | .unused, |
| 98737 | 100369 | .unused, |
| 98738 | 100370 | }, |
| 98739 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 100371 | .dst_temps = .{ .mem, .unused }, |
| 98740 | 100372 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98741 | 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 }, |
| 98746 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98747 | | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 100392 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 100393 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100394 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98748 | 100395 | .patterns = &.{ |
| 98749 | 100396 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98750 | 100397 | }, |
| 98751 | 100398 | .call_frame = .{ .alignment = .@"16" }, |
| 98752 | 100399 | .extra_temps = .{ |
| 98753 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, |
| 98754 | | .unused, |
| 98755 | | .unused, |
| 98756 | | .unused, |
| 98757 | | .unused, |
| 98758 | | .unused, |
| 98759 | | .unused, |
| 100400 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100401 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 100402 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 100403 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 100404 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 100405 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100406 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98760 | 100407 | .unused, |
| 98761 | 100408 | .unused, |
| 98762 | 100409 | .unused, |
| 98763 | 100410 | .unused, |
| 98764 | 100411 | }, |
| 98765 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 100412 | .dst_temps = .{ .mem, .unused }, |
| 98766 | 100413 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98767 | 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 | 100433 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98772 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98773 | | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 100434 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100435 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98774 | 100436 | .patterns = &.{ |
| 98775 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100437 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98776 | 100438 | }, |
| 98777 | 100439 | .call_frame = .{ .alignment = .@"16" }, |
| 98778 | 100440 | .extra_temps = .{ |
| 98779 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, |
| 98780 | | .unused, |
| 98781 | | .unused, |
| 98782 | | .unused, |
| 98783 | | .unused, |
| 98784 | | .unused, |
| 98785 | | .unused, |
| 100441 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100442 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 100443 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 100444 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 100445 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 100446 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 100447 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98786 | 100448 | .unused, |
| 98787 | 100449 | .unused, |
| 98788 | 100450 | .unused, |
| 98789 | 100451 | .unused, |
| 98790 | 100452 | }, |
| 98791 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 100453 | .dst_temps = .{ .mem, .unused }, |
| 98792 | 100454 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98793 | 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 | 100474 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98798 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98799 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 100475 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100476 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 98800 | 100477 | .patterns = &.{ |
| 98801 | 100478 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 98802 | 100479 | }, |
| 98803 | 100480 | .call_frame = .{ .alignment = .@"16" }, |
| 98804 | 100481 | .extra_temps = .{ |
| 98805 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 100482 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 98806 | 100483 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 100484 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 98807 | 100485 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98808 | 100486 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 98809 | 100487 | .unused, |
| ... | ... | @@ -98812,31 +100490,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98812 | 100490 | .unused, |
| 98813 | 100491 | .unused, |
| 98814 | 100492 | .unused, |
| 98815 | | .unused, |
| 98816 | 100493 | }, |
| 98817 | 100494 | .dst_temps = .{ .mem, .unused }, |
| 98818 | 100495 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98819 | 100496 | .each = .{ .once = &.{ |
| 98820 | 100497 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98821 | 100498 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98822 | | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 98823 | | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 98824 | | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 100499 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp2q, ._, ._ }, |
| 100500 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 100501 | .{ ._, ._, .lea, .tmp3p, .memd(.dst0, 16), ._, ._ }, |
| 100502 | .{ ._, ._, .mov, .tmp4d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 98825 | 100503 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 98826 | 100504 | } }, |
| 98827 | 100505 | }, .{ |
| 98828 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 98829 | | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 98830 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 100506 | .required_features = .{ .avx, null, null, null }, |
| 100507 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100508 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 98831 | 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 | 100513 | .extra_temps = .{ |
| 98836 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| 98837 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 98838 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 98839 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 100514 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100515 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 100516 | .unused, |
| 100517 | .unused, |
| 98840 | 100518 | .unused, |
| 98841 | 100519 | .unused, |
| 98842 | 100520 | .unused, |
| ... | ... | @@ -98845,19 +100523,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98845 | 100523 | .unused, |
| 98846 | 100524 | .unused, |
| 98847 | 100525 | }, |
| 98848 | | .dst_temps = .{ .mem, .unused }, |
| 98849 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100526 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98850 | 100527 | .each = .{ .once = &.{ |
| 98851 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 98852 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 98853 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 98854 | | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 8), ._, ._ }, |
| 98855 | | .{ ._, ._, .mov, .tmp3d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| 98856 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 100528 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100529 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 100530 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 98857 | 100531 | } }, |
| 98858 | 100532 | }, .{ |
| 98859 | | .required_features = .{ .f16c, null, null, null }, |
| 98860 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 100533 | .required_features = .{ .ssse3, null, null, null }, |
| 100534 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 98861 | 100535 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 98862 | 100536 | .patterns = &.{ |
| 98863 | 100537 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -98879,13 +100553,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98879 | 100553 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 98880 | 100554 | .each = .{ .once = &.{ |
| 98881 | 100555 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98882 | | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 98883 | | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 98884 | | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 100556 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 100557 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 98885 | 100558 | } }, |
| 98886 | 100559 | }, .{ |
| 98887 | | .required_features = .{ .f16c, null, null, null }, |
| 98888 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 100560 | .required_features = .{ .avx, null, null, null }, |
| 100561 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 98889 | 100562 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 98890 | 100563 | .patterns = &.{ |
| 98891 | 100564 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -98908,26 +100581,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98908 | 100581 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 98909 | 100582 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 98910 | 100583 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98911 | | .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 98912 | | .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ }, |
| 100584 | .{ .@"0:", .v_, .cvttps2dq, .tmp3x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 98913 | 100585 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 98914 | 100586 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 98915 | 100587 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 98916 | 100588 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98917 | 100589 | } }, |
| 98918 | 100590 | }, .{ |
| 98919 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 98920 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100591 | .required_features = .{ .ssse3, null, null, null }, |
| 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 | 100624 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 98922 | 100625 | .patterns = &.{ |
| 98923 | 100626 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98924 | 100627 | }, |
| 98925 | | .call_frame = .{ .alignment = .@"16" }, |
| 98926 | 100628 | .extra_temps = .{ |
| 98927 | 100629 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98928 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 98929 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 98930 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100630 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 100631 | .unused, |
| 100632 | .unused, |
| 98931 | 100633 | .unused, |
| 98932 | 100634 | .unused, |
| 98933 | 100635 | .unused, |
| ... | ... | @@ -98937,29 +100639,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98937 | 100639 | .unused, |
| 98938 | 100640 | }, |
| 98939 | 100641 | .dst_temps = .{ .mem, .unused }, |
| 98940 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98941 | 100642 | .each = .{ .once = &.{ |
| 98942 | 100643 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98943 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 98944 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 98945 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 98946 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 100644 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100645 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 98947 | 100646 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 98948 | 100647 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 98949 | 100648 | } }, |
| 98950 | 100649 | }, .{ |
| 98951 | | .required_features = .{ .avx, null, null, null }, |
| 98952 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100650 | .required_features = .{ .sse, null, null, null }, |
| 100651 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 98953 | 100652 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 98954 | 100653 | .patterns = &.{ |
| 98955 | 100654 | .{ .src = .{ .to_mem, .none, .none } }, |
| 98956 | 100655 | }, |
| 98957 | | .call_frame = .{ .alignment = .@"16" }, |
| 98958 | 100656 | .extra_temps = .{ |
| 98959 | 100657 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98960 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 98961 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 98962 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100658 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 100659 | .unused, |
| 100660 | .unused, |
| 98963 | 100661 | .unused, |
| 98964 | 100662 | .unused, |
| 98965 | 100663 | .unused, |
| ... | ... | @@ -98969,19 +100667,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98969 | 100667 | .unused, |
| 98970 | 100668 | }, |
| 98971 | 100669 | .dst_temps = .{ .mem, .unused }, |
| 98972 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 98973 | 100670 | .each = .{ .once = &.{ |
| 98974 | 100671 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 98975 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 98976 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 98977 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 98978 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 100672 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100673 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 98979 | 100674 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 98980 | 100675 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 98981 | 100676 | } }, |
| 98982 | 100677 | }, .{ |
| 98983 | | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 98984 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100678 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 100679 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 98985 | 100680 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 98986 | 100681 | .patterns = &.{ |
| 98987 | 100682 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -98989,8 +100684,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98989 | 100684 | .call_frame = .{ .alignment = .@"16" }, |
| 98990 | 100685 | .extra_temps = .{ |
| 98991 | 100686 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 98992 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 98993 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 100687 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100688 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 98994 | 100689 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 98995 | 100690 | .unused, |
| 98996 | 100691 | .unused, |
| ... | ... | @@ -99004,16 +100699,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99004 | 100699 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99005 | 100700 | .each = .{ .once = &.{ |
| 99006 | 100701 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99007 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99008 | | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 100702 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99009 | 100703 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99010 | 100704 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99011 | 100705 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99012 | 100706 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99013 | 100707 | } }, |
| 99014 | 100708 | }, .{ |
| 99015 | | .required_features = .{ .sse2, null, null, null }, |
| 99016 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100709 | .required_features = .{ .avx, null, null, null }, |
| 100710 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99017 | 100711 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 99018 | 100712 | .patterns = &.{ |
| 99019 | 100713 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99021,8 +100715,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99021 | 100715 | .call_frame = .{ .alignment = .@"16" }, |
| 99022 | 100716 | .extra_temps = .{ |
| 99023 | 100717 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99024 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99025 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 100718 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100719 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99026 | 100720 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99027 | 100721 | .unused, |
| 99028 | 100722 | .unused, |
| ... | ... | @@ -99036,8 +100730,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99036 | 100730 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99037 | 100731 | .each = .{ .once = &.{ |
| 99038 | 100732 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99039 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99040 | | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 100733 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99041 | 100734 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99042 | 100735 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99043 | 100736 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| ... | ... | @@ -99045,7 +100738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99045 | 100738 | } }, |
| 99046 | 100739 | }, .{ |
| 99047 | 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 | 100742 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 99050 | 100743 | .patterns = &.{ |
| 99051 | 100744 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99053,10 +100746,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99053 | 100746 | .call_frame = .{ .alignment = .@"16" }, |
| 99054 | 100747 | .extra_temps = .{ |
| 99055 | 100748 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100749 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100750 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99056 | 100751 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99057 | | .{ .type = .f32, .kind = .mem }, |
| 99058 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99059 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 100752 | .unused, |
| 99060 | 100753 | .unused, |
| 99061 | 100754 | .unused, |
| 99062 | 100755 | .unused, |
| ... | ... | @@ -99068,17 +100761,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99068 | 100761 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99069 | 100762 | .each = .{ .once = &.{ |
| 99070 | 100763 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99071 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99072 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99073 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99074 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99075 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 100764 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100765 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100766 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99076 | 100767 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99077 | 100768 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99078 | 100769 | } }, |
| 99079 | 100770 | }, .{ |
| 99080 | 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 | 100773 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 99083 | 100774 | .patterns = &.{ |
| 99084 | 100775 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99086,10 +100777,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99086 | 100777 | .call_frame = .{ .alignment = .@"16" }, |
| 99087 | 100778 | .extra_temps = .{ |
| 99088 | 100779 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100780 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100781 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99089 | 100782 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99090 | | .{ .type = .f32, .kind = .mem }, |
| 99091 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99092 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 100783 | .unused, |
| 99093 | 100784 | .unused, |
| 99094 | 100785 | .unused, |
| 99095 | 100786 | .unused, |
| ... | ... | @@ -99101,31 +100792,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99101 | 100792 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99102 | 100793 | .each = .{ .once = &.{ |
| 99103 | 100794 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99104 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99105 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99106 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99107 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99108 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 99109 | | .{ ._, ._c, .in, .tmp0p, .si(1), ._, ._ }, |
| 100795 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100796 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100797 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 100798 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 99110 | 100799 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 99111 | 100800 | } }, |
| 99112 | 100801 | }, .{ |
| 99113 | | .required_features = .{ .f16c, null, null, null }, |
| 99114 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 99115 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 100802 | .required_features = .{ .avx, null, null, null }, |
| 100803 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100804 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99116 | 100805 | .patterns = &.{ |
| 99117 | 100806 | .{ .src = .{ .mem, .none, .none } }, |
| 99118 | 100807 | .{ .src = .{ .to_sse, .none, .none } }, |
| 99119 | 100808 | }, |
| 99120 | 100809 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99121 | 100810 | .each = .{ .once = &.{ |
| 99122 | | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 99123 | | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 100811 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 99124 | 100812 | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, |
| 99125 | 100813 | } }, |
| 99126 | 100814 | }, .{ |
| 99127 | | .required_features = .{ .f16c, null, null, null }, |
| 99128 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 100815 | .required_features = .{ .sse2, null, null, null }, |
| 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 | 100830 | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99130 | 100831 | .patterns = &.{ |
| 99131 | 100832 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -99133,13 +100834,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99133 | 100834 | }, |
| 99134 | 100835 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99135 | 100836 | .each = .{ .once = &.{ |
| 99136 | | .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, |
| 99137 | | .{ ._, .v_, .cvttps2dq, .dst0x, .dst0x, ._, ._ }, |
| 100837 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 99138 | 100838 | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, |
| 99139 | 100839 | } }, |
| 99140 | 100840 | }, .{ |
| 99141 | | .required_features = .{ .f16c, null, null, null }, |
| 99142 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 100841 | .required_features = .{ .sse4_1, null, null, null }, |
| 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 | 100856 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99144 | 100857 | .patterns = &.{ |
| 99145 | 100858 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99159,24 +100872,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99159 | 100872 | }, |
| 99160 | 100873 | .dst_temps = .{ .mem, .unused }, |
| 99161 | 100874 | .each = .{ .once = &.{ |
| 99162 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99163 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99164 | | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 100875 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100876 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 99165 | 100877 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99166 | 100878 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99167 | 100879 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99168 | 100880 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99169 | 100881 | } }, |
| 99170 | 100882 | }, .{ |
| 99171 | | .required_features = .{ .f16c, null, null, null }, |
| 99172 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 99173 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 100883 | .required_features = .{ .sse2, null, null, null }, |
| 100884 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100885 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99174 | 100886 | .patterns = &.{ |
| 99175 | 100887 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99176 | 100888 | }, |
| 99177 | 100889 | .extra_temps = .{ |
| 99178 | 100890 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99179 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 100891 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 99180 | 100892 | .unused, |
| 99181 | 100893 | .unused, |
| 99182 | 100894 | .unused, |
| ... | ... | @@ -99189,27 +100901,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99189 | 100901 | }, |
| 99190 | 100902 | .dst_temps = .{ .mem, .unused }, |
| 99191 | 100903 | .each = .{ .once = &.{ |
| 99192 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99193 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99194 | | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 99195 | | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99196 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 100904 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100905 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100906 | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, |
| 100907 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99197 | 100908 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99198 | 100909 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99199 | 100910 | } }, |
| 99200 | 100911 | }, .{ |
| 99201 | 100912 | .required_features = .{ .avx, null, null, null }, |
| 99202 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99203 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100913 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100914 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99204 | 100915 | .patterns = &.{ |
| 99205 | 100916 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99206 | 100917 | }, |
| 99207 | | .call_frame = .{ .alignment = .@"16" }, |
| 99208 | 100918 | .extra_temps = .{ |
| 99209 | 100919 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99210 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99211 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 99212 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100920 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 100921 | .unused, |
| 100922 | .unused, |
| 99213 | 100923 | .unused, |
| 99214 | 100924 | .unused, |
| 99215 | 100925 | .unused, |
| ... | ... | @@ -99219,29 +100929,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99219 | 100929 | .unused, |
| 99220 | 100930 | }, |
| 99221 | 100931 | .dst_temps = .{ .mem, .unused }, |
| 99222 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99223 | 100932 | .each = .{ .once = &.{ |
| 99224 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99225 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99226 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 99227 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99228 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99229 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100933 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100934 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100935 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100936 | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 100937 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99230 | 100938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99231 | 100939 | } }, |
| 99232 | 100940 | }, .{ |
| 99233 | | .required_features = .{ .sse2, null, null, null }, |
| 99234 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99235 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100941 | .required_features = .{ .sse4_1, null, null, null }, |
| 100942 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100943 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 99236 | 100944 | .patterns = &.{ |
| 99237 | 100945 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99238 | 100946 | }, |
| 99239 | | .call_frame = .{ .alignment = .@"16" }, |
| 99240 | 100947 | .extra_temps = .{ |
| 99241 | 100948 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99242 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99243 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 99244 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100949 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 100950 | .unused, |
| 100951 | .unused, |
| 99245 | 100952 | .unused, |
| 99246 | 100953 | .unused, |
| 99247 | 100954 | .unused, |
| ... | ... | @@ -99251,19 +100958,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99251 | 100958 | .unused, |
| 99252 | 100959 | }, |
| 99253 | 100960 | .dst_temps = .{ .mem, .unused }, |
| 99254 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99255 | 100961 | .each = .{ .once = &.{ |
| 99256 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99257 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99258 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 99259 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99260 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99261 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100962 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100963 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100964 | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, |
| 100965 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 100966 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99262 | 100967 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99263 | 100968 | } }, |
| 99264 | 100969 | }, .{ |
| 99265 | | .required_features = .{ .sse, null, null, null }, |
| 99266 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100970 | .required_features = .{ .avx, null, null, null }, |
| 100971 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99267 | 100972 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 99268 | 100973 | .patterns = &.{ |
| 99269 | 100974 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99271,10 +100976,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99271 | 100976 | .call_frame = .{ .alignment = .@"16" }, |
| 99272 | 100977 | .extra_temps = .{ |
| 99273 | 100978 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100979 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100980 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99274 | 100981 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99275 | | .{ .type = .f32, .kind = .mem }, |
| 99276 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99277 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 100982 | .unused, |
| 99278 | 100983 | .unused, |
| 99279 | 100984 | .unused, |
| 99280 | 100985 | .unused, |
| ... | ... | @@ -99285,27 +100990,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99285 | 100990 | .dst_temps = .{ .mem, .unused }, |
| 99286 | 100991 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99287 | 100992 | .each = .{ .once = &.{ |
| 99288 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99289 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99290 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99291 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99292 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99293 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 100993 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100994 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100995 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100996 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99294 | 100997 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99295 | 100998 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99296 | 100999 | } }, |
| 99297 | 101000 | }, .{ |
| 99298 | | .required_features = .{ .f16c, null, null, null }, |
| 99299 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 99300 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 101001 | .required_features = .{ .sse, null, null, null }, |
| 101002 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 101003 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 99301 | 101004 | .patterns = &.{ |
| 99302 | 101005 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99303 | 101006 | }, |
| 101007 | .call_frame = .{ .alignment = .@"16" }, |
| 99304 | 101008 | .extra_temps = .{ |
| 99305 | 101009 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99306 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 99307 | | .unused, |
| 99308 | | .unused, |
| 101010 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101011 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 101012 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99309 | 101013 | .unused, |
| 99310 | 101014 | .unused, |
| 99311 | 101015 | .unused, |
| ... | ... | @@ -99315,58 +101019,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99315 | 101019 | .unused, |
| 99316 | 101020 | }, |
| 99317 | 101021 | .dst_temps = .{ .mem, .unused }, |
| 101022 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99318 | 101023 | .each = .{ .once = &.{ |
| 99319 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99320 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99321 | | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 99322 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99323 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101024 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101025 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101026 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101027 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 101028 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99324 | 101029 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99325 | 101030 | } }, |
| 99326 | 101031 | }, .{ |
| 99327 | | .required_features = .{ .f16c, null, null, null }, |
| 99328 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99329 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101032 | .required_features = .{ .avx, null, null, null }, |
| 101033 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 101034 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 99330 | 101035 | .patterns = &.{ |
| 99331 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 101036 | .{ .src = .{ .mem, .none, .none } }, |
| 101037 | .{ .src = .{ .to_sse, .none, .none } }, |
| 99332 | 101038 | }, |
| 99333 | | .extra_temps = .{ |
| 99334 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99335 | | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 99336 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 99337 | | .unused, |
| 99338 | | .unused, |
| 99339 | | .unused, |
| 99340 | | .unused, |
| 99341 | | .unused, |
| 99342 | | .unused, |
| 99343 | | .unused, |
| 99344 | | .unused, |
| 101039 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 101040 | .each = .{ .once = &.{ |
| 101041 | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 101042 | } }, |
| 101043 | }, .{ |
| 101044 | .required_features = .{ .sse2, null, null, null }, |
| 101045 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 101046 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 101047 | .patterns = &.{ |
| 101048 | .{ .src = .{ .mem, .none, .none } }, |
| 101049 | .{ .src = .{ .to_sse, .none, .none } }, |
| 99345 | 101050 | }, |
| 99346 | | .dst_temps = .{ .mem, .unused }, |
| 101051 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 99347 | 101052 | .each = .{ .once = &.{ |
| 99348 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 101053 | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 99356 | 101054 | } }, |
| 99357 | 101055 | }, .{ |
| 99358 | 101056 | .required_features = .{ .avx, null, null, null }, |
| 99359 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99360 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101057 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 101058 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 99361 | 101059 | .patterns = &.{ |
| 99362 | 101060 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99363 | 101061 | }, |
| 99364 | | .call_frame = .{ .alignment = .@"16" }, |
| 99365 | 101062 | .extra_temps = .{ |
| 99366 | 101063 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99367 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99368 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 99369 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101064 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 101065 | .unused, |
| 101066 | .unused, |
| 99370 | 101067 | .unused, |
| 99371 | 101068 | .unused, |
| 99372 | 101069 | .unused, |
| ... | ... | @@ -99376,29 +101073,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99376 | 101073 | .unused, |
| 99377 | 101074 | }, |
| 99378 | 101075 | .dst_temps = .{ .mem, .unused }, |
| 99379 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99380 | 101076 | .each = .{ .once = &.{ |
| 99381 | 101077 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99382 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99383 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 99384 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99385 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99386 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101078 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101079 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101080 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 99387 | 101081 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99388 | 101082 | } }, |
| 99389 | 101083 | }, .{ |
| 99390 | | .required_features = .{ .avx, null, null, null }, |
| 99391 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 99392 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101084 | .required_features = .{ .sse2, null, null, null }, |
| 101085 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 101086 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 99393 | 101087 | .patterns = &.{ |
| 99394 | 101088 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99395 | 101089 | }, |
| 99396 | | .call_frame = .{ .alignment = .@"16" }, |
| 99397 | 101090 | .extra_temps = .{ |
| 99398 | 101091 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99399 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99400 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| 99401 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 101092 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 101093 | .unused, |
| 101094 | .unused, |
| 99402 | 101095 | .unused, |
| 99403 | 101096 | .unused, |
| 99404 | 101097 | .unused, |
| ... | ... | @@ -99408,19 +101101,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99408 | 101101 | .unused, |
| 99409 | 101102 | }, |
| 99410 | 101103 | .dst_temps = .{ .mem, .unused }, |
| 99411 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99412 | 101104 | .each = .{ .once = &.{ |
| 99413 | 101105 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99414 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99415 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 99416 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99417 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99418 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101106 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101107 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101108 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 99419 | 101109 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99420 | 101110 | } }, |
| 99421 | 101111 | }, .{ |
| 99422 | | .required_features = .{ .sse2, null, null, null }, |
| 99423 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101112 | .required_features = .{ .avx, null, null, null }, |
| 101113 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99424 | 101114 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99425 | 101115 | .patterns = &.{ |
| 99426 | 101116 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99428,8 +101118,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99428 | 101118 | .call_frame = .{ .alignment = .@"16" }, |
| 99429 | 101119 | .extra_temps = .{ |
| 99430 | 101120 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99431 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99432 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 101121 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101122 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99433 | 101123 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99434 | 101124 | .unused, |
| 99435 | 101125 | .unused, |
| ... | ... | @@ -99443,16 +101133,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99443 | 101133 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99444 | 101134 | .each = .{ .once = &.{ |
| 99445 | 101135 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99446 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99447 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101136 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99448 | 101137 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99449 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99450 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101138 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101139 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99451 | 101140 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99452 | 101141 | } }, |
| 99453 | 101142 | }, .{ |
| 99454 | | .required_features = .{ .sse2, null, null, null }, |
| 99455 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101143 | .required_features = .{ .avx, null, null, null }, |
| 101144 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99456 | 101145 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99457 | 101146 | .patterns = &.{ |
| 99458 | 101147 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99460,8 +101149,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99460 | 101149 | .call_frame = .{ .alignment = .@"16" }, |
| 99461 | 101150 | .extra_temps = .{ |
| 99462 | 101151 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99463 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99464 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| 101152 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101153 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, |
| 99465 | 101154 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 99466 | 101155 | .unused, |
| 99467 | 101156 | .unused, |
| ... | ... | @@ -99475,16 +101164,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99475 | 101164 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99476 | 101165 | .each = .{ .once = &.{ |
| 99477 | 101166 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99478 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99479 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101167 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99480 | 101168 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99481 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 99482 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101169 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101170 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99483 | 101171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99484 | 101172 | } }, |
| 99485 | 101173 | }, .{ |
| 99486 | 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 | 101176 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99489 | 101177 | .patterns = &.{ |
| 99490 | 101178 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99492,10 +101180,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99492 | 101180 | .call_frame = .{ .alignment = .@"16" }, |
| 99493 | 101181 | .extra_temps = .{ |
| 99494 | 101182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101183 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101184 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 99495 | 101185 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 99496 | | .{ .type = .f32, .kind = .mem }, |
| 99497 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99498 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfsi" } } }, |
| 101186 | .unused, |
| 99499 | 101187 | .unused, |
| 99500 | 101188 | .unused, |
| 99501 | 101189 | .unused, |
| ... | ... | @@ -99507,17 +101195,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99507 | 101195 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99508 | 101196 | .each = .{ .once = &.{ |
| 99509 | 101197 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99510 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99511 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99512 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99513 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99514 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 99515 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101198 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101199 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101200 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101201 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99516 | 101202 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99517 | 101203 | } }, |
| 99518 | 101204 | }, .{ |
| 99519 | 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 | 101207 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99522 | 101208 | .patterns = &.{ |
| 99523 | 101209 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99525,10 +101211,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99525 | 101211 | .call_frame = .{ .alignment = .@"16" }, |
| 99526 | 101212 | .extra_temps = .{ |
| 99527 | 101213 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101214 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101215 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, |
| 99528 | 101216 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 99529 | | .{ .type = .f32, .kind = .mem }, |
| 99530 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99531 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfsi" } } }, |
| 101217 | .unused, |
| 99532 | 101218 | .unused, |
| 99533 | 101219 | .unused, |
| 99534 | 101220 | .unused, |
| ... | ... | @@ -99540,24 +101226,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99540 | 101226 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99541 | 101227 | .each = .{ .once = &.{ |
| 99542 | 101228 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99543 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99544 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99545 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99546 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99547 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 99548 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101229 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101230 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101231 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101232 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99549 | 101233 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99550 | 101234 | } }, |
| 99551 | 101235 | }, .{ |
| 99552 | | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 99553 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101236 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 101237 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99554 | 101238 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99555 | 101239 | .patterns = &.{ |
| 99556 | 101240 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99557 | 101241 | }, |
| 99558 | 101242 | .extra_temps = .{ |
| 99559 | 101243 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99560 | | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 99561 | 101244 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 99562 | 101245 | .unused, |
| 99563 | 101246 | .unused, |
| ... | ... | @@ -99567,63 +101250,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99567 | 101250 | .unused, |
| 99568 | 101251 | .unused, |
| 99569 | 101252 | .unused, |
| 101253 | .unused, |
| 99570 | 101254 | }, |
| 99571 | 101255 | .dst_temps = .{ .mem, .unused }, |
| 99572 | 101256 | .each = .{ .once = &.{ |
| 99573 | 101257 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99574 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99575 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 99576 | | .{ ._, .v_ps, .cvtph2, .tmp1x, .tmp1q, ._, ._ }, |
| 99577 | | .{ ._, .v_, .cvttss2si, .tmp2q, .tmp1x, ._, ._ }, |
| 99578 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 99579 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101258 | .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101259 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101260 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99580 | 101261 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99581 | 101262 | } }, |
| 99582 | 101263 | }, .{ |
| 99583 | | .required_features = .{ .avx, null, null, null }, |
| 99584 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101264 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101265 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99585 | 101266 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99586 | 101267 | .patterns = &.{ |
| 99587 | 101268 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99588 | 101269 | }, |
| 99589 | | .call_frame = .{ .alignment = .@"16" }, |
| 99590 | 101270 | .extra_temps = .{ |
| 99591 | 101271 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99592 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99593 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 99594 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 99595 | | .unused, |
| 99596 | | .unused, |
| 99597 | | .unused, |
| 99598 | | .unused, |
| 99599 | | .unused, |
| 101272 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 99600 | 101273 | .unused, |
| 99601 | 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 | 101275 | .unused, |
| 99628 | 101276 | .unused, |
| 99629 | 101277 | .unused, |
| ... | ... | @@ -99633,19 +101281,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99633 | 101281 | .unused, |
| 99634 | 101282 | }, |
| 99635 | 101283 | .dst_temps = .{ .mem, .unused }, |
| 99636 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99637 | 101284 | .each = .{ .once = &.{ |
| 99638 | 101285 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99639 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99640 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 99641 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99642 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99643 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101286 | .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101287 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101288 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99644 | 101289 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99645 | 101290 | } }, |
| 99646 | 101291 | }, .{ |
| 99647 | | .required_features = .{ .sse2, null, null, null }, |
| 99648 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101292 | .required_features = .{ .avx, null, null, null }, |
| 101293 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99649 | 101294 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99650 | 101295 | .patterns = &.{ |
| 99651 | 101296 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99653,8 +101298,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99653 | 101298 | .call_frame = .{ .alignment = .@"16" }, |
| 99654 | 101299 | .extra_temps = .{ |
| 99655 | 101300 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99656 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99657 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 101301 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101302 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, |
| 99658 | 101303 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 99659 | 101304 | .unused, |
| 99660 | 101305 | .unused, |
| ... | ... | @@ -99668,16 +101313,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99668 | 101313 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99669 | 101314 | .each = .{ .once = &.{ |
| 99670 | 101315 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99671 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99672 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101316 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99673 | 101317 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99674 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99675 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101318 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101319 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99676 | 101320 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99677 | 101321 | } }, |
| 99678 | 101322 | }, .{ |
| 99679 | | .required_features = .{ .sse2, null, null, null }, |
| 99680 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101323 | .required_features = .{ .avx, null, null, null }, |
| 101324 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99681 | 101325 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99682 | 101326 | .patterns = &.{ |
| 99683 | 101327 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99685,8 +101329,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99685 | 101329 | .call_frame = .{ .alignment = .@"16" }, |
| 99686 | 101330 | .extra_temps = .{ |
| 99687 | 101331 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99688 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99689 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfdi" } } }, |
| 101332 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101333 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, |
| 99690 | 101334 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99691 | 101335 | .unused, |
| 99692 | 101336 | .unused, |
| ... | ... | @@ -99700,16 +101344,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99700 | 101344 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99701 | 101345 | .each = .{ .once = &.{ |
| 99702 | 101346 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99703 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99704 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101347 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99705 | 101348 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99706 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99707 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101349 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101350 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99708 | 101351 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99709 | 101352 | } }, |
| 99710 | 101353 | }, .{ |
| 99711 | 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 | 101356 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99714 | 101357 | .patterns = &.{ |
| 99715 | 101358 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99717,10 +101360,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99717 | 101360 | .call_frame = .{ .alignment = .@"16" }, |
| 99718 | 101361 | .extra_temps = .{ |
| 99719 | 101362 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101363 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101364 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, |
| 99720 | 101365 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 99721 | | .{ .type = .f32, .kind = .mem }, |
| 99722 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99723 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfdi" } } }, |
| 101366 | .unused, |
| 99724 | 101367 | .unused, |
| 99725 | 101368 | .unused, |
| 99726 | 101369 | .unused, |
| ... | ... | @@ -99732,17 +101375,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99732 | 101375 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99733 | 101376 | .each = .{ .once = &.{ |
| 99734 | 101377 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99735 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99736 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99737 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99738 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99739 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 99740 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101378 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101379 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101380 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101381 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99741 | 101382 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99742 | 101383 | } }, |
| 99743 | 101384 | }, .{ |
| 99744 | 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 | 101387 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99747 | 101388 | .patterns = &.{ |
| 99748 | 101389 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99750,47 +101391,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99750 | 101391 | .call_frame = .{ .alignment = .@"16" }, |
| 99751 | 101392 | .extra_temps = .{ |
| 99752 | 101393 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101394 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101395 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, |
| 99753 | 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 | 101397 | .unused, |
| 99759 | 101398 | .unused, |
| 99760 | 101399 | .unused, |
| 99761 | 101400 | .unused, |
| 99762 | 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 | 101402 | .unused, |
| 99795 | 101403 | .unused, |
| 99796 | 101404 | }, |
| ... | ... | @@ -99798,50 +101406,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99798 | 101406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99799 | 101407 | .each = .{ .once = &.{ |
| 99800 | 101408 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99801 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99802 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 101409 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99803 | 101410 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99804 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99805 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 99806 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101411 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101412 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99807 | 101413 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99808 | 101414 | } }, |
| 99809 | 101415 | }, .{ |
| 99810 | 101416 | .required_features = .{ .avx, null, null, null }, |
| 99811 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .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 }, |
| 101417 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99845 | 101418 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99846 | 101419 | .patterns = &.{ |
| 99847 | 101420 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99849,8 +101422,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99849 | 101422 | .call_frame = .{ .alignment = .@"16" }, |
| 99850 | 101423 | .extra_temps = .{ |
| 99851 | 101424 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99852 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99853 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfti" } } }, |
| 101425 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101426 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 99854 | 101427 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99855 | 101428 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 99856 | 101429 | .unused, |
| ... | ... | @@ -99864,17 +101437,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99864 | 101437 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99865 | 101438 | .each = .{ .once = &.{ |
| 99866 | 101439 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99867 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99868 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101440 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99869 | 101441 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99870 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99871 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 99872 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101442 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101443 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101444 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99873 | 101445 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99874 | 101446 | } }, |
| 99875 | 101447 | }, .{ |
| 99876 | | .required_features = .{ .sse2, null, null, null }, |
| 99877 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101448 | .required_features = .{ .avx, null, null, null }, |
| 101449 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 99878 | 101450 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99879 | 101451 | .patterns = &.{ |
| 99880 | 101452 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99882,8 +101454,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99882 | 101454 | .call_frame = .{ .alignment = .@"16" }, |
| 99883 | 101455 | .extra_temps = .{ |
| 99884 | 101456 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99885 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99886 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfti" } } }, |
| 101457 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101458 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 99887 | 101459 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 99888 | 101460 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 99889 | 101461 | .unused, |
| ... | ... | @@ -99897,17 +101469,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99897 | 101469 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99898 | 101470 | .each = .{ .once = &.{ |
| 99899 | 101471 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99900 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99901 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101472 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99902 | 101473 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99903 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 99904 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 99905 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101474 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101475 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101476 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99906 | 101477 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99907 | 101478 | } }, |
| 99908 | 101479 | }, .{ |
| 99909 | 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 | 101482 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99912 | 101483 | .patterns = &.{ |
| 99913 | 101484 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99915,33 +101486,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99915 | 101486 | .call_frame = .{ .alignment = .@"16" }, |
| 99916 | 101487 | .extra_temps = .{ |
| 99917 | 101488 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101489 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101490 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 99918 | 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 | 101492 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 99923 | 101493 | .unused, |
| 99924 | 101494 | .unused, |
| 99925 | 101495 | .unused, |
| 99926 | 101496 | .unused, |
| 99927 | 101497 | .unused, |
| 101498 | .unused, |
| 99928 | 101499 | }, |
| 99929 | 101500 | .dst_temps = .{ .mem, .unused }, |
| 99930 | 101501 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99931 | 101502 | .each = .{ .once = &.{ |
| 99932 | 101503 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99933 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99934 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99935 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99936 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99937 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 99938 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 99939 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101504 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101505 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101506 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101507 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101508 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99940 | 101509 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99941 | 101510 | } }, |
| 99942 | 101511 | }, .{ |
| 99943 | 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 | 101514 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 99946 | 101515 | .patterns = &.{ |
| 99947 | 101516 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99949,33 +101518,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99949 | 101518 | .call_frame = .{ .alignment = .@"16" }, |
| 99950 | 101519 | .extra_temps = .{ |
| 99951 | 101520 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101521 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101522 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 99952 | 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 | 101524 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 99957 | 101525 | .unused, |
| 99958 | 101526 | .unused, |
| 99959 | 101527 | .unused, |
| 99960 | 101528 | .unused, |
| 99961 | 101529 | .unused, |
| 101530 | .unused, |
| 99962 | 101531 | }, |
| 99963 | 101532 | .dst_temps = .{ .mem, .unused }, |
| 99964 | 101533 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99965 | 101534 | .each = .{ .once = &.{ |
| 99966 | 101535 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99967 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 99968 | | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99969 | | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99970 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99971 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 99972 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 99973 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101536 | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101537 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101538 | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101539 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101540 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99974 | 101541 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 99975 | 101542 | } }, |
| 99976 | 101543 | }, .{ |
| 99977 | 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 | 101546 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 99980 | 101547 | .patterns = &.{ |
| 99981 | 101548 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -99986,8 +101553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99986 | 101553 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 99987 | 101554 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 99988 | 101555 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 99989 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 99990 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, |
| 101556 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101557 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, |
| 99991 | 101558 | .unused, |
| 99992 | 101559 | .unused, |
| 99993 | 101560 | .unused, |
| ... | ... | @@ -99999,18 +101566,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99999 | 101566 | .each = .{ .once = &.{ |
| 100000 | 101567 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100001 | 101568 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100002 | | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, |
| 100003 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101569 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100004 | 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 | 101572 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100007 | 101573 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100008 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101574 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100009 | 101575 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100010 | 101576 | } }, |
| 100011 | 101577 | }, .{ |
| 100012 | 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 | 101580 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100015 | 101581 | .patterns = &.{ |
| 100016 | 101582 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -100021,8 +101587,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100021 | 101587 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100022 | 101588 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100023 | 101589 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100024 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 100025 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, |
| 101590 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101591 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, |
| 100026 | 101592 | .unused, |
| 100027 | 101593 | .unused, |
| 100028 | 101594 | .unused, |
| ... | ... | @@ -100034,18 +101600,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100034 | 101600 | .each = .{ .once = &.{ |
| 100035 | 101601 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100036 | 101602 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100037 | | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, |
| 100038 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101603 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100039 | 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 | 101606 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100042 | 101607 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100043 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101608 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100044 | 101609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100045 | 101610 | } }, |
| 100046 | 101611 | }, .{ |
| 100047 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 100048 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101612 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101613 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100049 | 101614 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100050 | 101615 | .patterns = &.{ |
| 100051 | 101616 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -100056,8 +101621,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100056 | 101621 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100057 | 101622 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100058 | 101623 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100059 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 100060 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, |
| 101624 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101625 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, |
| 100061 | 101626 | .unused, |
| 100062 | 101627 | .unused, |
| 100063 | 101628 | .unused, |
| ... | ... | @@ -100069,18 +101634,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100069 | 101634 | .each = .{ .once = &.{ |
| 100070 | 101635 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100071 | 101636 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100072 | | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 100073 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101637 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100074 | 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 | 101640 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100077 | 101641 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100078 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101642 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100079 | 101643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100080 | 101644 | } }, |
| 100081 | 101645 | }, .{ |
| 100082 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 100083 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 101646 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101647 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100084 | 101648 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100085 | 101649 | .patterns = &.{ |
| 100086 | 101650 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -100091,8 +101655,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100091 | 101655 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100092 | 101656 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100093 | 101657 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100094 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 100095 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, |
| 101658 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101659 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, |
| 100096 | 101660 | .unused, |
| 100097 | 101661 | .unused, |
| 100098 | 101662 | .unused, |
| ... | ... | @@ -100104,114 +101668,143 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100104 | 101668 | .each = .{ .once = &.{ |
| 100105 | 101669 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100106 | 101670 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100107 | | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 100108 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101671 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100109 | 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 | 101674 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100112 | 101675 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100113 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101676 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100114 | 101677 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100115 | 101678 | } }, |
| 100116 | 101679 | }, .{ |
| 100117 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100118 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100119 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101680 | .required_features = .{ .avx, null, null, null }, |
| 101681 | .src_constraints = .{ .{ .float = .qword }, .any, .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 | 101707 | .patterns = &.{ |
| 100121 | 101708 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100122 | 101709 | }, |
| 100123 | | .call_frame = .{ .alignment = .@"16" }, |
| 100124 | 101710 | .extra_temps = .{ |
| 100125 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100126 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100127 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100128 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100129 | | .{ .type = .f32, .kind = .mem }, |
| 100130 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 100131 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixhfei" } } }, |
| 101711 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101712 | .{ .type = .i16, .kind = .mem }, |
| 101713 | .unused, |
| 101714 | .unused, |
| 101715 | .unused, |
| 101716 | .unused, |
| 101717 | .unused, |
| 100132 | 101718 | .unused, |
| 100133 | 101719 | .unused, |
| 100134 | 101720 | .unused, |
| 100135 | 101721 | .unused, |
| 100136 | 101722 | }, |
| 100137 | | .dst_temps = .{ .mem, .unused }, |
| 100138 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101723 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100139 | 101724 | .each = .{ .once = &.{ |
| 100140 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100141 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100142 | | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 101725 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 101726 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 101727 | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, |
| 100151 | 101728 | } }, |
| 100152 | 101729 | }, .{ |
| 100153 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100154 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100155 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101730 | .required_features = .{ .x87, null, null, null }, |
| 101731 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101732 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 100156 | 101733 | .patterns = &.{ |
| 100157 | 101734 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100158 | 101735 | }, |
| 100159 | | .call_frame = .{ .alignment = .@"16" }, |
| 100160 | 101736 | .extra_temps = .{ |
| 100161 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100162 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100163 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100164 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100165 | | .{ .type = .f32, .kind = .mem }, |
| 100166 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 100167 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunshfei" } } }, |
| 101737 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101738 | .{ .type = .i16, .kind = .mem }, |
| 101739 | .unused, |
| 101740 | .unused, |
| 101741 | .unused, |
| 101742 | .unused, |
| 101743 | .unused, |
| 100168 | 101744 | .unused, |
| 100169 | 101745 | .unused, |
| 100170 | 101746 | .unused, |
| 100171 | 101747 | .unused, |
| 100172 | 101748 | }, |
| 100173 | | .dst_temps = .{ .mem, .unused }, |
| 100174 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101749 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100175 | 101750 | .each = .{ .once = &.{ |
| 100176 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100177 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100178 | | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 101751 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 101752 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 101753 | .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ }, |
| 100187 | 101754 | } }, |
| 100188 | 101755 | }, .{ |
| 100189 | | .required_features = .{ .avx, null, null, null }, |
| 100190 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100191 | | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 101756 | .required_features = .{ .x87, null, null, null }, |
| 101757 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101758 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, |
| 100192 | 101759 | .patterns = &.{ |
| 100193 | | .{ .src = .{ .mem, .none, .none } }, |
| 100194 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 101760 | .{ .src = .{ .to_mem, .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 | 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 }, |
| 100202 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101781 | .required_features = .{ .x87, null, null, null }, |
| 101782 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100203 | 101783 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 100204 | 101784 | .patterns = &.{ |
| 100205 | | .{ .src = .{ .mem, .none, .none } }, |
| 100206 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 101785 | .{ .src = .{ .to_mem, .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 | 101801 | .each = .{ .once = &.{ |
| 100210 | | .{ ._, ._, .cvttss2si, .dst0d, .src0d, ._, ._ }, |
| 101802 | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 101803 | .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, |
| 100211 | 101804 | } }, |
| 100212 | 101805 | }, .{ |
| 100213 | 101806 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100214 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101807 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100215 | 101808 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 100216 | 101809 | .patterns = &.{ |
| 100217 | 101810 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -100219,11 +101812,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100219 | 101812 | }, |
| 100220 | 101813 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100221 | 101814 | .each = .{ .once = &.{ |
| 100222 | | .{ ._, .v_, .cvttss2si, .dst0q, .src0d, ._, ._ }, |
| 101815 | .{ ._, .v_, .cvttsd2si, .dst0q, .src0q, ._, ._ }, |
| 100223 | 101816 | } }, |
| 100224 | 101817 | }, .{ |
| 100225 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100226 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101818 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 101819 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100227 | 101820 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 100228 | 101821 | .patterns = &.{ |
| 100229 | 101822 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -100231,20 +101824,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100231 | 101824 | }, |
| 100232 | 101825 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 100233 | 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 | 101855 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100238 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101856 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100239 | 101857 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 100240 | 101858 | .patterns = &.{ |
| 100241 | 101859 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100242 | 101860 | }, |
| 100243 | 101861 | .extra_temps = .{ |
| 100244 | | .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 101862 | .{ .type = .f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 100245 | 101863 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100246 | 101864 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100247 | | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 101865 | .{ .type = .f64, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 100248 | 101866 | .unused, |
| 100249 | 101867 | .unused, |
| 100250 | 101868 | .unused, |
| ... | ... | @@ -100257,17 +101875,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100257 | 101875 | .clobbers = .{ .eflags = true }, |
| 100258 | 101876 | .each = .{ .once = &.{ |
| 100259 | 101877 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 100260 | | .{ ._, .v_, .cvttss2si, .tmp2q, .src0d, ._, ._ }, |
| 100261 | | .{ ._, .v_ss, .sub, .tmp0x, .src0x, .lea(.tmp1d), ._ }, |
| 100262 | | .{ ._, .v_, .cvttss2si, .dst0q, .tmp0d, ._, ._ }, |
| 101878 | .{ ._, .v_, .cvttsd2si, .tmp2q, .src0d, ._, ._ }, |
| 101879 | .{ ._, .v_sd, .sub, .tmp0x, .src0x, .lea(.tmp1q), ._ }, |
| 101880 | .{ ._, .v_, .cvttsd2si, .dst0q, .tmp0d, ._, ._ }, |
| 100263 | 101881 | .{ ._, ._, .mov, .tmp1q, .tmp2q, ._, ._ }, |
| 100264 | 101882 | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 100265 | 101883 | .{ ._, ._, .@"and", .dst0q, .tmp2q, ._, ._ }, |
| 100266 | 101884 | .{ ._, ._, .@"or", .dst0q, .tmp1q, ._, ._ }, |
| 100267 | 101885 | } }, |
| 100268 | 101886 | }, .{ |
| 100269 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100270 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101887 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 101888 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100271 | 101889 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 100272 | 101890 | .patterns = &.{ |
| 100273 | 101891 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| ... | ... | @@ -100275,7 +101893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100275 | 101893 | .extra_temps = .{ |
| 100276 | 101894 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100277 | 101895 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100278 | | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 101896 | .{ .type = .f64, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 100279 | 101897 | .unused, |
| 100280 | 101898 | .unused, |
| 100281 | 101899 | .unused, |
| ... | ... | @@ -100289,24 +101907,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100289 | 101907 | .clobbers = .{ .eflags = true }, |
| 100290 | 101908 | .each = .{ .once = &.{ |
| 100291 | 101909 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 100292 | | .{ ._, ._, .cvttss2si, .tmp1q, .src0d, ._, ._ }, |
| 100293 | | .{ ._, ._ss, .sub, .src0x, .lea(.tmp0d), ._, ._ }, |
| 100294 | | .{ ._, ._, .cvttss2si, .dst0q, .src0d, ._, ._ }, |
| 101910 | .{ ._, ._, .cvttsd2si, .tmp1q, .src0d, ._, ._ }, |
| 101911 | .{ ._, ._sd, .sub, .src0x, .lea(.tmp0q), ._, ._ }, |
| 101912 | .{ ._, ._, .cvttsd2si, .dst0q, .src0d, ._, ._ }, |
| 100295 | 101913 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| 100296 | 101914 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 100297 | 101915 | .{ ._, ._, .@"and", .dst0q, .tmp1q, ._, ._ }, |
| 100298 | 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 | 101954 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100302 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101955 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100303 | 101956 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 100304 | 101957 | .patterns = &.{ |
| 100305 | 101958 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100306 | 101959 | }, |
| 100307 | 101960 | .call_frame = .{ .alignment = .@"16" }, |
| 100308 | 101961 | .extra_temps = .{ |
| 100309 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 101962 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 100310 | 101963 | .unused, |
| 100311 | 101964 | .unused, |
| 100312 | 101965 | .unused, |
| ... | ... | @@ -100325,14 +101978,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100325 | 101978 | } }, |
| 100326 | 101979 | }, .{ |
| 100327 | 101980 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100328 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101981 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 100329 | 101982 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 100330 | 101983 | .patterns = &.{ |
| 100331 | 101984 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100332 | 101985 | }, |
| 100333 | 101986 | .call_frame = .{ .alignment = .@"16" }, |
| 100334 | 101987 | .extra_temps = .{ |
| 100335 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 101988 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 100336 | 101989 | .unused, |
| 100337 | 101990 | .unused, |
| 100338 | 101991 | .unused, |
| ... | ... | @@ -100350,62 +102003,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100350 | 102003 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 100351 | 102004 | } }, |
| 100352 | 102005 | }, .{ |
| 100353 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 100354 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100355 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102006 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 102007 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 102008 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100356 | 102009 | .patterns = &.{ |
| 100357 | 102010 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100358 | 102011 | }, |
| 100359 | 102012 | .call_frame = .{ .alignment = .@"16" }, |
| 100360 | 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 | 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 | 102017 | .unused, |
| 100369 | 102018 | .unused, |
| 100370 | 102019 | .unused, |
| 100371 | 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 | 102021 | .unused, |
| 100410 | 102022 | .unused, |
| 100411 | 102023 | .unused, |
| ... | ... | @@ -100414,39 +102026,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100414 | 102026 | .dst_temps = .{ .mem, .unused }, |
| 100415 | 102027 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100416 | 102028 | .each = .{ .once = &.{ |
| 100417 | | .{ ._, ._d, .mov, .tmp0d, .src0x, ._, ._ }, |
| 100418 | | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 100419 | | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, |
| 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, ._, ._, ._, ._ }, |
| 102029 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 102030 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102031 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100433 | 102032 | } }, |
| 100434 | 102033 | }, .{ |
| 100435 | 102034 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100436 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100437 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102035 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 102036 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100438 | 102037 | .patterns = &.{ |
| 100439 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 102038 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 100440 | 102039 | }, |
| 100441 | 102040 | .call_frame = .{ .alignment = .@"16" }, |
| 100442 | 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 | 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 | 102049 | .unused, |
| 100451 | 102050 | .unused, |
| 100452 | 102051 | .unused, |
| ... | ... | @@ -100455,37 +102054,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100455 | 102054 | .dst_temps = .{ .mem, .unused }, |
| 100456 | 102055 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100457 | 102056 | .each = .{ .once = &.{ |
| 100458 | | .{ ._, ._ss, .mov, .tmp0x, .src0d, ._, ._ }, |
| 100459 | | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 100460 | | .{ ._, ._ps, .@"and", .tmp0x, .lea(.tmp1x), ._, ._ }, |
| 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, ._, ._, ._, ._ }, |
| 102057 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 102058 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102059 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100474 | 102060 | } }, |
| 100475 | 102061 | }, .{ |
| 100476 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 100477 | | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100478 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102062 | .required_features = .{ .avx, null, null, null }, |
| 102063 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102064 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 100479 | 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 | 102069 | .extra_temps = .{ |
| 100484 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 100485 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 100486 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 100487 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100488 | | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 102070 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102071 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 102072 | .unused, |
| 102073 | .unused, |
| 102074 | .unused, |
| 100489 | 102075 | .unused, |
| 100490 | 102076 | .unused, |
| 100491 | 102077 | .unused, |
| ... | ... | @@ -100493,21 +102079,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100493 | 102079 | .unused, |
| 100494 | 102080 | .unused, |
| 100495 | 102081 | }, |
| 100496 | | .dst_temps = .{ .mem, .unused }, |
| 100497 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102082 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100498 | 102083 | .each = .{ .once = &.{ |
| 100499 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 100500 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 100501 | | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp2q, ._, ._ }, |
| 100502 | | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 100503 | | .{ ._, ._, .lea, .tmp3p, .memd(.dst0, 16), ._, ._ }, |
| 100504 | | .{ ._, ._, .mov, .tmp4d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 100505 | | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 102084 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102085 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 102086 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 100506 | 102087 | } }, |
| 100507 | 102088 | }, .{ |
| 100508 | | .required_features = .{ .avx, null, null, null }, |
| 100509 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100510 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 102089 | .required_features = .{ .ssse3, null, null, null }, |
| 102090 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102091 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 100511 | 102092 | .patterns = &.{ |
| 100512 | 102093 | .{ .src = .{ .mem, .none, .none } }, |
| 100513 | 102094 | .{ .src = .{ .to_sse, .none, .none } }, |
| ... | ... | @@ -100528,12 +102109,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100528 | 102109 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100529 | 102110 | .each = .{ .once = &.{ |
| 100530 | 102111 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100531 | | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 100532 | | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 102112 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 102113 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 100533 | 102114 | } }, |
| 100534 | 102115 | }, .{ |
| 100535 | | .required_features = .{ .ssse3, null, null, null }, |
| 100536 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 102116 | .required_features = .{ .avx, null, null, null }, |
| 102117 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 100537 | 102118 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 100538 | 102119 | .patterns = &.{ |
| 100539 | 102120 | .{ .src = .{ .mem, .none, .none } }, |
| ... | ... | @@ -100555,12 +102136,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100555 | 102136 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100556 | 102137 | .each = .{ .once = &.{ |
| 100557 | 102138 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100558 | | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 100559 | | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 102139 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| 102140 | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 100560 | 102141 | } }, |
| 100561 | 102142 | }, .{ |
| 100562 | 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 | 102145 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 100565 | 102146 | .patterns = &.{ |
| 100566 | 102147 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -100579,11 +102160,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100579 | 102160 | .unused, |
| 100580 | 102161 | }, |
| 100581 | 102162 | .dst_temps = .{ .mem, .unused }, |
| 102163 | .clobbers = .{ .eflags = true }, |
| 100582 | 102164 | .each = .{ .once = &.{ |
| 100583 | 102165 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100584 | 102166 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 100585 | 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 | 102169 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 100588 | 102170 | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 100589 | 102171 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| ... | ... | @@ -100591,8 +102173,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100591 | 102173 | } }, |
| 100592 | 102174 | }, .{ |
| 100593 | 102175 | .required_features = .{ .ssse3, null, null, null }, |
| 100594 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100595 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 102176 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102177 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 100596 | 102178 | .patterns = &.{ |
| 100597 | 102179 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100598 | 102180 | }, |
| ... | ... | @@ -100610,19 +102192,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100610 | 102192 | .unused, |
| 100611 | 102193 | }, |
| 100612 | 102194 | .dst_temps = .{ .mem, .unused }, |
| 102195 | .clobbers = .{ .eflags = true }, |
| 100613 | 102196 | .each = .{ .once = &.{ |
| 100614 | 102197 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 100615 | 102198 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 100616 | 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 | 102201 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, |
| 100619 | 102202 | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 100620 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102203 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100621 | 102204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100622 | 102205 | } }, |
| 100623 | 102206 | }, .{ |
| 100624 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 100625 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 102207 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 102208 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100626 | 102209 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 100627 | 102210 | .patterns = &.{ |
| 100628 | 102211 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -100641,16 +102224,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100641 | 102224 | .unused, |
| 100642 | 102225 | }, |
| 100643 | 102226 | .dst_temps = .{ .mem, .unused }, |
| 102227 | .clobbers = .{ .eflags = true }, |
| 100644 | 102228 | .each = .{ .once = &.{ |
| 100645 | 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 | 102231 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 100648 | 102232 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 100649 | 102233 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100650 | 102234 | } }, |
| 100651 | 102235 | }, .{ |
| 100652 | | .required_features = .{ .sse, null, null, null }, |
| 100653 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 102236 | .required_features = .{ .sse2, null, null, null }, |
| 102237 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 100654 | 102238 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 100655 | 102239 | .patterns = &.{ |
| 100656 | 102240 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -100669,26 +102253,529 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100669 | 102253 | .unused, |
| 100670 | 102254 | }, |
| 100671 | 102255 | .dst_temps = .{ .mem, .unused }, |
| 102256 | .clobbers = .{ .eflags = true }, |
| 100672 | 102257 | .each = .{ .once = &.{ |
| 100673 | 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 | 102260 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 100676 | 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 | 102322 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 100678 | 102323 | } }, |
| 100679 | 102324 | }, .{ |
| 100680 | 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 | 102483 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 100683 | 102484 | .patterns = &.{ |
| 100684 | 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 | 102774 | .extra_temps = .{ |
| 100688 | 102775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100689 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100690 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 100691 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102776 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 102777 | .{ .type = .i32, .kind = .mem }, |
| 102778 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 100692 | 102779 | .unused, |
| 100693 | 102780 | .unused, |
| 100694 | 102781 | .unused, |
| ... | ... | @@ -100698,27 +102785,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100698 | 102785 | .unused, |
| 100699 | 102786 | }, |
| 100700 | 102787 | .dst_temps = .{ .mem, .unused }, |
| 100701 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100702 | 102788 | .each = .{ .once = &.{ |
| 100703 | 102789 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100704 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100705 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100706 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 100707 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 102790 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102791 | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, |
| 102792 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 102793 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102794 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100708 | 102795 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100709 | 102796 | } }, |
| 100710 | 102797 | }, .{ |
| 100711 | 102798 | .required_features = .{ .avx, null, null, null }, |
| 100712 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100713 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 102799 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102800 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100714 | 102801 | .patterns = &.{ |
| 100715 | 102802 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100716 | 102803 | }, |
| 100717 | 102804 | .call_frame = .{ .alignment = .@"16" }, |
| 100718 | 102805 | .extra_temps = .{ |
| 100719 | 102806 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100720 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100721 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 102807 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102808 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100722 | 102809 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100723 | 102810 | .unused, |
| 100724 | 102811 | .unused, |
| ... | ... | @@ -100732,24 +102819,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100732 | 102819 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100733 | 102820 | .each = .{ .once = &.{ |
| 100734 | 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 | 102823 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100737 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 100738 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 100739 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 102824 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102825 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 102826 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100740 | 102827 | } }, |
| 100741 | 102828 | }, .{ |
| 100742 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 100743 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100744 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 102829 | .required_features = .{ .sse2, null, null, null }, |
| 102830 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102831 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100745 | 102832 | .patterns = &.{ |
| 100746 | 102833 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100747 | 102834 | }, |
| 100748 | 102835 | .call_frame = .{ .alignment = .@"16" }, |
| 100749 | 102836 | .extra_temps = .{ |
| 100750 | 102837 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100751 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100752 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 102838 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102839 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100753 | 102840 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100754 | 102841 | .unused, |
| 100755 | 102842 | .unused, |
| ... | ... | @@ -100763,24 +102850,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100763 | 102850 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100764 | 102851 | .each = .{ .once = &.{ |
| 100765 | 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 | 102854 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100768 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 100769 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 102855 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102856 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100770 | 102857 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100771 | 102858 | } }, |
| 100772 | 102859 | }, .{ |
| 100773 | 102860 | .required_features = .{ .sse, null, null, null }, |
| 100774 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100775 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 102861 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102862 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 100776 | 102863 | .patterns = &.{ |
| 100777 | 102864 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100778 | 102865 | }, |
| 100779 | 102866 | .call_frame = .{ .alignment = .@"16" }, |
| 100780 | 102867 | .extra_temps = .{ |
| 100781 | 102868 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100782 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100783 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 102869 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102870 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100784 | 102871 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100785 | 102872 | .unused, |
| 100786 | 102873 | .unused, |
| ... | ... | @@ -100794,74 +102881,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100794 | 102881 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100795 | 102882 | .each = .{ .once = &.{ |
| 100796 | 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 | 102886 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100799 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 100800 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 100801 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 102887 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102888 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 102889 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100802 | 102890 | } }, |
| 100803 | 102891 | }, .{ |
| 100804 | 102892 | .required_features = .{ .avx, null, null, null }, |
| 100805 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100806 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 102893 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102894 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 100807 | 102895 | .patterns = &.{ |
| 100808 | 102896 | .{ .src = .{ .mem, .none, .none } }, |
| 100809 | 102897 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100810 | 102898 | }, |
| 100811 | 102899 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100812 | 102900 | .each = .{ .once = &.{ |
| 100813 | | .{ ._, .v_, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 100814 | | .{ ._, .vp_w, .ackssd, .dst0x, .dst0x, .dst0x, ._ }, |
| 102901 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 100815 | 102902 | } }, |
| 100816 | 102903 | }, .{ |
| 100817 | 102904 | .required_features = .{ .sse2, null, null, null }, |
| 100818 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100819 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 102905 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102906 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 100820 | 102907 | .patterns = &.{ |
| 100821 | 102908 | .{ .src = .{ .mem, .none, .none } }, |
| 100822 | 102909 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100823 | 102910 | }, |
| 100824 | 102911 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100825 | 102912 | .each = .{ .once = &.{ |
| 100826 | | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 100827 | | .{ ._, .p_w, .ackssd, .dst0x, .dst0x, ._, ._ }, |
| 102913 | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 100828 | 102914 | } }, |
| 100829 | 102915 | }, .{ |
| 100830 | 102916 | .required_features = .{ .avx, null, null, null }, |
| 100831 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100832 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .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 }, |
| 102917 | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102918 | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 100846 | 102919 | .patterns = &.{ |
| 100847 | 102920 | .{ .src = .{ .mem, .none, .none } }, |
| 100848 | 102921 | .{ .src = .{ .to_sse, .none, .none } }, |
| 100849 | 102922 | }, |
| 100850 | 102923 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 100851 | 102924 | .each = .{ .once = &.{ |
| 100852 | | .{ ._, ._, .cvttps2dq, .dst0x, .src0x, ._, ._ }, |
| 100853 | | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, |
| 102925 | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| 100854 | 102926 | } }, |
| 100855 | 102927 | }, .{ |
| 100856 | 102928 | .required_features = .{ .avx, null, null, null }, |
| 100857 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100858 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 102929 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102930 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 100859 | 102931 | .patterns = &.{ |
| 100860 | 102932 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100861 | 102933 | }, |
| 100862 | 102934 | .extra_temps = .{ |
| 100863 | 102935 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100864 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 102936 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 100865 | 102937 | .unused, |
| 100866 | 102938 | .unused, |
| 100867 | 102939 | .unused, |
| ... | ... | @@ -100873,24 +102945,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100873 | 102945 | .unused, |
| 100874 | 102946 | }, |
| 100875 | 102947 | .dst_temps = .{ .mem, .unused }, |
| 102948 | .clobbers = .{ .eflags = true }, |
| 100876 | 102949 | .each = .{ .once = &.{ |
| 100877 | 102950 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100878 | | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100879 | | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100880 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 100881 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102951 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102952 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 102953 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 100882 | 102954 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100883 | 102955 | } }, |
| 100884 | 102956 | }, .{ |
| 100885 | 102957 | .required_features = .{ .sse2, null, null, null }, |
| 100886 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100887 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 102958 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102959 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 100888 | 102960 | .patterns = &.{ |
| 100889 | 102961 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100890 | 102962 | }, |
| 100891 | 102963 | .extra_temps = .{ |
| 100892 | 102964 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100893 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 102965 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 100894 | 102966 | .unused, |
| 100895 | 102967 | .unused, |
| 100896 | 102968 | .unused, |
| ... | ... | @@ -100902,24 +102974,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100902 | 102974 | .unused, |
| 100903 | 102975 | }, |
| 100904 | 102976 | .dst_temps = .{ .mem, .unused }, |
| 102977 | .clobbers = .{ .eflags = true }, |
| 100905 | 102978 | .each = .{ .once = &.{ |
| 100906 | 102979 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100907 | | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100908 | | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, |
| 100909 | | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 102980 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102981 | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 100910 | 102982 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 100911 | 102983 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100912 | 102984 | } }, |
| 100913 | 102985 | }, .{ |
| 100914 | | .required_features = .{ .avx, null, null, null }, |
| 100915 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100916 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 102986 | .required_features = .{ .x87, null, null, null }, |
| 102987 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102988 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100917 | 102989 | .patterns = &.{ |
| 100918 | 102990 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100919 | 102991 | }, |
| 100920 | 102992 | .extra_temps = .{ |
| 100921 | 102993 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100922 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 102994 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 100923 | 102995 | .unused, |
| 100924 | 102996 | .unused, |
| 100925 | 102997 | .unused, |
| ... | ... | @@ -100933,24 +103005,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100933 | 103005 | .dst_temps = .{ .mem, .unused }, |
| 100934 | 103006 | .each = .{ .once = &.{ |
| 100935 | 103007 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100936 | | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100937 | | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100938 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 100939 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103008 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103009 | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103010 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100940 | 103011 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100941 | 103012 | } }, |
| 100942 | 103013 | }, .{ |
| 100943 | | .required_features = .{ .sse4_1, null, null, null }, |
| 100944 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 100945 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 103014 | .required_features = .{ .x87, null, null, null }, |
| 103015 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103016 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100946 | 103017 | .patterns = &.{ |
| 100947 | 103018 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100948 | 103019 | }, |
| 100949 | 103020 | .extra_temps = .{ |
| 100950 | 103021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100951 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 100952 | | .unused, |
| 100953 | | .unused, |
| 103022 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103023 | .{ .type = .i64, .kind = .mem }, |
| 103024 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100954 | 103025 | .unused, |
| 100955 | 103026 | .unused, |
| 100956 | 103027 | .unused, |
| ... | ... | @@ -100962,24 +103033,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100962 | 103033 | .dst_temps = .{ .mem, .unused }, |
| 100963 | 103034 | .each = .{ .once = &.{ |
| 100964 | 103035 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 100965 | | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 100966 | | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, |
| 100967 | | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 100968 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103036 | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103037 | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, |
| 103038 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 103039 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103040 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 100969 | 103041 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 100970 | 103042 | } }, |
| 100971 | 103043 | }, .{ |
| 100972 | 103044 | .required_features = .{ .avx, null, null, null }, |
| 100973 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 100974 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103045 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103046 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 100975 | 103047 | .patterns = &.{ |
| 100976 | 103048 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100977 | 103049 | }, |
| 100978 | 103050 | .call_frame = .{ .alignment = .@"16" }, |
| 100979 | 103051 | .extra_temps = .{ |
| 100980 | 103052 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100981 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 100982 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 103053 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103054 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 100983 | 103055 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 100984 | 103056 | .unused, |
| 100985 | 103057 | .unused, |
| ... | ... | @@ -100993,25 +103065,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100993 | 103065 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100994 | 103066 | .each = .{ .once = &.{ |
| 100995 | 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 | 103069 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100998 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 100999 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103070 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103071 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101000 | 103072 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101001 | 103073 | } }, |
| 101002 | 103074 | }, .{ |
| 101003 | | .required_features = .{ .sse, null, null, null }, |
| 101004 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 101005 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103075 | .required_features = .{ .avx, null, null, null }, |
| 103076 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103077 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101006 | 103078 | .patterns = &.{ |
| 101007 | 103079 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101008 | 103080 | }, |
| 101009 | 103081 | .call_frame = .{ .alignment = .@"16" }, |
| 101010 | 103082 | .extra_temps = .{ |
| 101011 | 103083 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101012 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101013 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 101014 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103084 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103085 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 103086 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 101015 | 103087 | .unused, |
| 101016 | 103088 | .unused, |
| 101017 | 103089 | .unused, |
| ... | ... | @@ -101024,48 +103096,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101024 | 103096 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101025 | 103097 | .each = .{ .once = &.{ |
| 101026 | 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 | 103100 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101029 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 101030 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103101 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103102 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101031 | 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 | 103106 | .required_features = .{ .sse2, null, null, null }, |
| 101047 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 101048 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .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 }, |
| 103107 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103108 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101061 | 103109 | .patterns = &.{ |
| 101062 | 103110 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101063 | 103111 | }, |
| 103112 | .call_frame = .{ .alignment = .@"16" }, |
| 101064 | 103113 | .extra_temps = .{ |
| 101065 | 103114 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101066 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 101067 | | .unused, |
| 101068 | | .unused, |
| 103115 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103116 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 103117 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101069 | 103118 | .unused, |
| 101070 | 103119 | .unused, |
| 101071 | 103120 | .unused, |
| ... | ... | @@ -101075,25 +103124,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101075 | 103124 | .unused, |
| 101076 | 103125 | }, |
| 101077 | 103126 | .dst_temps = .{ .mem, .unused }, |
| 103127 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101078 | 103128 | .each = .{ .once = &.{ |
| 101079 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101080 | | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101081 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101082 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103129 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103130 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103131 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103132 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103133 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101083 | 103134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101084 | 103135 | } }, |
| 101085 | 103136 | }, .{ |
| 101086 | 103137 | .required_features = .{ .sse2, null, null, null }, |
| 101087 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 101088 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 103138 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103139 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101089 | 103140 | .patterns = &.{ |
| 101090 | 103141 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101091 | 103142 | }, |
| 103143 | .call_frame = .{ .alignment = .@"16" }, |
| 101092 | 103144 | .extra_temps = .{ |
| 101093 | 103145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101094 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 101095 | | .unused, |
| 101096 | | .unused, |
| 103146 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103147 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 103148 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 101097 | 103149 | .unused, |
| 101098 | 103150 | .unused, |
| 101099 | 103151 | .unused, |
| ... | ... | @@ -101103,16 +103155,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101103 | 103155 | .unused, |
| 101104 | 103156 | }, |
| 101105 | 103157 | .dst_temps = .{ .mem, .unused }, |
| 103158 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101106 | 103159 | .each = .{ .once = &.{ |
| 101107 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101108 | | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101109 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101110 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103160 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103161 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103162 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103163 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103164 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101111 | 103165 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101112 | 103166 | } }, |
| 101113 | 103167 | }, .{ |
| 101114 | | .required_features = .{ .avx, null, null, null }, |
| 101115 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103168 | .required_features = .{ .sse, null, null, null }, |
| 103169 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101116 | 103170 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101117 | 103171 | .patterns = &.{ |
| 101118 | 103172 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101120,8 +103174,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101120 | 103174 | .call_frame = .{ .alignment = .@"16" }, |
| 101121 | 103175 | .extra_temps = .{ |
| 101122 | 103176 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101123 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101124 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 103177 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103178 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 101125 | 103179 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101126 | 103180 | .unused, |
| 101127 | 103181 | .unused, |
| ... | ... | @@ -101134,16 +103188,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101134 | 103188 | .dst_temps = .{ .mem, .unused }, |
| 101135 | 103189 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101136 | 103190 | .each = .{ .once = &.{ |
| 101137 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101138 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103191 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103192 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103193 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101139 | 103194 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101140 | 103195 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101141 | 103196 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101142 | 103197 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101143 | 103198 | } }, |
| 101144 | 103199 | }, .{ |
| 101145 | | .required_features = .{ .avx, null, null, null }, |
| 101146 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103200 | .required_features = .{ .sse, null, null, null }, |
| 103201 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101147 | 103202 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101148 | 103203 | .patterns = &.{ |
| 101149 | 103204 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101151,8 +103206,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101151 | 103206 | .call_frame = .{ .alignment = .@"16" }, |
| 101152 | 103207 | .extra_temps = .{ |
| 101153 | 103208 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101154 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101155 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, |
| 103209 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103210 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 101156 | 103211 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 101157 | 103212 | .unused, |
| 101158 | 103213 | .unused, |
| ... | ... | @@ -101165,26 +103220,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101165 | 103220 | .dst_temps = .{ .mem, .unused }, |
| 101166 | 103221 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101167 | 103222 | .each = .{ .once = &.{ |
| 101168 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101169 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103223 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103224 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103225 | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101170 | 103226 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101171 | 103227 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101172 | 103228 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101173 | 103229 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101174 | 103230 | } }, |
| 101175 | 103231 | }, .{ |
| 101176 | | .required_features = .{ .sse, null, null, null }, |
| 101177 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 101178 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103232 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103233 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103234 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101179 | 103235 | .patterns = &.{ |
| 101180 | 103236 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101181 | 103237 | }, |
| 101182 | | .call_frame = .{ .alignment = .@"16" }, |
| 101183 | 103238 | .extra_temps = .{ |
| 101184 | 103239 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101185 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101186 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 101187 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103240 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103241 | .unused, |
| 103242 | .unused, |
| 101188 | 103243 | .unused, |
| 101189 | 103244 | .unused, |
| 101190 | 103245 | .unused, |
| ... | ... | @@ -101194,28 +103249,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101194 | 103249 | .unused, |
| 101195 | 103250 | }, |
| 101196 | 103251 | .dst_temps = .{ .mem, .unused }, |
| 101197 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103252 | .clobbers = .{ .eflags = true }, |
| 101198 | 103253 | .each = .{ .once = &.{ |
| 101199 | 103254 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101200 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101201 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101202 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101203 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103255 | .{ .@"0:", .v_, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103256 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 103257 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101204 | 103258 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101205 | 103259 | } }, |
| 101206 | 103260 | }, .{ |
| 101207 | | .required_features = .{ .sse, null, null, null }, |
| 101208 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 101209 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103261 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103262 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103263 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101210 | 103264 | .patterns = &.{ |
| 101211 | 103265 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101212 | 103266 | }, |
| 101213 | | .call_frame = .{ .alignment = .@"16" }, |
| 101214 | 103267 | .extra_temps = .{ |
| 101215 | 103268 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101216 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101217 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfsi" } } }, |
| 101218 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103269 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103270 | .unused, |
| 103271 | .unused, |
| 101219 | 103272 | .unused, |
| 101220 | 103273 | .unused, |
| 101221 | 103274 | .unused, |
| ... | ... | @@ -101225,25 +103278,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101225 | 103278 | .unused, |
| 101226 | 103279 | }, |
| 101227 | 103280 | .dst_temps = .{ .mem, .unused }, |
| 101228 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103281 | .clobbers = .{ .eflags = true }, |
| 101229 | 103282 | .each = .{ .once = &.{ |
| 101230 | 103283 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101231 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101232 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101233 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101234 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103284 | .{ .@"0:", ._, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103285 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 103286 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101235 | 103287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101236 | 103288 | } }, |
| 101237 | 103289 | }, .{ |
| 101238 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 101239 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103290 | .required_features = .{ .x87, null, null, null }, |
| 103291 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101240 | 103292 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101241 | 103293 | .patterns = &.{ |
| 101242 | 103294 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101243 | 103295 | }, |
| 101244 | 103296 | .extra_temps = .{ |
| 101245 | 103297 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101246 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103298 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101247 | 103299 | .unused, |
| 101248 | 103300 | .unused, |
| 101249 | 103301 | .unused, |
| ... | ... | @@ -101257,21 +103309,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101257 | 103309 | .dst_temps = .{ .mem, .unused }, |
| 101258 | 103310 | .each = .{ .once = &.{ |
| 101259 | 103311 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101260 | | .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101261 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101262 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103312 | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103313 | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103314 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101263 | 103315 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101264 | 103316 | } }, |
| 101265 | 103317 | }, .{ |
| 101266 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101267 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103318 | .required_features = .{ .avx, null, null, null }, |
| 103319 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101268 | 103320 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101269 | 103321 | .patterns = &.{ |
| 101270 | 103322 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101271 | 103323 | }, |
| 103324 | .call_frame = .{ .alignment = .@"16" }, |
| 101272 | 103325 | .extra_temps = .{ |
| 101273 | 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 | 103330 | .unused, |
| 101276 | 103331 | .unused, |
| 101277 | 103332 | .unused, |
| ... | ... | @@ -101279,20 +103334,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101279 | 103334 | .unused, |
| 101280 | 103335 | .unused, |
| 101281 | 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 | 103366 | .unused, |
| 101283 | 103367 | .unused, |
| 101284 | 103368 | }, |
| 101285 | 103369 | .dst_temps = .{ .mem, .unused }, |
| 103370 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101286 | 103371 | .each = .{ .once = &.{ |
| 101287 | 103372 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101288 | | .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101289 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101290 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103373 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103374 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103375 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103376 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101291 | 103377 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101292 | 103378 | } }, |
| 101293 | 103379 | }, .{ |
| 101294 | | .required_features = .{ .avx, null, null, null }, |
| 101295 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103380 | .required_features = .{ .sse2, null, null, null }, |
| 103381 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101296 | 103382 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101297 | 103383 | .patterns = &.{ |
| 101298 | 103384 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101300,8 +103386,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101300 | 103386 | .call_frame = .{ .alignment = .@"16" }, |
| 101301 | 103387 | .extra_temps = .{ |
| 101302 | 103388 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101303 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101304 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, |
| 103389 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103390 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| 101305 | 103391 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 101306 | 103392 | .unused, |
| 101307 | 103393 | .unused, |
| ... | ... | @@ -101315,15 +103401,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101315 | 103401 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101316 | 103402 | .each = .{ .once = &.{ |
| 101317 | 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 | 103405 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101320 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101321 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103406 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103407 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101322 | 103408 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101323 | 103409 | } }, |
| 101324 | 103410 | }, .{ |
| 101325 | | .required_features = .{ .avx, null, null, null }, |
| 101326 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103411 | .required_features = .{ .sse2, null, null, null }, |
| 103412 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101327 | 103413 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101328 | 103414 | .patterns = &.{ |
| 101329 | 103415 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101331,8 +103417,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101331 | 103417 | .call_frame = .{ .alignment = .@"16" }, |
| 101332 | 103418 | .extra_temps = .{ |
| 101333 | 103419 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101334 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101335 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, |
| 103420 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103421 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| 101336 | 103422 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101337 | 103423 | .unused, |
| 101338 | 103424 | .unused, |
| ... | ... | @@ -101346,15 +103432,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101346 | 103432 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101347 | 103433 | .each = .{ .once = &.{ |
| 101348 | 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 | 103436 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101351 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101352 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103437 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103438 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101353 | 103439 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101354 | 103440 | } }, |
| 101355 | 103441 | }, .{ |
| 101356 | 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 | 103444 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101359 | 103445 | .patterns = &.{ |
| 101360 | 103446 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101362,8 +103448,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101362 | 103448 | .call_frame = .{ .alignment = .@"16" }, |
| 101363 | 103449 | .extra_temps = .{ |
| 101364 | 103450 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101365 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101366 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfdi" } } }, |
| 103451 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103452 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| 101367 | 103453 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 101368 | 103454 | .unused, |
| 101369 | 103455 | .unused, |
| ... | ... | @@ -101377,15 +103463,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101377 | 103463 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101378 | 103464 | .each = .{ .once = &.{ |
| 101379 | 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 | 103468 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101382 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101383 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103469 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103470 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101384 | 103471 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101385 | 103472 | } }, |
| 101386 | 103473 | }, .{ |
| 101387 | 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 | 103476 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101390 | 103477 | .patterns = &.{ |
| 101391 | 103478 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101393,8 +103480,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101393 | 103480 | .call_frame = .{ .alignment = .@"16" }, |
| 101394 | 103481 | .extra_temps = .{ |
| 101395 | 103482 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101396 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101397 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfdi" } } }, |
| 103483 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103484 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| 101398 | 103485 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101399 | 103486 | .unused, |
| 101400 | 103487 | .unused, |
| ... | ... | @@ -101408,15 +103495,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101408 | 103495 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101409 | 103496 | .each = .{ .once = &.{ |
| 101410 | 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 | 103500 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101413 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101414 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103501 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103502 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101415 | 103503 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101416 | 103504 | } }, |
| 101417 | 103505 | }, .{ |
| 101418 | 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 | 103508 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101421 | 103509 | .patterns = &.{ |
| 101422 | 103510 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101424,8 +103512,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101424 | 103512 | .call_frame = .{ .alignment = .@"16" }, |
| 101425 | 103513 | .extra_temps = .{ |
| 101426 | 103514 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101427 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101428 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 103515 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103516 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 101429 | 103517 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101430 | 103518 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 101431 | 103519 | .unused, |
| ... | ... | @@ -101439,16 +103527,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101439 | 103527 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101440 | 103528 | .each = .{ .once = &.{ |
| 101441 | 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 | 103531 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101444 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101445 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101446 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103532 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103533 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103534 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101447 | 103535 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101448 | 103536 | } }, |
| 101449 | 103537 | }, .{ |
| 101450 | 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 | 103540 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101453 | 103541 | .patterns = &.{ |
| 101454 | 103542 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101456,8 +103544,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101456 | 103544 | .call_frame = .{ .alignment = .@"16" }, |
| 101457 | 103545 | .extra_temps = .{ |
| 101458 | 103546 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101459 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101460 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 103547 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103548 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 101461 | 103549 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101462 | 103550 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 101463 | 103551 | .unused, |
| ... | ... | @@ -101471,16 +103559,80 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101471 | 103559 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101472 | 103560 | .each = .{ .once = &.{ |
| 101473 | 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 | 103563 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101476 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101477 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101478 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103564 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103565 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 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 | 103631 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101480 | 103632 | } }, |
| 101481 | 103633 | }, .{ |
| 101482 | 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 | 103636 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101485 | 103637 | .patterns = &.{ |
| 101486 | 103638 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101488,8 +103640,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101488 | 103640 | .call_frame = .{ .alignment = .@"16" }, |
| 101489 | 103641 | .extra_temps = .{ |
| 101490 | 103642 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101491 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101492 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfti" } } }, |
| 103643 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103644 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 101493 | 103645 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101494 | 103646 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 101495 | 103647 | .unused, |
| ... | ... | @@ -101503,16 +103655,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101503 | 103655 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101504 | 103656 | .each = .{ .once = &.{ |
| 101505 | 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 | 103660 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101508 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101509 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101510 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103661 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103662 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103663 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101511 | 103664 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101512 | 103665 | } }, |
| 101513 | 103666 | }, .{ |
| 101514 | 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 | 103669 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 101517 | 103670 | .patterns = &.{ |
| 101518 | 103671 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101520,8 +103673,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101520 | 103673 | .call_frame = .{ .alignment = .@"16" }, |
| 101521 | 103674 | .extra_temps = .{ |
| 101522 | 103675 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101523 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101524 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfti" } } }, |
| 103676 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103677 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 101525 | 103678 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101526 | 103679 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 101527 | 103680 | .unused, |
| ... | ... | @@ -101535,16 +103688,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101535 | 103688 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101536 | 103689 | .each = .{ .once = &.{ |
| 101537 | 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 | 103693 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101540 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101541 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 101542 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103694 | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103695 | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103696 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101543 | 103697 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101544 | 103698 | } }, |
| 101545 | 103699 | }, .{ |
| 101546 | 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 | 103702 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101549 | 103703 | .patterns = &.{ |
| 101550 | 103704 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101555,8 +103709,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101555 | 103709 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101556 | 103710 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101557 | 103711 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101558 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101559 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, |
| 103712 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103713 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 101560 | 103714 | .unused, |
| 101561 | 103715 | .unused, |
| 101562 | 103716 | .unused, |
| ... | ... | @@ -101570,15 +103724,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101570 | 103724 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101571 | 103725 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101572 | 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 | 103728 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101575 | 103729 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101576 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103730 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101577 | 103731 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101578 | 103732 | } }, |
| 101579 | 103733 | }, .{ |
| 101580 | 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 | 103736 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101583 | 103737 | .patterns = &.{ |
| 101584 | 103738 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101589,8 +103743,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101589 | 103743 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101590 | 103744 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101591 | 103745 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101592 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101593 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, |
| 103746 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103747 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 101594 | 103748 | .unused, |
| 101595 | 103749 | .unused, |
| 101596 | 103750 | .unused, |
| ... | ... | @@ -101604,15 +103758,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101604 | 103758 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101605 | 103759 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101606 | 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 | 103762 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101609 | 103763 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101610 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103764 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101611 | 103765 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101612 | 103766 | } }, |
| 101613 | 103767 | }, .{ |
| 101614 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101615 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103768 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103769 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101616 | 103770 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101617 | 103771 | .patterns = &.{ |
| 101618 | 103772 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101623,8 +103777,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101623 | 103777 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101624 | 103778 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101625 | 103779 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101626 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101627 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfei" } } }, |
| 103780 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103781 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 101628 | 103782 | .unused, |
| 101629 | 103783 | .unused, |
| 101630 | 103784 | .unused, |
| ... | ... | @@ -101638,15 +103792,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101638 | 103792 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101639 | 103793 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101640 | 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 | 103796 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101643 | 103797 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101644 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103798 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101645 | 103799 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101646 | 103800 | } }, |
| 101647 | 103801 | }, .{ |
| 101648 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101649 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 103802 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103803 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 101650 | 103804 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101651 | 103805 | .patterns = &.{ |
| 101652 | 103806 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -101657,8 +103811,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101657 | 103811 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 101658 | 103812 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101659 | 103813 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 101660 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 101661 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunssfei" } } }, |
| 103814 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103815 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 101662 | 103816 | .unused, |
| 101663 | 103817 | .unused, |
| 101664 | 103818 | .unused, |
| ... | ... | @@ -101672,98 +103826,93 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101672 | 103826 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 101673 | 103827 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 101674 | 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 | 103830 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 101677 | 103831 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 101678 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103832 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101679 | 103833 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101680 | 103834 | } }, |
| 101681 | 103835 | }, .{ |
| 101682 | | .required_features = .{ .avx, null, null, null }, |
| 101683 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101684 | | .dst_constraints = .{ .{ .signed_or_exclusive_int = .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 }, |
| 103836 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103837 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103838 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101709 | 103839 | .patterns = &.{ |
| 101710 | 103840 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101711 | 103841 | }, |
| 103842 | .call_frame = .{ .alignment = .@"16" }, |
| 101712 | 103843 | .extra_temps = .{ |
| 101713 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101714 | | .{ .type = .i16, .kind = .mem }, |
| 101715 | | .unused, |
| 101716 | | .unused, |
| 101717 | | .unused, |
| 101718 | | .unused, |
| 103844 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103845 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103846 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103847 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103848 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103849 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 101719 | 103850 | .unused, |
| 101720 | 103851 | .unused, |
| 101721 | 103852 | .unused, |
| 101722 | 103853 | .unused, |
| 101723 | 103854 | .unused, |
| 101724 | 103855 | }, |
| 101725 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 103856 | .dst_temps = .{ .mem, .unused }, |
| 103857 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101726 | 103858 | .each = .{ .once = &.{ |
| 101727 | | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 101728 | | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 101729 | | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, |
| 103859 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103860 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 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 }, |
| 101733 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101734 | | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 103871 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103872 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103873 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 101735 | 103874 | .patterns = &.{ |
| 101736 | 103875 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101737 | 103876 | }, |
| 103877 | .call_frame = .{ .alignment = .@"16" }, |
| 101738 | 103878 | .extra_temps = .{ |
| 101739 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101740 | | .{ .type = .i16, .kind = .mem }, |
| 101741 | | .unused, |
| 101742 | | .unused, |
| 101743 | | .unused, |
| 101744 | | .unused, |
| 103879 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103880 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103881 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103882 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103883 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103884 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 101745 | 103885 | .unused, |
| 101746 | 103886 | .unused, |
| 101747 | 103887 | .unused, |
| 101748 | 103888 | .unused, |
| 101749 | 103889 | .unused, |
| 101750 | 103890 | }, |
| 101751 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 103891 | .dst_temps = .{ .mem, .unused }, |
| 103892 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101752 | 103893 | .each = .{ .once = &.{ |
| 101753 | | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 101754 | | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 101755 | | .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ }, |
| 103894 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103895 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 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 | 103906 | .required_features = .{ .x87, null, null, null }, |
| 101759 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101760 | | .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, |
| 103907 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 103908 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 101761 | 103909 | .patterns = &.{ |
| 101762 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 103910 | .{ .src = .{ .mem, .none, .none } }, |
| 103911 | .{ .src = .{ .to_x87, .none, .none } }, |
| 101763 | 103912 | }, |
| 101764 | 103913 | .extra_temps = .{ |
| 101765 | 103914 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101766 | | .unused, |
| 103915 | .{ .type = .i16, .kind = .mem }, |
| 101767 | 103916 | .unused, |
| 101768 | 103917 | .unused, |
| 101769 | 103918 | .unused, |
| ... | ... | @@ -101774,20 +103923,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101774 | 103923 | .unused, |
| 101775 | 103924 | .unused, |
| 101776 | 103925 | }, |
| 101777 | | .dst_temps = .{ .mem, .unused }, |
| 103926 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 101778 | 103927 | .each = .{ .once = &.{ |
| 101779 | | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 101780 | | .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, |
| 103928 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 103929 | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 103930 | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, |
| 101781 | 103931 | } }, |
| 101782 | 103932 | }, .{ |
| 101783 | 103933 | .required_features = .{ .x87, null, null, null }, |
| 101784 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101785 | | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 103934 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 103935 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 101786 | 103936 | .patterns = &.{ |
| 101787 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 103937 | .{ .src = .{ .mem, .none, .none } }, |
| 103938 | .{ .src = .{ .to_x87, .none, .none } }, |
| 101788 | 103939 | }, |
| 101789 | 103940 | .extra_temps = .{ |
| 101790 | 103941 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103942 | .{ .type = .i16, .kind = .mem }, |
| 101791 | 103943 | .unused, |
| 101792 | 103944 | .unused, |
| 101793 | 103945 | .unused, |
| ... | ... | @@ -101797,50 +103949,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101797 | 103949 | .unused, |
| 101798 | 103950 | .unused, |
| 101799 | 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 | 103953 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 101828 | 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 }, |
| 101833 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101834 | | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 103960 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 103961 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 103962 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101835 | 103963 | .patterns = &.{ |
| 101836 | 103964 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101837 | 103965 | }, |
| 101838 | 103966 | .extra_temps = .{ |
| 101839 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101840 | | .unused, |
| 101841 | | .unused, |
| 101842 | | .unused, |
| 101843 | | .unused, |
| 103967 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103968 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103969 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 103970 | .{ .type = .i16, .kind = .mem }, |
| 103971 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101844 | 103972 | .unused, |
| 101845 | 103973 | .unused, |
| 101846 | 103974 | .unused, |
| ... | ... | @@ -101849,55 +103977,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101849 | 103977 | .unused, |
| 101850 | 103978 | }, |
| 101851 | 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 | 103980 | .clobbers = .{ .eflags = true }, |
| 101878 | 103981 | .each = .{ .once = &.{ |
| 101879 | | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 101880 | | .{ ._, .v_, .cvttsd2si, .tmp2q, .src0d, ._, ._ }, |
| 101881 | | .{ ._, .v_sd, .sub, .tmp0x, .src0x, .lea(.tmp1q), ._ }, |
| 101882 | | .{ ._, .v_, .cvttsd2si, .dst0q, .tmp0d, ._, ._ }, |
| 101883 | | .{ ._, ._, .mov, .tmp1q, .tmp2q, ._, ._ }, |
| 101884 | | .{ ._, ._r, .sa, .tmp2q, .ui(63), ._, ._ }, |
| 101885 | | .{ ._, ._, .@"and", .dst0q, .tmp2q, ._, ._ }, |
| 101886 | | .{ ._, ._, .@"or", .dst0q, .tmp1q, ._, ._ }, |
| 103982 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103983 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103984 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 103985 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 103986 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 103987 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 103988 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 103989 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 103990 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101887 | 103991 | } }, |
| 101888 | 103992 | }, .{ |
| 101889 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 101890 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101891 | | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 103993 | .required_features = .{ .x87, null, null, null }, |
| 103994 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 103995 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101892 | 103996 | .patterns = &.{ |
| 101893 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 103997 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101894 | 103998 | }, |
| 101895 | 103999 | .extra_temps = .{ |
| 101896 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 101897 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 101898 | | .{ .type = .f64, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 101899 | | .unused, |
| 101900 | | .unused, |
| 104000 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104001 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104002 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104003 | .{ .type = .i16, .kind = .mem }, |
| 104004 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101901 | 104005 | .unused, |
| 101902 | 104006 | .unused, |
| 101903 | 104007 | .unused, |
| ... | ... | @@ -101905,31 +104009,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101905 | 104009 | .unused, |
| 101906 | 104010 | .unused, |
| 101907 | 104011 | }, |
| 101908 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 104012 | .dst_temps = .{ .mem, .unused }, |
| 101909 | 104013 | .clobbers = .{ .eflags = true }, |
| 101910 | 104014 | .each = .{ .once = &.{ |
| 101911 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 101912 | | .{ ._, ._, .cvttsd2si, .tmp1q, .src0d, ._, ._ }, |
| 101913 | | .{ ._, ._sd, .sub, .src0x, .lea(.tmp0q), ._, ._ }, |
| 101914 | | .{ ._, ._, .cvttsd2si, .dst0q, .src0d, ._, ._ }, |
| 101915 | | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| 101916 | | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| 101917 | | .{ ._, ._, .@"and", .dst0q, .tmp1q, ._, ._ }, |
| 101918 | | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, |
| 104015 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104016 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104017 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104018 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104019 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 104020 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104021 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104022 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 104023 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 101919 | 104024 | } }, |
| 101920 | 104025 | }, .{ |
| 101921 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 101922 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101923 | | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 104026 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 104027 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104028 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101924 | 104029 | .patterns = &.{ |
| 101925 | 104030 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101926 | 104031 | }, |
| 101927 | 104032 | .extra_temps = .{ |
| 101928 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 101929 | | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 101930 | | .{ .type = .f64, .kind = .{ .reg = .st6 } }, |
| 101931 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 101932 | | .{ .type = .i64, .kind = .mem }, |
| 104033 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104034 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104035 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104036 | .{ .type = .i16, .kind = .mem }, |
| 104037 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101933 | 104038 | .unused, |
| 101934 | 104039 | .unused, |
| 101935 | 104040 | .unused, |
| ... | ... | @@ -101937,61 +104042,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101937 | 104042 | .unused, |
| 101938 | 104043 | .unused, |
| 101939 | 104044 | }, |
| 101940 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 104045 | .dst_temps = .{ .mem, .unused }, |
| 101941 | 104046 | .clobbers = .{ .eflags = true }, |
| 101942 | 104047 | .each = .{ .once = &.{ |
| 101943 | | .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, |
| 101944 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 101945 | | .{ ._, .f_, .ld, .tmp3t, ._, ._, ._ }, |
| 101946 | | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, |
| 101947 | | .{ ._, ._, .mov, .dst0q, .tmp4q, ._, ._ }, |
| 101948 | | .{ ._, .f_, .sub, .lea(.tmp0d), ._, ._, ._ }, |
| 101949 | | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, |
| 101950 | | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, |
| 101951 | | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| 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, ._, ._, ._ }, |
| 104048 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104049 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104050 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104051 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104052 | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, |
| 104053 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104054 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104055 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 104056 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101980 | 104057 | } }, |
| 101981 | 104058 | }, .{ |
| 101982 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101983 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 101984 | | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 104059 | .required_features = .{ .x87, null, null, null }, |
| 104060 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104061 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 101985 | 104062 | .patterns = &.{ |
| 101986 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 104063 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101987 | 104064 | }, |
| 101988 | | .call_frame = .{ .alignment = .@"16" }, |
| 101989 | 104065 | .extra_temps = .{ |
| 101990 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 101991 | | .unused, |
| 101992 | | .unused, |
| 101993 | | .unused, |
| 101994 | | .unused, |
| 104066 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104067 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104068 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104069 | .{ .type = .i16, .kind = .mem }, |
| 104070 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 101995 | 104071 | .unused, |
| 101996 | 104072 | .unused, |
| 101997 | 104073 | .unused, |
| ... | ... | @@ -101999,51 +104075,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101999 | 104075 | .unused, |
| 102000 | 104076 | .unused, |
| 102001 | 104077 | }, |
| 102002 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102003 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104078 | .dst_temps = .{ .mem, .unused }, |
| 104079 | .clobbers = .{ .eflags = true }, |
| 102004 | 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 }, |
| 102009 | | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 102010 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104092 | .required_features = .{ .x87, null, null, null }, |
| 104093 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104094 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any }, |
| 102011 | 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 | 104099 | .extra_temps = .{ |
| 102016 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 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, |
| 104100 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102025 | 104101 | .unused, |
| 102026 | 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 | 104103 | .unused, |
| 102048 | 104104 | .unused, |
| 102049 | 104105 | .unused, |
| ... | ... | @@ -102054,23 +104110,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102054 | 104110 | .unused, |
| 102055 | 104111 | }, |
| 102056 | 104112 | .dst_temps = .{ .mem, .unused }, |
| 102057 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102058 | 104113 | .each = .{ .once = &.{ |
| 102059 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 102060 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102061 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104114 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 104115 | .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, |
| 102062 | 104116 | } }, |
| 102063 | 104117 | }, .{ |
| 102064 | | .required_features = .{ .avx, null, null, null }, |
| 102065 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102066 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 104118 | .required_features = .{ .x87, null, null, null }, |
| 104119 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104120 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 102067 | 104121 | .patterns = &.{ |
| 102068 | | .{ .src = .{ .mem, .none, .none } }, |
| 102069 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104122 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102070 | 104123 | }, |
| 102071 | 104124 | .extra_temps = .{ |
| 102072 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102073 | | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 104125 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104126 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102074 | 104127 | .unused, |
| 102075 | 104128 | .unused, |
| 102076 | 104129 | .unused, |
| ... | ... | @@ -102081,25 +104134,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102081 | 104134 | .unused, |
| 102082 | 104135 | .unused, |
| 102083 | 104136 | }, |
| 102084 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 104137 | .dst_temps = .{ .mem, .unused }, |
| 104138 | .clobbers = .{ .eflags = true }, |
| 102085 | 104139 | .each = .{ .once = &.{ |
| 102086 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102087 | | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 102088 | | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 104140 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104141 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 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 }, |
| 102092 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102093 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 104147 | .required_features = .{ .x87, null, null, null }, |
| 104148 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104149 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 102094 | 104150 | .patterns = &.{ |
| 102095 | | .{ .src = .{ .mem, .none, .none } }, |
| 102096 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104151 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102097 | 104152 | }, |
| 102098 | 104153 | .extra_temps = .{ |
| 102099 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102100 | | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 102101 | | .unused, |
| 102102 | | .unused, |
| 104154 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104155 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104156 | .{ .type = .i32, .kind = .mem }, |
| 104157 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 102103 | 104158 | .unused, |
| 102104 | 104159 | .unused, |
| 102105 | 104160 | .unused, |
| ... | ... | @@ -102108,23 +104163,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102108 | 104163 | .unused, |
| 102109 | 104164 | .unused, |
| 102110 | 104165 | }, |
| 102111 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 104166 | .dst_temps = .{ .mem, .unused }, |
| 104167 | .clobbers = .{ .eflags = true }, |
| 102112 | 104168 | .each = .{ .once = &.{ |
| 102113 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102114 | | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 102115 | | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 104169 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104170 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 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 }, |
| 102119 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102120 | | .dst_constraints = .{ .{ .scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 104178 | .required_features = .{ .x87, null, null, null }, |
| 104179 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104180 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 102121 | 104181 | .patterns = &.{ |
| 102122 | 104182 | .{ .src = .{ .mem, .none, .none } }, |
| 102123 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104183 | .{ .src = .{ .to_x87, .none, .none } }, |
| 102124 | 104184 | }, |
| 102125 | 104185 | .extra_temps = .{ |
| 102126 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102127 | | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 104186 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104187 | .unused, |
| 102128 | 104188 | .unused, |
| 102129 | 104189 | .unused, |
| 102130 | 104190 | .unused, |
| ... | ... | @@ -102135,24 +104195,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102135 | 104195 | .unused, |
| 102136 | 104196 | .unused, |
| 102137 | 104197 | }, |
| 102138 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 104198 | .dst_temps = .{ .mem, .unused }, |
| 102139 | 104199 | .each = .{ .once = &.{ |
| 102140 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102141 | | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| 102142 | | .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| 104200 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 104201 | .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, |
| 102143 | 104202 | } }, |
| 102144 | 104203 | }, .{ |
| 102145 | | .required_features = .{ .avx, null, null, null }, |
| 102146 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102147 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 104204 | .required_features = .{ .x87, null, null, null }, |
| 104205 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104206 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102148 | 104207 | .patterns = &.{ |
| 102149 | 104208 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102150 | 104209 | }, |
| 102151 | 104210 | .extra_temps = .{ |
| 102152 | 104211 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102153 | | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 102154 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 102155 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 104212 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104213 | .unused, |
| 104214 | .unused, |
| 102156 | 104215 | .unused, |
| 102157 | 104216 | .unused, |
| 102158 | 104217 | .unused, |
| ... | ... | @@ -102164,27 +104223,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102164 | 104223 | .dst_temps = .{ .mem, .unused }, |
| 102165 | 104224 | .clobbers = .{ .eflags = true }, |
| 102166 | 104225 | .each = .{ .once = &.{ |
| 102167 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102168 | | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 102169 | 104226 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102170 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp3x, .memsia(.src0y, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102171 | | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 102172 | | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 104227 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104228 | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102173 | 104229 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102174 | 104230 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102175 | 104231 | } }, |
| 102176 | 104232 | }, .{ |
| 102177 | | .required_features = .{ .ssse3, null, null, null }, |
| 102178 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102179 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 104233 | .required_features = .{ .x87, null, null, null }, |
| 104234 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104235 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102180 | 104236 | .patterns = &.{ |
| 102181 | 104237 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102182 | 104238 | }, |
| 102183 | 104239 | .extra_temps = .{ |
| 102184 | 104240 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102185 | | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 102186 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 102187 | | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 104241 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104242 | .{ .type = .i64, .kind = .mem }, |
| 104243 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102188 | 104244 | .unused, |
| 102189 | 104245 | .unused, |
| 102190 | 104246 | .unused, |
| ... | ... | @@ -102196,25 +104252,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102196 | 104252 | .dst_temps = .{ .mem, .unused }, |
| 102197 | 104253 | .clobbers = .{ .eflags = true }, |
| 102198 | 104254 | .each = .{ .once = &.{ |
| 102199 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102200 | | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 102201 | 104255 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102202 | | .{ .@"0:", ._, .cvttpd2dq, .tmp3x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102203 | | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, |
| 102204 | | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 102205 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 104256 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104257 | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, |
| 104258 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 104259 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 104260 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102206 | 104261 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102207 | 104262 | } }, |
| 102208 | 104263 | }, .{ |
| 102209 | | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 102210 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102211 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104264 | .required_features = .{ .x87, null, null, null }, |
| 104265 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104266 | .dst_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any }, |
| 102212 | 104267 | .patterns = &.{ |
| 102213 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 104268 | .{ .src = .{ .mem, .none, .none } }, |
| 104269 | .{ .src = .{ .to_x87, .none, .none } }, |
| 102214 | 104270 | }, |
| 102215 | 104271 | .extra_temps = .{ |
| 102216 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102217 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 104272 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104273 | .unused, |
| 102218 | 104274 | .unused, |
| 102219 | 104275 | .unused, |
| 102220 | 104276 | .unused, |
| ... | ... | @@ -102226,24 +104282,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102226 | 104282 | .unused, |
| 102227 | 104283 | }, |
| 102228 | 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 | 104311 | .clobbers = .{ .eflags = true }, |
| 102230 | 104312 | .each = .{ .once = &.{ |
| 102231 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102232 | | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102233 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 102234 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 102235 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104313 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 104314 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 104315 | .{ ._, .f_, .ld, .tmp3t, ._, ._, ._ }, |
| 104316 | .{ ._, .fi_p, .stt, .tmp4q, ._, ._, ._ }, |
| 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 }, |
| 102239 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102240 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104326 | .required_features = .{ .x87, null, null, null }, |
| 104327 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104328 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102241 | 104329 | .patterns = &.{ |
| 102242 | 104330 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102243 | 104331 | }, |
| 102244 | 104332 | .extra_temps = .{ |
| 102245 | 104333 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102246 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 104334 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 102247 | 104335 | .unused, |
| 102248 | 104336 | .unused, |
| 102249 | 104337 | .unused, |
| ... | ... | @@ -102258,24 +104346,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102258 | 104346 | .clobbers = .{ .eflags = true }, |
| 102259 | 104347 | .each = .{ .once = &.{ |
| 102260 | 104348 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102261 | | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102262 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 102263 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 104349 | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104350 | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104351 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102264 | 104352 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102265 | 104353 | } }, |
| 102266 | 104354 | }, .{ |
| 102267 | | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 102268 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102269 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104355 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104356 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104357 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102270 | 104358 | .patterns = &.{ |
| 102271 | 104359 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102272 | 104360 | }, |
| 104361 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102273 | 104362 | .extra_temps = .{ |
| 102274 | 104363 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102275 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 102276 | | .{ .type = .i16, .kind = .mem }, |
| 102277 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 102278 | | .unused, |
| 104364 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104365 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104366 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104367 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102279 | 104368 | .unused, |
| 102280 | 104369 | .unused, |
| 102281 | 104370 | .unused, |
| ... | ... | @@ -102284,28 +104373,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102284 | 104373 | .unused, |
| 102285 | 104374 | }, |
| 102286 | 104375 | .dst_temps = .{ .mem, .unused }, |
| 104376 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102287 | 104377 | .each = .{ .once = &.{ |
| 102288 | 104378 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102289 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102290 | | .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ }, |
| 102291 | | .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ }, |
| 102292 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 102293 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 104379 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104380 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104381 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104382 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 104383 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102294 | 104384 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102295 | 104385 | } }, |
| 102296 | 104386 | }, .{ |
| 102297 | | .required_features = .{ .x87, null, null, null }, |
| 102298 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102299 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104387 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104388 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104389 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102300 | 104390 | .patterns = &.{ |
| 102301 | 104391 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102302 | 104392 | }, |
| 104393 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102303 | 104394 | .extra_temps = .{ |
| 102304 | 104395 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102305 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 102306 | | .{ .type = .i16, .kind = .mem }, |
| 102307 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 102308 | | .unused, |
| 104396 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104397 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104398 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104399 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102309 | 104400 | .unused, |
| 102310 | 104401 | .unused, |
| 102311 | 104402 | .unused, |
| ... | ... | @@ -102314,29 +104405,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102314 | 104405 | .unused, |
| 102315 | 104406 | }, |
| 102316 | 104407 | .dst_temps = .{ .mem, .unused }, |
| 104408 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102317 | 104409 | .each = .{ .once = &.{ |
| 102318 | 104410 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102319 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102320 | | .{ ._, .fi_p, .stt, .tmp2w, ._, ._, ._ }, |
| 102321 | | .{ ._, ._, .movzx, .tmp3d, .tmp2b, ._, ._ }, |
| 102322 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 102323 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 102324 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 104411 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104412 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104413 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104414 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 104415 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104416 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102325 | 104417 | } }, |
| 102326 | 104418 | }, .{ |
| 102327 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 102328 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102329 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104419 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104420 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104421 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 102330 | 104422 | .patterns = &.{ |
| 102331 | 104423 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102332 | 104424 | }, |
| 102333 | | .call_frame = .{ .alignment = .@"16" }, |
| 104425 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102334 | 104426 | .extra_temps = .{ |
| 102335 | 104427 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102336 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102337 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 102338 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102339 | | .unused, |
| 104428 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104429 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104430 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104431 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102340 | 104432 | .unused, |
| 102341 | 104433 | .unused, |
| 102342 | 104434 | .unused, |
| ... | ... | @@ -102348,25 +104440,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102348 | 104440 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102349 | 104441 | .each = .{ .once = &.{ |
| 102350 | 104442 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102351 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102352 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102353 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 102354 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 104443 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104444 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 104445 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104446 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 104447 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 102355 | 104448 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102356 | 104449 | } }, |
| 102357 | 104450 | }, .{ |
| 102358 | | .required_features = .{ .avx, null, null, null }, |
| 102359 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102360 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104451 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104452 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104453 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 102361 | 104454 | .patterns = &.{ |
| 102362 | 104455 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102363 | 104456 | }, |
| 102364 | | .call_frame = .{ .alignment = .@"16" }, |
| 104457 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102365 | 104458 | .extra_temps = .{ |
| 102366 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102367 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102368 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 102369 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104459 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104460 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104461 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104462 | .unused, |
| 102370 | 104463 | .unused, |
| 102371 | 104464 | .unused, |
| 102372 | 104465 | .unused, |
| ... | ... | @@ -102375,29 +104468,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102375 | 104468 | .unused, |
| 102376 | 104469 | .unused, |
| 102377 | 104470 | }, |
| 102378 | | .dst_temps = .{ .mem, .unused }, |
| 104471 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102379 | 104472 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102380 | 104473 | .each = .{ .once = &.{ |
| 102381 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102382 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104474 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104475 | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102383 | 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 }, |
| 102390 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102391 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104479 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104480 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104481 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 102392 | 104482 | .patterns = &.{ |
| 102393 | 104483 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102394 | 104484 | }, |
| 102395 | | .call_frame = .{ .alignment = .@"16" }, |
| 104485 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102396 | 104486 | .extra_temps = .{ |
| 102397 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102398 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102399 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 102400 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104487 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104488 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104489 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104490 | .unused, |
| 102401 | 104491 | .unused, |
| 102402 | 104492 | .unused, |
| 102403 | 104493 | .unused, |
| ... | ... | @@ -102406,29 +104496,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102406 | 104496 | .unused, |
| 102407 | 104497 | .unused, |
| 102408 | 104498 | }, |
| 102409 | | .dst_temps = .{ .mem, .unused }, |
| 104499 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102410 | 104500 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102411 | 104501 | .each = .{ .once = &.{ |
| 102412 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102413 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104502 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104503 | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102414 | 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 }, |
| 102421 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102422 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104507 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104508 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104509 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 102423 | 104510 | .patterns = &.{ |
| 102424 | 104511 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102425 | 104512 | }, |
| 102426 | | .call_frame = .{ .alignment = .@"16" }, |
| 104513 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102427 | 104514 | .extra_temps = .{ |
| 102428 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102429 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102430 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 102431 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104515 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104516 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104517 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104518 | .unused, |
| 102432 | 104519 | .unused, |
| 102433 | 104520 | .unused, |
| 102434 | 104521 | .unused, |
| ... | ... | @@ -102437,29 +104524,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102437 | 104524 | .unused, |
| 102438 | 104525 | .unused, |
| 102439 | 104526 | }, |
| 102440 | | .dst_temps = .{ .mem, .unused }, |
| 104527 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102441 | 104528 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102442 | 104529 | .each = .{ .once = &.{ |
| 102443 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102444 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104530 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104531 | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102445 | 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 }, |
| 102452 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102453 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104535 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104536 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104537 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 102454 | 104538 | .patterns = &.{ |
| 102455 | 104539 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102456 | 104540 | }, |
| 102457 | | .call_frame = .{ .alignment = .@"16" }, |
| 104541 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102458 | 104542 | .extra_temps = .{ |
| 102459 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102460 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102461 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 102462 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104543 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104544 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104545 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104546 | .unused, |
| 102463 | 104547 | .unused, |
| 102464 | 104548 | .unused, |
| 102465 | 104549 | .unused, |
| ... | ... | @@ -102468,30 +104552,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102468 | 104552 | .unused, |
| 102469 | 104553 | .unused, |
| 102470 | 104554 | }, |
| 102471 | | .dst_temps = .{ .mem, .unused }, |
| 104555 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102472 | 104556 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102473 | 104557 | .each = .{ .once = &.{ |
| 102474 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102475 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 102476 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104558 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104559 | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 102477 | 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 }, |
| 102484 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102485 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 104563 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104564 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104565 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 102486 | 104566 | .patterns = &.{ |
| 102487 | 104567 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102488 | 104568 | }, |
| 102489 | | .call_frame = .{ .alignment = .@"16" }, |
| 104569 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102490 | 104570 | .extra_temps = .{ |
| 102491 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102492 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102493 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixsfsi" } } }, |
| 102494 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104571 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104572 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104573 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104574 | .unused, |
| 102495 | 104575 | .unused, |
| 102496 | 104576 | .unused, |
| 102497 | 104577 | .unused, |
| ... | ... | @@ -102500,109 +104580,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102500 | 104580 | .unused, |
| 102501 | 104581 | .unused, |
| 102502 | 104582 | }, |
| 102503 | | .dst_temps = .{ .mem, .unused }, |
| 104583 | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 102504 | 104584 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102505 | 104585 | .each = .{ .once = &.{ |
| 102506 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102507 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 102508 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104586 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| 104587 | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, |
| 102509 | 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 }, |
| 102555 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102556 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .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 }, |
| 104591 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104592 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104593 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 102570 | 104594 | .patterns = &.{ |
| 102571 | | .{ .src = .{ .mem, .none, .none } }, |
| 102572 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104595 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102573 | 104596 | }, |
| 102574 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 102575 | | .each = .{ .once = &.{ |
| 102576 | | .{ ._, ._, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 102577 | | .{ ._, .p_w, .ackusd, .dst0x, .dst0x, ._, ._ }, |
| 102578 | | } }, |
| 102579 | | }, .{ |
| 102580 | | .required_features = .{ .avx, null, null, null }, |
| 102581 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102582 | | .dst_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 102583 | | .patterns = &.{ |
| 102584 | | .{ .src = .{ .mem, .none, .none } }, |
| 102585 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104597 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 104598 | .extra_temps = .{ |
| 104599 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104600 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104601 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104602 | .unused, |
| 104603 | .unused, |
| 104604 | .unused, |
| 104605 | .unused, |
| 104606 | .unused, |
| 104607 | .unused, |
| 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 | 104613 | .each = .{ .once = &.{ |
| 102589 | | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0y, ._, ._ }, |
| 102590 | | .{ ._, .vp_w, .ackusd, .dst0x, .dst0x, .dst0x, ._ }, |
| 104614 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| 104615 | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, |
| 104616 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102591 | 104617 | } }, |
| 102592 | 104618 | }, .{ |
| 102593 | | .required_features = .{ .avx, null, null, null }, |
| 102594 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102595 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 104619 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104620 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104621 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102596 | 104622 | .patterns = &.{ |
| 102597 | 104623 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102598 | 104624 | }, |
| 104625 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102599 | 104626 | .extra_temps = .{ |
| 102600 | 104627 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102601 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 102602 | | .unused, |
| 102603 | | .unused, |
| 102604 | | .unused, |
| 102605 | | .unused, |
| 104628 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104629 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104630 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104631 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104632 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102606 | 104633 | .unused, |
| 102607 | 104634 | .unused, |
| 102608 | 104635 | .unused, |
| ... | ... | @@ -102610,29 +104637,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102610 | 104637 | .unused, |
| 102611 | 104638 | }, |
| 102612 | 104639 | .dst_temps = .{ .mem, .unused }, |
| 102613 | | .clobbers = .{ .eflags = true }, |
| 104640 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102614 | 104641 | .each = .{ .once = &.{ |
| 102615 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102616 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102617 | | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 102618 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 102619 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104642 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104643 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104644 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104645 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 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 | 104649 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102621 | 104650 | } }, |
| 102622 | 104651 | }, .{ |
| 102623 | | .required_features = .{ .sse2, null, null, null }, |
| 102624 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102625 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 104652 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104653 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104654 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102626 | 104655 | .patterns = &.{ |
| 102627 | 104656 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102628 | 104657 | }, |
| 104658 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102629 | 104659 | .extra_temps = .{ |
| 102630 | 104660 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102631 | | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 102632 | | .unused, |
| 102633 | | .unused, |
| 102634 | | .unused, |
| 102635 | | .unused, |
| 104661 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104662 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104663 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104664 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104665 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102636 | 104666 | .unused, |
| 102637 | 104667 | .unused, |
| 102638 | 104668 | .unused, |
| ... | ... | @@ -102640,29 +104670,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102640 | 104670 | .unused, |
| 102641 | 104671 | }, |
| 102642 | 104672 | .dst_temps = .{ .mem, .unused }, |
| 102643 | | .clobbers = .{ .eflags = true }, |
| 104673 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102644 | 104674 | .each = .{ .once = &.{ |
| 102645 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102646 | | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102647 | | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, |
| 102648 | | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 102649 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 104675 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104676 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104677 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104678 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 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 | 104682 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102651 | 104683 | } }, |
| 102652 | 104684 | }, .{ |
| 102653 | | .required_features = .{ .avx, null, null, null }, |
| 102654 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102655 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any }, |
| 104685 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104686 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104687 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102656 | 104688 | .patterns = &.{ |
| 102657 | 104689 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102658 | 104690 | }, |
| 104691 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102659 | 104692 | .extra_temps = .{ |
| 102660 | 104693 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102661 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 102662 | | .unused, |
| 102663 | | .unused, |
| 102664 | | .unused, |
| 102665 | | .unused, |
| 104694 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104695 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104696 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104697 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104698 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102666 | 104699 | .unused, |
| 102667 | 104700 | .unused, |
| 102668 | 104701 | .unused, |
| ... | ... | @@ -102670,29 +104703,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102670 | 104703 | .unused, |
| 102671 | 104704 | }, |
| 102672 | 104705 | .dst_temps = .{ .mem, .unused }, |
| 102673 | | .clobbers = .{ .eflags = true }, |
| 104706 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102674 | 104707 | .each = .{ .once = &.{ |
| 102675 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102676 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102677 | | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 102678 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 102679 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104708 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104709 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104710 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104711 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 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 | 104715 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102681 | 104716 | } }, |
| 102682 | 104717 | }, .{ |
| 102683 | | .required_features = .{ .sse4_1, null, null, null }, |
| 102684 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102685 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any }, |
| 104718 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104719 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104720 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102686 | 104721 | .patterns = &.{ |
| 102687 | 104722 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102688 | 104723 | }, |
| 104724 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102689 | 104725 | .extra_temps = .{ |
| 102690 | 104726 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102691 | | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 102692 | | .unused, |
| 102693 | | .unused, |
| 102694 | | .unused, |
| 102695 | | .unused, |
| 104727 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104728 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104729 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104730 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104731 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102696 | 104732 | .unused, |
| 102697 | 104733 | .unused, |
| 102698 | 104734 | .unused, |
| ... | ... | @@ -102700,29 +104736,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102700 | 104736 | .unused, |
| 102701 | 104737 | }, |
| 102702 | 104738 | .dst_temps = .{ .mem, .unused }, |
| 102703 | | .clobbers = .{ .eflags = true }, |
| 104739 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102704 | 104740 | .each = .{ .once = &.{ |
| 102705 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102706 | | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102707 | | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, |
| 102708 | | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 102709 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 104741 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104742 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104743 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104744 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 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 | 104748 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102711 | 104749 | } }, |
| 102712 | 104750 | }, .{ |
| 102713 | | .required_features = .{ .sse2, null, null, null }, |
| 102714 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102715 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 104751 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104752 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104753 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102716 | 104754 | .patterns = &.{ |
| 102717 | 104755 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102718 | 104756 | }, |
| 104757 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102719 | 104758 | .extra_temps = .{ |
| 102720 | 104759 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102721 | | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 102722 | | .unused, |
| 102723 | | .unused, |
| 102724 | | .unused, |
| 102725 | | .unused, |
| 104760 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104761 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104762 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104763 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104764 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102726 | 104765 | .unused, |
| 102727 | 104766 | .unused, |
| 102728 | 104767 | .unused, |
| ... | ... | @@ -102730,28 +104769,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102730 | 104769 | .unused, |
| 102731 | 104770 | }, |
| 102732 | 104771 | .dst_temps = .{ .mem, .unused }, |
| 102733 | | .clobbers = .{ .eflags = true }, |
| 104772 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102734 | 104773 | .each = .{ .once = &.{ |
| 102735 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102736 | | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102737 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 102738 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 104774 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104775 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104776 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 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 | 104781 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102740 | 104782 | } }, |
| 102741 | 104783 | }, .{ |
| 102742 | | .required_features = .{ .x87, null, null, null }, |
| 102743 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102744 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 104784 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104785 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104786 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102745 | 104787 | .patterns = &.{ |
| 102746 | 104788 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102747 | 104789 | }, |
| 104790 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102748 | 104791 | .extra_temps = .{ |
| 102749 | 104792 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102750 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 102751 | | .unused, |
| 102752 | | .unused, |
| 102753 | | .unused, |
| 102754 | | .unused, |
| 104793 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104794 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104795 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104796 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104797 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102755 | 104798 | .unused, |
| 102756 | 104799 | .unused, |
| 102757 | 104800 | .unused, |
| ... | ... | @@ -102759,26 +104802,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102759 | 104802 | .unused, |
| 102760 | 104803 | }, |
| 102761 | 104804 | .dst_temps = .{ .mem, .unused }, |
| 104805 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102762 | 104806 | .each = .{ .once = &.{ |
| 102763 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102764 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102765 | | .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102766 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 104807 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104808 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104809 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 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 | 104814 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102768 | 104815 | } }, |
| 102769 | 104816 | }, .{ |
| 102770 | | .required_features = .{ .x87, null, null, null }, |
| 102771 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102772 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 104817 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104818 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104819 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102773 | 104820 | .patterns = &.{ |
| 102774 | 104821 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102775 | 104822 | }, |
| 104823 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102776 | 104824 | .extra_temps = .{ |
| 102777 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102778 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 102779 | | .{ .type = .i32, .kind = .mem }, |
| 102780 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 102781 | | .unused, |
| 104825 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104826 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104827 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104828 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104829 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 102782 | 104830 | .unused, |
| 102783 | 104831 | .unused, |
| 102784 | 104832 | .unused, |
| ... | ... | @@ -102787,29 +104835,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102787 | 104835 | .unused, |
| 102788 | 104836 | }, |
| 102789 | 104837 | .dst_temps = .{ .mem, .unused }, |
| 104838 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102790 | 104839 | .each = .{ .once = &.{ |
| 102791 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102792 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 102793 | | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, |
| 102794 | | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 102795 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102796 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 102797 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104840 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104841 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104842 | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104843 | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104844 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102798 | 104845 | } }, |
| 102799 | 104846 | }, .{ |
| 102800 | | .required_features = .{ .avx, null, null, null }, |
| 102801 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102802 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 104847 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104848 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104849 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102803 | 104850 | .patterns = &.{ |
| 102804 | 104851 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102805 | 104852 | }, |
| 102806 | | .call_frame = .{ .alignment = .@"16" }, |
| 104853 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102807 | 104854 | .extra_temps = .{ |
| 102808 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102809 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102810 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 102811 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102812 | | .unused, |
| 104855 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104856 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104857 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104858 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104859 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 102813 | 104860 | .unused, |
| 102814 | 104861 | .unused, |
| 102815 | 104862 | .unused, |
| ... | ... | @@ -102820,27 +104867,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102820 | 104867 | .dst_temps = .{ .mem, .unused }, |
| 102821 | 104868 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102822 | 104869 | .each = .{ .once = &.{ |
| 102823 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102824 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102825 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102826 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102827 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 102828 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104870 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104871 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104872 | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104873 | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104874 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102829 | 104875 | } }, |
| 102830 | 104876 | }, .{ |
| 102831 | | .required_features = .{ .sse2, null, null, null }, |
| 102832 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102833 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 104877 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104878 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104879 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102834 | 104880 | .patterns = &.{ |
| 102835 | 104881 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102836 | 104882 | }, |
| 102837 | | .call_frame = .{ .alignment = .@"16" }, |
| 104883 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102838 | 104884 | .extra_temps = .{ |
| 102839 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102840 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102841 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 102842 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102843 | | .unused, |
| 104885 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104886 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104887 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104888 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104889 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 102844 | 104890 | .unused, |
| 102845 | 104891 | .unused, |
| 102846 | 104892 | .unused, |
| ... | ... | @@ -102851,27 +104897,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102851 | 104897 | .dst_temps = .{ .mem, .unused }, |
| 102852 | 104898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102853 | 104899 | .each = .{ .once = &.{ |
| 102854 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102855 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102856 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102857 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102858 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 102859 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104900 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104901 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104902 | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104903 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104904 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102860 | 104905 | } }, |
| 102861 | 104906 | }, .{ |
| 102862 | | .required_features = .{ .sse, null, null, null }, |
| 102863 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102864 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 104907 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104908 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104909 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102865 | 104910 | .patterns = &.{ |
| 102866 | 104911 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102867 | 104912 | }, |
| 102868 | | .call_frame = .{ .alignment = .@"16" }, |
| 104913 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102869 | 104914 | .extra_temps = .{ |
| 102870 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102871 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 102872 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 102873 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102874 | | .unused, |
| 104915 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104916 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104917 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104918 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104919 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 102875 | 104920 | .unused, |
| 102876 | 104921 | .unused, |
| 102877 | 104922 | .unused, |
| ... | ... | @@ -102882,182 +104927,228 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102882 | 104927 | .dst_temps = .{ .mem, .unused }, |
| 102883 | 104928 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102884 | 104929 | .each = .{ .once = &.{ |
| 102885 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102886 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 102887 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102888 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102889 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 102890 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 102891 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104930 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104931 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104932 | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104933 | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104934 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102892 | 104935 | } }, |
| 102893 | 104936 | }, .{ |
| 102894 | | .required_features = .{ .avx, null, null, null }, |
| 102895 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102896 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 104937 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104938 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104939 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102897 | 104940 | .patterns = &.{ |
| 102898 | | .{ .src = .{ .mem, .none, .none } }, |
| 102899 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104941 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102900 | 104942 | }, |
| 102901 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 102902 | | .each = .{ .once = &.{ |
| 102903 | | .{ ._, .v_, .cvttpd2dq, .dst0x, .src0x, ._, ._ }, |
| 102904 | | } }, |
| 102905 | | }, .{ |
| 102906 | | .required_features = .{ .sse2, null, null, null }, |
| 102907 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102908 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 102909 | | .patterns = &.{ |
| 102910 | | .{ .src = .{ .mem, .none, .none } }, |
| 102911 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104943 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 104944 | .extra_temps = .{ |
| 104945 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104946 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104947 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104948 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104949 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 104950 | .unused, |
| 104951 | .unused, |
| 104952 | .unused, |
| 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 | 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 }, |
| 102919 | | .src_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102920 | | .dst_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 104967 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104968 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104969 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102921 | 104970 | .patterns = &.{ |
| 102922 | | .{ .src = .{ .mem, .none, .none } }, |
| 102923 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 104971 | .{ .src = .{ .to_mem, .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 | 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 }, |
| 102931 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any, .any }, |
| 102932 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 104997 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104998 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104999 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102933 | 105000 | .patterns = &.{ |
| 102934 | 105001 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102935 | 105002 | }, |
| 105003 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102936 | 105004 | .extra_temps = .{ |
| 102937 | 105005 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102938 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 102939 | | .unused, |
| 102940 | | .unused, |
| 102941 | | .unused, |
| 102942 | | .unused, |
| 102943 | | .unused, |
| 105006 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105007 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105008 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105009 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105010 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105011 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 102944 | 105012 | .unused, |
| 102945 | 105013 | .unused, |
| 102946 | 105014 | .unused, |
| 102947 | 105015 | .unused, |
| 102948 | 105016 | }, |
| 102949 | 105017 | .dst_temps = .{ .mem, .unused }, |
| 102950 | | .clobbers = .{ .eflags = true }, |
| 105018 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102951 | 105019 | .each = .{ .once = &.{ |
| 102952 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102953 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102954 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 105020 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105021 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 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 | 105028 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 102956 | 105029 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102957 | 105030 | } }, |
| 102958 | 105031 | }, .{ |
| 102959 | | .required_features = .{ .sse2, null, null, null }, |
| 102960 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102961 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 105032 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 105033 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105034 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102962 | 105035 | .patterns = &.{ |
| 102963 | 105036 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102964 | 105037 | }, |
| 105038 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102965 | 105039 | .extra_temps = .{ |
| 102966 | 105040 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102967 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 102968 | | .unused, |
| 102969 | | .unused, |
| 102970 | | .unused, |
| 102971 | | .unused, |
| 102972 | | .unused, |
| 105041 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105042 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105043 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105044 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105045 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105046 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 102973 | 105047 | .unused, |
| 102974 | 105048 | .unused, |
| 102975 | 105049 | .unused, |
| 102976 | 105050 | .unused, |
| 102977 | 105051 | }, |
| 102978 | 105052 | .dst_temps = .{ .mem, .unused }, |
| 102979 | | .clobbers = .{ .eflags = true }, |
| 105053 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102980 | 105054 | .each = .{ .once = &.{ |
| 102981 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102982 | | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102983 | | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 102984 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105055 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105056 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105057 | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 | 105064 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102986 | 105065 | } }, |
| 102987 | 105066 | }, .{ |
| 102988 | | .required_features = .{ .x87, null, null, null }, |
| 102989 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 102990 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105067 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 105068 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105069 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102991 | 105070 | .patterns = &.{ |
| 102992 | 105071 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102993 | 105072 | }, |
| 105073 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 102994 | 105074 | .extra_temps = .{ |
| 102995 | 105075 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102996 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 102997 | | .unused, |
| 102998 | | .unused, |
| 102999 | | .unused, |
| 103000 | | .unused, |
| 103001 | | .unused, |
| 105076 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105077 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105078 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105079 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105080 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105081 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 103002 | 105082 | .unused, |
| 103003 | 105083 | .unused, |
| 103004 | 105084 | .unused, |
| 103005 | 105085 | .unused, |
| 103006 | 105086 | }, |
| 103007 | 105087 | .dst_temps = .{ .mem, .unused }, |
| 105088 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103008 | 105089 | .each = .{ .once = &.{ |
| 103009 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103010 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103011 | | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103012 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105090 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105091 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105092 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 | 105099 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103014 | 105100 | } }, |
| 103015 | 105101 | }, .{ |
| 103016 | | .required_features = .{ .x87, null, null, null }, |
| 103017 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103018 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105102 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 105103 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105104 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103019 | 105105 | .patterns = &.{ |
| 103020 | 105106 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103021 | 105107 | }, |
| 105108 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 103022 | 105109 | .extra_temps = .{ |
| 103023 | 105110 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103024 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103025 | | .{ .type = .i64, .kind = .mem }, |
| 103026 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103027 | | .unused, |
| 103028 | | .unused, |
| 103029 | | .unused, |
| 105111 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105112 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105113 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105114 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105115 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105116 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 103030 | 105117 | .unused, |
| 103031 | 105118 | .unused, |
| 103032 | 105119 | .unused, |
| 103033 | 105120 | .unused, |
| 103034 | 105121 | }, |
| 103035 | 105122 | .dst_temps = .{ .mem, .unused }, |
| 105123 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103036 | 105124 | .each = .{ .once = &.{ |
| 103037 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103038 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103039 | | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, |
| 103040 | | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 103041 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103042 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105125 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105126 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105127 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105128 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 105129 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 105130 | .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| 105131 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 105132 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 105133 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103043 | 105134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103044 | 105135 | } }, |
| 103045 | 105136 | }, .{ |
| 103046 | | .required_features = .{ .avx, null, null, null }, |
| 103047 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103048 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105137 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105138 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105139 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103049 | 105140 | .patterns = &.{ |
| 103050 | 105141 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103051 | 105142 | }, |
| 103052 | | .call_frame = .{ .alignment = .@"16" }, |
| 105143 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 103053 | 105144 | .extra_temps = .{ |
| 103054 | 105145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103055 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103056 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 103057 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103058 | | .unused, |
| 103059 | | .unused, |
| 103060 | | .unused, |
| 105146 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105147 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105148 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105149 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105150 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105151 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 103061 | 105152 | .unused, |
| 103062 | 105153 | .unused, |
| 103063 | 105154 | .unused, |
| ... | ... | @@ -103066,29 +105157,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103066 | 105157 | .dst_temps = .{ .mem, .unused }, |
| 103067 | 105158 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103068 | 105159 | .each = .{ .once = &.{ |
| 103069 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103070 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103071 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103072 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103073 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105160 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105161 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105162 | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105163 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 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 | 105169 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103075 | 105170 | } }, |
| 103076 | 105171 | }, .{ |
| 103077 | | .required_features = .{ .avx, null, null, null }, |
| 103078 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103079 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105172 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105173 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105174 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103080 | 105175 | .patterns = &.{ |
| 103081 | 105176 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103082 | 105177 | }, |
| 103083 | | .call_frame = .{ .alignment = .@"16" }, |
| 105178 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 103084 | 105179 | .extra_temps = .{ |
| 103085 | 105180 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103086 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103087 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 103088 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103089 | | .unused, |
| 103090 | | .unused, |
| 103091 | | .unused, |
| 105181 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105182 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105183 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105184 | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105185 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105186 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 103092 | 105187 | .unused, |
| 103093 | 105188 | .unused, |
| 103094 | 105189 | .unused, |
| ... | ... | @@ -103097,25 +105192,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103097 | 105192 | .dst_temps = .{ .mem, .unused }, |
| 103098 | 105193 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103099 | 105194 | .each = .{ .once = &.{ |
| 103100 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103101 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103102 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103103 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103104 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105195 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105196 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105197 | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105198 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 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 | 105204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103106 | 105205 | } }, |
| 103107 | 105206 | }, .{ |
| 103108 | | .required_features = .{ .sse2, null, null, null }, |
| 103109 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103110 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105207 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 105208 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105209 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103111 | 105210 | .patterns = &.{ |
| 103112 | 105211 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103113 | 105212 | }, |
| 103114 | 105213 | .call_frame = .{ .alignment = .@"16" }, |
| 103115 | 105214 | .extra_temps = .{ |
| 105215 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103116 | 105216 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103117 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103118 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 105217 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105218 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103119 | 105219 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103120 | 105220 | .unused, |
| 103121 | 105221 | .unused, |
| ... | ... | @@ -103123,32 +105223,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103123 | 105223 | .unused, |
| 103124 | 105224 | .unused, |
| 103125 | 105225 | .unused, |
| 103126 | | .unused, |
| 103127 | 105226 | }, |
| 103128 | 105227 | .dst_temps = .{ .mem, .unused }, |
| 103129 | 105228 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103130 | 105229 | .each = .{ .once = &.{ |
| 103131 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103132 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103133 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103134 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103135 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105230 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105231 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105232 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105233 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105234 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105235 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105236 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 103136 | 105237 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103137 | 105238 | } }, |
| 103138 | 105239 | }, .{ |
| 103139 | | .required_features = .{ .sse2, null, null, null }, |
| 103140 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103141 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105240 | .required_features = .{ .avx, null, null, null }, |
| 105241 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105242 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103142 | 105243 | .patterns = &.{ |
| 103143 | 105244 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103144 | 105245 | }, |
| 103145 | 105246 | .call_frame = .{ .alignment = .@"16" }, |
| 103146 | 105247 | .extra_temps = .{ |
| 105248 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103147 | 105249 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103148 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103149 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 103150 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103151 | | .unused, |
| 105250 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105251 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105252 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103152 | 105253 | .unused, |
| 103153 | 105254 | .unused, |
| 103154 | 105255 | .unused, |
| ... | ... | @@ -103159,25 +105260,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103159 | 105260 | .dst_temps = .{ .mem, .unused }, |
| 103160 | 105261 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103161 | 105262 | .each = .{ .once = &.{ |
| 103162 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103163 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103164 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103165 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103166 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103167 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105263 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105264 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105265 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105266 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105267 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 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 }, |
| 103171 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103172 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105273 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 105274 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105275 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103173 | 105276 | .patterns = &.{ |
| 103174 | 105277 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103175 | 105278 | }, |
| 103176 | 105279 | .call_frame = .{ .alignment = .@"16" }, |
| 103177 | 105280 | .extra_temps = .{ |
| 105281 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103178 | 105282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103179 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103180 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfsi" } } }, |
| 105283 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105284 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 103181 | 105285 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103182 | 105286 | .unused, |
| 103183 | 105287 | .unused, |
| ... | ... | @@ -103185,33 +105289,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103185 | 105289 | .unused, |
| 103186 | 105290 | .unused, |
| 103187 | 105291 | .unused, |
| 103188 | | .unused, |
| 103189 | 105292 | }, |
| 103190 | 105293 | .dst_temps = .{ .mem, .unused }, |
| 103191 | 105294 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103192 | 105295 | .each = .{ .once = &.{ |
| 103193 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103194 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103195 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103196 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103197 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103198 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105296 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105297 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105298 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105299 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105300 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105301 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105302 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 103199 | 105303 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103200 | 105304 | } }, |
| 103201 | 105305 | }, .{ |
| 103202 | | .required_features = .{ .sse, null, null, null }, |
| 103203 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103204 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105306 | .required_features = .{ .sse2, null, null, null }, |
| 105307 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105308 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103205 | 105309 | .patterns = &.{ |
| 103206 | 105310 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103207 | 105311 | }, |
| 103208 | 105312 | .call_frame = .{ .alignment = .@"16" }, |
| 103209 | 105313 | .extra_temps = .{ |
| 105314 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103210 | 105315 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103211 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103212 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfsi" } } }, |
| 103213 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103214 | | .unused, |
| 105316 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105317 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105318 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103215 | 105319 | .unused, |
| 103216 | 105320 | .unused, |
| 103217 | 105321 | .unused, |
| ... | ... | @@ -103222,27 +105326,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103222 | 105326 | .dst_temps = .{ .mem, .unused }, |
| 103223 | 105327 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103224 | 105328 | .each = .{ .once = &.{ |
| 103225 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103226 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103227 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103228 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103229 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103230 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103231 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105329 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105330 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105331 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105332 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105333 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105334 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105335 | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 105336 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 103232 | 105337 | } }, |
| 103233 | 105338 | }, .{ |
| 103234 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103235 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103236 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105339 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 105340 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105341 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103237 | 105342 | .patterns = &.{ |
| 103238 | 105343 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103239 | 105344 | }, |
| 105345 | .call_frame = .{ .alignment = .@"16" }, |
| 103240 | 105346 | .extra_temps = .{ |
| 105347 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103241 | 105348 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103242 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103243 | | .unused, |
| 103244 | | .unused, |
| 103245 | | .unused, |
| 105349 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105350 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105351 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103246 | 105352 | .unused, |
| 103247 | 105353 | .unused, |
| 103248 | 105354 | .unused, |
| ... | ... | @@ -103251,27 +105357,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103251 | 105357 | .unused, |
| 103252 | 105358 | }, |
| 103253 | 105359 | .dst_temps = .{ .mem, .unused }, |
| 103254 | | .clobbers = .{ .eflags = true }, |
| 105360 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103255 | 105361 | .each = .{ .once = &.{ |
| 103256 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103257 | | .{ .@"0:", .v_, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103258 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 103259 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105362 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105363 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105364 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105365 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105366 | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105367 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105368 | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 103260 | 105369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103261 | 105370 | } }, |
| 103262 | 105371 | }, .{ |
| 103263 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103264 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103265 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105372 | .required_features = .{ .sse, null, null, null }, |
| 105373 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105374 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 103266 | 105375 | .patterns = &.{ |
| 103267 | 105376 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103268 | 105377 | }, |
| 105378 | .call_frame = .{ .alignment = .@"16" }, |
| 103269 | 105379 | .extra_temps = .{ |
| 105380 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103270 | 105381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103271 | | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103272 | | .unused, |
| 103273 | | .unused, |
| 103274 | | .unused, |
| 105382 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105383 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105384 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103275 | 105385 | .unused, |
| 103276 | 105386 | .unused, |
| 103277 | 105387 | .unused, |
| ... | ... | @@ -103280,26 +105390,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103280 | 105390 | .unused, |
| 103281 | 105391 | }, |
| 103282 | 105392 | .dst_temps = .{ .mem, .unused }, |
| 103283 | | .clobbers = .{ .eflags = true }, |
| 105393 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103284 | 105394 | .each = .{ .once = &.{ |
| 103285 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103286 | | .{ .@"0:", ._, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103287 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 103288 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103289 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105395 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105396 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105397 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105398 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 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 }, |
| 103293 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103294 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105405 | .required_features = .{ .avx, null, null, null }, |
| 105406 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105407 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103295 | 105408 | .patterns = &.{ |
| 103296 | 105409 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103297 | 105410 | }, |
| 105411 | .call_frame = .{ .alignment = .@"16" }, |
| 103298 | 105412 | .extra_temps = .{ |
| 103299 | 105413 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103300 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103301 | | .unused, |
| 103302 | | .unused, |
| 105414 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105415 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105416 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103303 | 105417 | .unused, |
| 103304 | 105418 | .unused, |
| 103305 | 105419 | .unused, |
| ... | ... | @@ -103309,26 +105423,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103309 | 105423 | .unused, |
| 103310 | 105424 | }, |
| 103311 | 105425 | .dst_temps = .{ .mem, .unused }, |
| 105426 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103312 | 105427 | .each = .{ .once = &.{ |
| 103313 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103314 | | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103315 | | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103316 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105428 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105429 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105430 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105431 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 105432 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103317 | 105433 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103318 | 105434 | } }, |
| 103319 | 105435 | }, .{ |
| 103320 | | .required_features = .{ .avx, null, null, null }, |
| 103321 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103322 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105436 | .required_features = .{ .sse2, null, null, null }, |
| 105437 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105438 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103323 | 105439 | .patterns = &.{ |
| 103324 | 105440 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103325 | 105441 | }, |
| 103326 | 105442 | .call_frame = .{ .alignment = .@"16" }, |
| 103327 | 105443 | .extra_temps = .{ |
| 103328 | 105444 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103329 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103330 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| 103331 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 105445 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105446 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105447 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103332 | 105448 | .unused, |
| 103333 | 105449 | .unused, |
| 103334 | 105450 | .unused, |
| ... | ... | @@ -103340,26 +105456,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103340 | 105456 | .dst_temps = .{ .mem, .unused }, |
| 103341 | 105457 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103342 | 105458 | .each = .{ .once = &.{ |
| 103343 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103344 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105459 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105460 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103345 | 105461 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103346 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103347 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105462 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 105463 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103348 | 105464 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103349 | 105465 | } }, |
| 103350 | 105466 | }, .{ |
| 103351 | | .required_features = .{ .avx, null, null, null }, |
| 103352 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103353 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105467 | .required_features = .{ .sse, null, null, null }, |
| 105468 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105469 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 103354 | 105470 | .patterns = &.{ |
| 103355 | 105471 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103356 | 105472 | }, |
| 103357 | 105473 | .call_frame = .{ .alignment = .@"16" }, |
| 103358 | 105474 | .extra_temps = .{ |
| 103359 | 105475 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103360 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103361 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| 103362 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105476 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105477 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105478 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103363 | 105479 | .unused, |
| 103364 | 105480 | .unused, |
| 103365 | 105481 | .unused, |
| ... | ... | @@ -103371,26 +105487,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103371 | 105487 | .dst_temps = .{ .mem, .unused }, |
| 103372 | 105488 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103373 | 105489 | .each = .{ .once = &.{ |
| 103374 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103375 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105490 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105491 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103376 | 105492 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103377 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103378 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105493 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 105494 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103379 | 105495 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103380 | 105496 | } }, |
| 103381 | 105497 | }, .{ |
| 103382 | | .required_features = .{ .sse2, null, null, null }, |
| 103383 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103384 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105498 | .required_features = .{ .sse, null, null, null }, |
| 105499 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105500 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 103385 | 105501 | .patterns = &.{ |
| 103386 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 105502 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103387 | 105503 | }, |
| 103388 | 105504 | .call_frame = .{ .alignment = .@"16" }, |
| 103389 | 105505 | .extra_temps = .{ |
| 103390 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103391 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103392 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| 103393 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 105506 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105507 | .unused, |
| 105508 | .unused, |
| 105509 | .unused, |
| 103394 | 105510 | .unused, |
| 103395 | 105511 | .unused, |
| 103396 | 105512 | .unused, |
| ... | ... | @@ -103399,29 +105515,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103399 | 105515 | .unused, |
| 103400 | 105516 | .unused, |
| 103401 | 105517 | }, |
| 103402 | | .dst_temps = .{ .mem, .unused }, |
| 105518 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 103403 | 105519 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103404 | 105520 | .each = .{ .once = &.{ |
| 103405 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 105521 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103411 | 105522 | } }, |
| 103412 | 105523 | }, .{ |
| 103413 | | .required_features = .{ .sse2, null, null, null }, |
| 103414 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103415 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105524 | .required_features = .{ .sse, null, null, null }, |
| 105525 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105526 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 103416 | 105527 | .patterns = &.{ |
| 103417 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 105528 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103418 | 105529 | }, |
| 103419 | 105530 | .call_frame = .{ .alignment = .@"16" }, |
| 103420 | 105531 | .extra_temps = .{ |
| 103421 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103422 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103423 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| 103424 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105532 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105533 | .unused, |
| 105534 | .unused, |
| 105535 | .unused, |
| 103425 | 105536 | .unused, |
| 103426 | 105537 | .unused, |
| 103427 | 105538 | .unused, |
| ... | ... | @@ -103430,29 +105541,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103430 | 105541 | .unused, |
| 103431 | 105542 | .unused, |
| 103432 | 105543 | }, |
| 103433 | | .dst_temps = .{ .mem, .unused }, |
| 105544 | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 103434 | 105545 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103435 | 105546 | .each = .{ .once = &.{ |
| 103436 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 105547 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103442 | 105548 | } }, |
| 103443 | 105549 | }, .{ |
| 103444 | | .required_features = .{ .sse, null, null, null }, |
| 103445 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103446 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105550 | .required_features = .{ .avx, null, null, null }, |
| 105551 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105552 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103447 | 105553 | .patterns = &.{ |
| 103448 | 105554 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103449 | 105555 | }, |
| 103450 | 105556 | .call_frame = .{ .alignment = .@"16" }, |
| 103451 | 105557 | .extra_temps = .{ |
| 103452 | 105558 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103453 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103454 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfdi" } } }, |
| 103455 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 105559 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105560 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105561 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103456 | 105562 | .unused, |
| 103457 | 105563 | .unused, |
| 103458 | 105564 | .unused, |
| ... | ... | @@ -103464,27 +105570,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103464 | 105570 | .dst_temps = .{ .mem, .unused }, |
| 103465 | 105571 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103466 | 105572 | .each = .{ .once = &.{ |
| 103467 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103468 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103469 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105573 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105574 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103470 | 105575 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103471 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103472 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105576 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105577 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103473 | 105578 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103474 | 105579 | } }, |
| 103475 | 105580 | }, .{ |
| 103476 | | .required_features = .{ .sse, null, null, null }, |
| 103477 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103478 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105581 | .required_features = .{ .avx, null, null, null }, |
| 105582 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105583 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103479 | 105584 | .patterns = &.{ |
| 103480 | 105585 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103481 | 105586 | }, |
| 103482 | 105587 | .call_frame = .{ .alignment = .@"16" }, |
| 103483 | 105588 | .extra_temps = .{ |
| 103484 | 105589 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103485 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103486 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfdi" } } }, |
| 103487 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105590 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105591 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105592 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 103488 | 105593 | .unused, |
| 103489 | 105594 | .unused, |
| 103490 | 105595 | .unused, |
| ... | ... | @@ -103496,28 +105601,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103496 | 105601 | .dst_temps = .{ .mem, .unused }, |
| 103497 | 105602 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103498 | 105603 | .each = .{ .once = &.{ |
| 103499 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103500 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103501 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105604 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105605 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103502 | 105606 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103503 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103504 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105607 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105608 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103505 | 105609 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103506 | 105610 | } }, |
| 103507 | 105611 | }, .{ |
| 103508 | | .required_features = .{ .avx, null, null, null }, |
| 103509 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103510 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105612 | .required_features = .{ .sse2, null, null, null }, |
| 105613 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105614 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103511 | 105615 | .patterns = &.{ |
| 103512 | 105616 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103513 | 105617 | }, |
| 103514 | 105618 | .call_frame = .{ .alignment = .@"16" }, |
| 103515 | 105619 | .extra_temps = .{ |
| 103516 | 105620 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103517 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103518 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 103519 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103520 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 105621 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105622 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105623 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 105624 | .unused, |
| 103521 | 105625 | .unused, |
| 103522 | 105626 | .unused, |
| 103523 | 105627 | .unused, |
| ... | ... | @@ -103528,28 +105632,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103528 | 105632 | .dst_temps = .{ .mem, .unused }, |
| 103529 | 105633 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103530 | 105634 | .each = .{ .once = &.{ |
| 103531 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103532 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105635 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105636 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103533 | 105637 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103534 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103535 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103536 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105638 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105639 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103537 | 105640 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103538 | 105641 | } }, |
| 103539 | 105642 | }, .{ |
| 103540 | | .required_features = .{ .avx, null, null, null }, |
| 103541 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103542 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105643 | .required_features = .{ .sse2, null, null, null }, |
| 105644 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105645 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103543 | 105646 | .patterns = &.{ |
| 103544 | 105647 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103545 | 105648 | }, |
| 103546 | 105649 | .call_frame = .{ .alignment = .@"16" }, |
| 103547 | 105650 | .extra_temps = .{ |
| 103548 | 105651 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103549 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103550 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 103551 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103552 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 105652 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105653 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105654 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 105655 | .unused, |
| 103553 | 105656 | .unused, |
| 103554 | 105657 | .unused, |
| 103555 | 105658 | .unused, |
| ... | ... | @@ -103560,28 +105663,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103560 | 105663 | .dst_temps = .{ .mem, .unused }, |
| 103561 | 105664 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103562 | 105665 | .each = .{ .once = &.{ |
| 103563 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103564 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105666 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105667 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103565 | 105668 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103566 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103567 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103568 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105669 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105670 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103569 | 105671 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103570 | 105672 | } }, |
| 103571 | 105673 | }, .{ |
| 103572 | | .required_features = .{ .sse2, null, null, null }, |
| 103573 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103574 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105674 | .required_features = .{ .sse, null, null, null }, |
| 105675 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105676 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103575 | 105677 | .patterns = &.{ |
| 103576 | 105678 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103577 | 105679 | }, |
| 103578 | 105680 | .call_frame = .{ .alignment = .@"16" }, |
| 103579 | 105681 | .extra_temps = .{ |
| 103580 | 105682 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103581 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103582 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 103583 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103584 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 105683 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105684 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105685 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 105686 | .unused, |
| 103585 | 105687 | .unused, |
| 103586 | 105688 | .unused, |
| 103587 | 105689 | .unused, |
| ... | ... | @@ -103592,28 +105694,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103592 | 105694 | .dst_temps = .{ .mem, .unused }, |
| 103593 | 105695 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103594 | 105696 | .each = .{ .once = &.{ |
| 103595 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103596 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105697 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105698 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103597 | 105699 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103598 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103599 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103600 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105700 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105701 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103601 | 105702 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103602 | 105703 | } }, |
| 103603 | 105704 | }, .{ |
| 103604 | | .required_features = .{ .sse2, null, null, null }, |
| 103605 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103606 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105705 | .required_features = .{ .sse, null, null, null }, |
| 105706 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105707 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 103607 | 105708 | .patterns = &.{ |
| 103608 | 105709 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103609 | 105710 | }, |
| 103610 | 105711 | .call_frame = .{ .alignment = .@"16" }, |
| 103611 | 105712 | .extra_temps = .{ |
| 103612 | 105713 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103613 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103614 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 103615 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103616 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 105714 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105715 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105716 | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 105717 | .unused, |
| 103617 | 105718 | .unused, |
| 103618 | 105719 | .unused, |
| 103619 | 105720 | .unused, |
| ... | ... | @@ -103624,28 +105725,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103624 | 105725 | .dst_temps = .{ .mem, .unused }, |
| 103625 | 105726 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103626 | 105727 | .each = .{ .once = &.{ |
| 103627 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103628 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105728 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105729 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103629 | 105730 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103630 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103631 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 103632 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105731 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105732 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103633 | 105733 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103634 | 105734 | } }, |
| 103635 | 105735 | }, .{ |
| 103636 | | .required_features = .{ .sse, null, null, null }, |
| 103637 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103638 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105736 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105737 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105738 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 103639 | 105739 | .patterns = &.{ |
| 103640 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 105740 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103641 | 105741 | }, |
| 103642 | 105742 | .call_frame = .{ .alignment = .@"16" }, |
| 103643 | 105743 | .extra_temps = .{ |
| 103644 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103645 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103646 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfti" } } }, |
| 103647 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103648 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 105744 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105745 | .unused, |
| 105746 | .unused, |
| 105747 | .unused, |
| 105748 | .unused, |
| 103649 | 105749 | .unused, |
| 103650 | 105750 | .unused, |
| 103651 | 105751 | .unused, |
| ... | ... | @@ -103653,32 +105753,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103653 | 105753 | .unused, |
| 103654 | 105754 | .unused, |
| 103655 | 105755 | }, |
| 103656 | | .dst_temps = .{ .mem, .unused }, |
| 105756 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 103657 | 105757 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103658 | 105758 | .each = .{ .once = &.{ |
| 103659 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 105759 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103667 | 105760 | } }, |
| 103668 | 105761 | }, .{ |
| 103669 | | .required_features = .{ .sse, null, null, null }, |
| 103670 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103671 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105762 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105763 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105764 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 103672 | 105765 | .patterns = &.{ |
| 103673 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 105766 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103674 | 105767 | }, |
| 103675 | 105768 | .call_frame = .{ .alignment = .@"16" }, |
| 103676 | 105769 | .extra_temps = .{ |
| 103677 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103678 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103679 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfti" } } }, |
| 103680 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103681 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 105770 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105771 | .unused, |
| 105772 | .unused, |
| 105773 | .unused, |
| 105774 | .unused, |
| 103682 | 105775 | .unused, |
| 103683 | 105776 | .unused, |
| 103684 | 105777 | .unused, |
| ... | ... | @@ -103686,33 +105779,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103686 | 105779 | .unused, |
| 103687 | 105780 | .unused, |
| 103688 | 105781 | }, |
| 103689 | | .dst_temps = .{ .mem, .unused }, |
| 105782 | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 103690 | 105783 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103691 | 105784 | .each = .{ .once = &.{ |
| 103692 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 105785 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103700 | 105786 | } }, |
| 103701 | 105787 | }, .{ |
| 103702 | 105788 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103703 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103704 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105789 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105790 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103705 | 105791 | .patterns = &.{ |
| 103706 | 105792 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103707 | 105793 | }, |
| 103708 | 105794 | .call_frame = .{ .alignment = .@"16" }, |
| 103709 | 105795 | .extra_temps = .{ |
| 103710 | 105796 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103711 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103712 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103713 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103714 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103715 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 105797 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105798 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105799 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 105800 | .unused, |
| 105801 | .unused, |
| 103716 | 105802 | .unused, |
| 103717 | 105803 | .unused, |
| 103718 | 105804 | .unused, |
| ... | ... | @@ -103722,31 +105808,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103722 | 105808 | .dst_temps = .{ .mem, .unused }, |
| 103723 | 105809 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103724 | 105810 | .each = .{ .once = &.{ |
| 103725 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103726 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103727 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 103728 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 103729 | | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103730 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 103731 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 105811 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105812 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105813 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105814 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103732 | 105815 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103733 | 105816 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103734 | 105817 | } }, |
| 103735 | 105818 | }, .{ |
| 103736 | 105819 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103737 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103738 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105820 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105821 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103739 | 105822 | .patterns = &.{ |
| 103740 | 105823 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103741 | 105824 | }, |
| 103742 | 105825 | .call_frame = .{ .alignment = .@"16" }, |
| 103743 | 105826 | .extra_temps = .{ |
| 103744 | 105827 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103745 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103746 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103747 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103748 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103749 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 105828 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105829 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105830 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105831 | .unused, |
| 105832 | .unused, |
| 103750 | 105833 | .unused, |
| 103751 | 105834 | .unused, |
| 103752 | 105835 | .unused, |
| ... | ... | @@ -103756,31 +105839,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103756 | 105839 | .dst_temps = .{ .mem, .unused }, |
| 103757 | 105840 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103758 | 105841 | .each = .{ .once = &.{ |
| 103759 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103760 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103761 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 103762 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 103763 | | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103764 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 103765 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 105842 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105843 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105844 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105845 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103766 | 105846 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103767 | 105847 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103768 | 105848 | } }, |
| 103769 | 105849 | }, .{ |
| 103770 | 105850 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103771 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103772 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105851 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105852 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103773 | 105853 | .patterns = &.{ |
| 103774 | 105854 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103775 | 105855 | }, |
| 103776 | 105856 | .call_frame = .{ .alignment = .@"16" }, |
| 103777 | 105857 | .extra_temps = .{ |
| 103778 | 105858 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103779 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103780 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103781 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103782 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103783 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 105859 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105860 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105861 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 105862 | .unused, |
| 105863 | .unused, |
| 103784 | 105864 | .unused, |
| 103785 | 105865 | .unused, |
| 103786 | 105866 | .unused, |
| ... | ... | @@ -103790,31 +105870,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103790 | 105870 | .dst_temps = .{ .mem, .unused }, |
| 103791 | 105871 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103792 | 105872 | .each = .{ .once = &.{ |
| 103793 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103794 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103795 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 103796 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 103797 | | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103798 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 103799 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 105873 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105874 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105875 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105876 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103800 | 105877 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103801 | 105878 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103802 | 105879 | } }, |
| 103803 | 105880 | }, .{ |
| 103804 | 105881 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103805 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103806 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105882 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105883 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103807 | 105884 | .patterns = &.{ |
| 103808 | 105885 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103809 | 105886 | }, |
| 103810 | 105887 | .call_frame = .{ .alignment = .@"16" }, |
| 103811 | 105888 | .extra_temps = .{ |
| 103812 | 105889 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103813 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103814 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103815 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103816 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103817 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 105890 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105891 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105892 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105893 | .unused, |
| 105894 | .unused, |
| 103818 | 105895 | .unused, |
| 103819 | 105896 | .unused, |
| 103820 | 105897 | .unused, |
| ... | ... | @@ -103824,31 +105901,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103824 | 105901 | .dst_temps = .{ .mem, .unused }, |
| 103825 | 105902 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103826 | 105903 | .each = .{ .once = &.{ |
| 103827 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103828 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103829 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 103830 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 103831 | | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103832 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 103833 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 105904 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105905 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105906 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105907 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103834 | 105908 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103835 | 105909 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103836 | 105910 | } }, |
| 103837 | 105911 | }, .{ |
| 103838 | 105912 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103839 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103840 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105913 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105914 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103841 | 105915 | .patterns = &.{ |
| 103842 | 105916 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103843 | 105917 | }, |
| 103844 | 105918 | .call_frame = .{ .alignment = .@"16" }, |
| 103845 | 105919 | .extra_temps = .{ |
| 103846 | 105920 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103847 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103848 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103849 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103850 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103851 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixdfei" } } }, |
| 105921 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105922 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105923 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 105924 | .unused, |
| 105925 | .unused, |
| 103852 | 105926 | .unused, |
| 103853 | 105927 | .unused, |
| 103854 | 105928 | .unused, |
| ... | ... | @@ -103858,32 +105932,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103858 | 105932 | .dst_temps = .{ .mem, .unused }, |
| 103859 | 105933 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103860 | 105934 | .each = .{ .once = &.{ |
| 103861 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103862 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103863 | | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 103864 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 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), ._, ._ }, |
| 105935 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105936 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105937 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105938 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103869 | 105939 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103870 | 105940 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103871 | 105941 | } }, |
| 103872 | 105942 | }, .{ |
| 103873 | 105943 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103874 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 103875 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 105944 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105945 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103876 | 105946 | .patterns = &.{ |
| 103877 | 105947 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103878 | 105948 | }, |
| 103879 | 105949 | .call_frame = .{ .alignment = .@"16" }, |
| 103880 | 105950 | .extra_temps = .{ |
| 103881 | 105951 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103882 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103883 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103884 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103885 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 103886 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsdfei" } } }, |
| 105952 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105953 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105954 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105955 | .unused, |
| 105956 | .unused, |
| 103887 | 105957 | .unused, |
| 103888 | 105958 | .unused, |
| 103889 | 105959 | .unused, |
| ... | ... | @@ -103893,28 +105963,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103893 | 105963 | .dst_temps = .{ .mem, .unused }, |
| 103894 | 105964 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103895 | 105965 | .each = .{ .once = &.{ |
| 103896 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103897 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103898 | | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 103899 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 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), ._, ._ }, |
| 105966 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105967 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105968 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105969 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 103904 | 105970 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103905 | 105971 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103906 | 105972 | } }, |
| 103907 | 105973 | }, .{ |
| 103908 | | .required_features = .{ .x87, null, null, null }, |
| 103909 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 103910 | | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 105974 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105975 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105976 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 103911 | 105977 | .patterns = &.{ |
| 103912 | | .{ .src = .{ .mem, .none, .none } }, |
| 103913 | | .{ .src = .{ .to_x87, .none, .none } }, |
| 105978 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103914 | 105979 | }, |
| 105980 | .call_frame = .{ .alignment = .@"16" }, |
| 103915 | 105981 | .extra_temps = .{ |
| 103916 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103917 | | .{ .type = .i16, .kind = .mem }, |
| 105982 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 105983 | .unused, |
| 103918 | 105984 | .unused, |
| 103919 | 105985 | .unused, |
| 103920 | 105986 | .unused, |
| ... | ... | @@ -103925,23 +105991,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103925 | 105991 | .unused, |
| 103926 | 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 | 105996 | .each = .{ .once = &.{ |
| 103930 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 103931 | | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 103932 | | .{ ._, ._, .movsx, .dst0d, .tmp1b, ._, ._ }, |
| 105997 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103933 | 105998 | } }, |
| 103934 | 105999 | }, .{ |
| 103935 | | .required_features = .{ .x87, null, null, null }, |
| 103936 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 103937 | | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 106000 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106001 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106002 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 103938 | 106003 | .patterns = &.{ |
| 103939 | | .{ .src = .{ .mem, .none, .none } }, |
| 103940 | | .{ .src = .{ .to_x87, .none, .none } }, |
| 106004 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103941 | 106005 | }, |
| 106006 | .call_frame = .{ .alignment = .@"16" }, |
| 103942 | 106007 | .extra_temps = .{ |
| 103943 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103944 | | .{ .type = .i16, .kind = .mem }, |
| 106008 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106009 | .unused, |
| 103945 | 106010 | .unused, |
| 103946 | 106011 | .unused, |
| 103947 | 106012 | .unused, |
| ... | ... | @@ -103952,25 +106017,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103952 | 106017 | .unused, |
| 103953 | 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 | 106022 | .each = .{ .once = &.{ |
| 103957 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 103958 | | .{ ._, .fi_p, .stt, .tmp1w, ._, ._, ._ }, |
| 103959 | | .{ ._, ._, .movzx, .dst0d, .tmp1b, ._, ._ }, |
| 106023 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103960 | 106024 | } }, |
| 103961 | 106025 | }, .{ |
| 103962 | | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 103963 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 103964 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 106026 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106027 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106028 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 103965 | 106029 | .patterns = &.{ |
| 103966 | 106030 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103967 | 106031 | }, |
| 106032 | .call_frame = .{ .alignment = .@"16" }, |
| 103968 | 106033 | .extra_temps = .{ |
| 103969 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103970 | 106034 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103971 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 103972 | | .{ .type = .i16, .kind = .mem }, |
| 103973 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 106035 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106036 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 106037 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106038 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 103974 | 106039 | .unused, |
| 103975 | 106040 | .unused, |
| 103976 | 106041 | .unused, |
| ... | ... | @@ -103979,31 +106044,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103979 | 106044 | .unused, |
| 103980 | 106045 | }, |
| 103981 | 106046 | .dst_temps = .{ .mem, .unused }, |
| 103982 | | .clobbers = .{ .eflags = true }, |
| 106047 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103983 | 106048 | .each = .{ .once = &.{ |
| 103984 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 103985 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103986 | | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 103987 | | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 103988 | | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 103989 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 103990 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 103991 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 106049 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106050 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106051 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106052 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106053 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106054 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103992 | 106055 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103993 | 106056 | } }, |
| 103994 | 106057 | }, .{ |
| 103995 | | .required_features = .{ .x87, null, null, null }, |
| 103996 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 103997 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 106058 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106059 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106060 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 103998 | 106061 | .patterns = &.{ |
| 103999 | 106062 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104000 | 106063 | }, |
| 106064 | .call_frame = .{ .alignment = .@"16" }, |
| 104001 | 106065 | .extra_temps = .{ |
| 104002 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104003 | 106066 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104004 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104005 | | .{ .type = .i16, .kind = .mem }, |
| 104006 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 106067 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106068 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106069 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106070 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104007 | 106071 | .unused, |
| 104008 | 106072 | .unused, |
| 104009 | 106073 | .unused, |
| ... | ... | @@ -104012,31 +106076,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104012 | 106076 | .unused, |
| 104013 | 106077 | }, |
| 104014 | 106078 | .dst_temps = .{ .mem, .unused }, |
| 104015 | | .clobbers = .{ .eflags = true }, |
| 106079 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104016 | 106080 | .each = .{ .once = &.{ |
| 104017 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104018 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104019 | | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104020 | | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104021 | | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 104022 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104023 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104024 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 104025 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 106081 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106082 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106083 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106084 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106085 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106086 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106087 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104026 | 106088 | } }, |
| 104027 | 106089 | }, .{ |
| 104028 | | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 104029 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104030 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 106090 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106091 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106092 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104031 | 106093 | .patterns = &.{ |
| 104032 | 106094 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104033 | 106095 | }, |
| 106096 | .call_frame = .{ .alignment = .@"16" }, |
| 104034 | 106097 | .extra_temps = .{ |
| 104035 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104036 | 106098 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104037 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104038 | | .{ .type = .i16, .kind = .mem }, |
| 104039 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 106099 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106100 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 106101 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106102 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 104040 | 106103 | .unused, |
| 104041 | 106104 | .unused, |
| 104042 | 106105 | .unused, |
| ... | ... | @@ -104045,65 +106108,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104045 | 106108 | .unused, |
| 104046 | 106109 | }, |
| 104047 | 106110 | .dst_temps = .{ .mem, .unused }, |
| 104048 | | .clobbers = .{ .eflags = true }, |
| 106111 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104049 | 106112 | .each = .{ .once = &.{ |
| 104050 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104051 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104052 | | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104053 | | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104054 | | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, |
| 104055 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104056 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104057 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 106113 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106114 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106115 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106116 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106117 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106118 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104058 | 106119 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104059 | 106120 | } }, |
| 104060 | 106121 | }, .{ |
| 104061 | | .required_features = .{ .x87, null, null, null }, |
| 104062 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104063 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 106122 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106123 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106124 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104064 | 106125 | .patterns = &.{ |
| 104065 | 106126 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104066 | 106127 | }, |
| 106128 | .call_frame = .{ .alignment = .@"16" }, |
| 104067 | 106129 | .extra_temps = .{ |
| 104068 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104069 | 106130 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104070 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104071 | | .{ .type = .i16, .kind = .mem }, |
| 104072 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 104073 | | .unused, |
| 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, |
| 106131 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106132 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106133 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106134 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104107 | 106135 | .unused, |
| 104108 | 106136 | .unused, |
| 104109 | 106137 | .unused, |
| ... | ... | @@ -104112,23 +106140,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104112 | 106140 | .unused, |
| 104113 | 106141 | }, |
| 104114 | 106142 | .dst_temps = .{ .mem, .unused }, |
| 106143 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104115 | 106144 | .each = .{ .once = &.{ |
| 104116 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 104117 | | .{ ._, .fi_p, .stt, .dst0w, ._, ._, ._ }, |
| 106145 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 104121 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104122 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| 106154 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106155 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106156 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104123 | 106157 | .patterns = &.{ |
| 104124 | 106158 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104125 | 106159 | }, |
| 106160 | .call_frame = .{ .alignment = .@"16" }, |
| 104126 | 106161 | .extra_temps = .{ |
| 104127 | 106162 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104128 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104129 | | .unused, |
| 104130 | | .unused, |
| 104131 | | .unused, |
| 106163 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106164 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 106165 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106166 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 104132 | 106167 | .unused, |
| 104133 | 106168 | .unused, |
| 104134 | 106169 | .unused, |
| ... | ... | @@ -104137,27 +106172,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104137 | 106172 | .unused, |
| 104138 | 106173 | }, |
| 104139 | 106174 | .dst_temps = .{ .mem, .unused }, |
| 104140 | | .clobbers = .{ .eflags = true }, |
| 106175 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104141 | 106176 | .each = .{ .once = &.{ |
| 104142 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104143 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104144 | | .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104145 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106177 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106178 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106179 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 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 | 106183 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104147 | 106184 | } }, |
| 104148 | 106185 | }, .{ |
| 104149 | | .required_features = .{ .x87, null, null, null }, |
| 104150 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104151 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| 106186 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106187 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106188 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104152 | 106189 | .patterns = &.{ |
| 104153 | 106190 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104154 | 106191 | }, |
| 106192 | .call_frame = .{ .alignment = .@"16" }, |
| 104155 | 106193 | .extra_temps = .{ |
| 104156 | 106194 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104157 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104158 | | .{ .type = .i32, .kind = .mem }, |
| 104159 | | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 104160 | | .unused, |
| 106195 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106196 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106197 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106198 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104161 | 106199 | .unused, |
| 104162 | 106200 | .unused, |
| 104163 | 106201 | .unused, |
| ... | ... | @@ -104166,28 +106204,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104166 | 106204 | .unused, |
| 104167 | 106205 | }, |
| 104168 | 106206 | .dst_temps = .{ .mem, .unused }, |
| 104169 | | .clobbers = .{ .eflags = true }, |
| 106207 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104170 | 106208 | .each = .{ .once = &.{ |
| 104171 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104172 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104173 | | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, |
| 104174 | | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 104175 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 104176 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106209 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106210 | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106211 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106212 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106213 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106214 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104177 | 106215 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104178 | 106216 | } }, |
| 104179 | 106217 | }, .{ |
| 104180 | | .required_features = .{ .x87, null, null, null }, |
| 104181 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104182 | | .dst_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any }, |
| 106218 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106219 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106220 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104183 | 106221 | .patterns = &.{ |
| 104184 | | .{ .src = .{ .mem, .none, .none } }, |
| 104185 | | .{ .src = .{ .to_x87, .none, .none } }, |
| 106222 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 104186 | 106223 | }, |
| 106224 | .call_frame = .{ .alignment = .@"16" }, |
| 104187 | 106225 | .extra_temps = .{ |
| 104188 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104189 | | .unused, |
| 104190 | | .unused, |
| 106226 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106227 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106228 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104191 | 106229 | .unused, |
| 104192 | 106230 | .unused, |
| 104193 | 106231 | .unused, |
| ... | ... | @@ -104198,21 +106236,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104198 | 106236 | .unused, |
| 104199 | 106237 | }, |
| 104200 | 106238 | .dst_temps = .{ .mem, .unused }, |
| 106239 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104201 | 106240 | .each = .{ .once = &.{ |
| 104202 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 104203 | | .{ ._, .fi_p, .stt, .dst0d, ._, ._, ._ }, |
| 106241 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 106242 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106243 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104204 | 106244 | } }, |
| 104205 | 106245 | }, .{ |
| 104206 | | .required_features = .{ .x87, null, null, null }, |
| 104207 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104208 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106246 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106247 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106248 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104209 | 106249 | .patterns = &.{ |
| 104210 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 106250 | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 104211 | 106251 | }, |
| 106252 | .call_frame = .{ .alignment = .@"16" }, |
| 104212 | 106253 | .extra_temps = .{ |
| 104213 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104214 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104215 | | .unused, |
| 106254 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106255 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106256 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104216 | 106257 | .unused, |
| 104217 | 106258 | .unused, |
| 104218 | 106259 | .unused, |
| ... | ... | @@ -104223,60 +106264,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104223 | 106264 | .unused, |
| 104224 | 106265 | }, |
| 104225 | 106266 | .dst_temps = .{ .mem, .unused }, |
| 104226 | | .clobbers = .{ .eflags = true }, |
| 106267 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104227 | 106268 | .each = .{ .once = &.{ |
| 104228 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104229 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104230 | | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104231 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 104232 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106269 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 106270 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106271 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104233 | 106272 | } }, |
| 104234 | 106273 | }, .{ |
| 104235 | | .required_features = .{ .x87, null, null, null }, |
| 104236 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104237 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106274 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106275 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106276 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104238 | 106277 | .patterns = &.{ |
| 104239 | 106278 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104240 | 106279 | }, |
| 106280 | .call_frame = .{ .alignment = .@"16" }, |
| 104241 | 106281 | .extra_temps = .{ |
| 104242 | 106282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104243 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104244 | | .{ .type = .i64, .kind = .mem }, |
| 104245 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104246 | | .unused, |
| 104247 | | .unused, |
| 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, |
| 106283 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106284 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106285 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106286 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106287 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104280 | 106288 | .unused, |
| 104281 | 106289 | .unused, |
| 104282 | 106290 | .unused, |
| ... | ... | @@ -104284,60 +106292,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104284 | 106292 | .unused, |
| 104285 | 106293 | }, |
| 104286 | 106294 | .dst_temps = .{ .mem, .unused }, |
| 106295 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104287 | 106296 | .each = .{ .once = &.{ |
| 104288 | | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 104289 | | .{ ._, .fi_p, .stt, .dst0q, ._, ._, ._ }, |
| 104290 | | } }, |
| 104291 | | }, .{ |
| 104292 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 104293 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104294 | | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 104295 | | .patterns = &.{ |
| 104296 | | .{ .src = .{ .mem, .none, .none } }, |
| 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, ._, ._ }, |
| 106297 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106298 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106299 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106300 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106301 | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106302 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106303 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106304 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106305 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104326 | 106306 | } }, |
| 104327 | 106307 | }, .{ |
| 104328 | | .required_features = .{ .x87, null, null, null }, |
| 104329 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104330 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 106308 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106309 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106310 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104331 | 106311 | .patterns = &.{ |
| 104332 | 106312 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104333 | 106313 | }, |
| 106314 | .call_frame = .{ .alignment = .@"16" }, |
| 104334 | 106315 | .extra_temps = .{ |
| 104335 | 106316 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104336 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104337 | | .unused, |
| 104338 | | .unused, |
| 104339 | | .unused, |
| 104340 | | .unused, |
| 106317 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106318 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106319 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106320 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106321 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104341 | 106322 | .unused, |
| 104342 | 106323 | .unused, |
| 104343 | 106324 | .unused, |
| ... | ... | @@ -104345,29 +106326,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104345 | 106326 | .unused, |
| 104346 | 106327 | }, |
| 104347 | 106328 | .dst_temps = .{ .mem, .unused }, |
| 104348 | | .clobbers = .{ .eflags = true }, |
| 106329 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104349 | 106330 | .each = .{ .once = &.{ |
| 104350 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104351 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104352 | | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104353 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 106331 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106332 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106333 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 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 | 106339 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104355 | 106340 | } }, |
| 104356 | 106341 | }, .{ |
| 104357 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104358 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104359 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 106342 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106343 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106344 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104360 | 106345 | .patterns = &.{ |
| 104361 | 106346 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104362 | 106347 | }, |
| 104363 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106348 | .call_frame = .{ .alignment = .@"16" }, |
| 104364 | 106349 | .extra_temps = .{ |
| 104365 | 106350 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104366 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104367 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104368 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104369 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104370 | | .unused, |
| 106351 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106352 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106353 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106354 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106355 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104371 | 106356 | .unused, |
| 104372 | 106357 | .unused, |
| 104373 | 106358 | .unused, |
| ... | ... | @@ -104377,29 +106362,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104377 | 106362 | .dst_temps = .{ .mem, .unused }, |
| 104378 | 106363 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104379 | 106364 | .each = .{ .once = &.{ |
| 104380 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104381 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104382 | | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104383 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104384 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 104385 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 106365 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106366 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106367 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106368 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106369 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106370 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106371 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106372 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104386 | 106373 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104387 | 106374 | } }, |
| 104388 | 106375 | }, .{ |
| 104389 | 106376 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104390 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104391 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 106377 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106378 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104392 | 106379 | .patterns = &.{ |
| 104393 | 106380 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104394 | 106381 | }, |
| 104395 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106382 | .call_frame = .{ .alignment = .@"16" }, |
| 104396 | 106383 | .extra_temps = .{ |
| 104397 | 106384 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104398 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104399 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104400 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104401 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104402 | | .unused, |
| 106385 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106386 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106387 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106388 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106389 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104403 | 106390 | .unused, |
| 104404 | 106391 | .unused, |
| 104405 | 106392 | .unused, |
| ... | ... | @@ -104409,29 +106396,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104409 | 106396 | .dst_temps = .{ .mem, .unused }, |
| 104410 | 106397 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104411 | 106398 | .each = .{ .once = &.{ |
| 104412 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104413 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104414 | | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104415 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104416 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 104417 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 106399 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106400 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106401 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106402 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106403 | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106404 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106405 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106406 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104418 | 106407 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104419 | 106408 | } }, |
| 104420 | 106409 | }, .{ |
| 104421 | 106410 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104422 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104423 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 106411 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106412 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104424 | 106413 | .patterns = &.{ |
| 104425 | 106414 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104426 | 106415 | }, |
| 104427 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106416 | .call_frame = .{ .alignment = .@"16" }, |
| 104428 | 106417 | .extra_temps = .{ |
| 104429 | 106418 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104430 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104431 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104432 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104433 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104434 | | .unused, |
| 106419 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106420 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106421 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106422 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106423 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 104435 | 106424 | .unused, |
| 104436 | 106425 | .unused, |
| 104437 | 106426 | .unused, |
| ... | ... | @@ -104441,54 +106430,77 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104441 | 106430 | .dst_temps = .{ .mem, .unused }, |
| 104442 | 106431 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104443 | 106432 | .each = .{ .once = &.{ |
| 104444 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104445 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104446 | | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 104447 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104448 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 104449 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 106433 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106434 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106435 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106436 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106437 | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106438 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106439 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106440 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104450 | 106441 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104451 | 106442 | } }, |
| 104452 | 106443 | }, .{ |
| 104453 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104454 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104455 | | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 106444 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106445 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106446 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 104456 | 106447 | .patterns = &.{ |
| 104457 | 106448 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104458 | 106449 | }, |
| 104459 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106450 | .call_frame = .{ .alignment = .@"16" }, |
| 104460 | 106451 | .extra_temps = .{ |
| 104461 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104462 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104463 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104464 | | .unused, |
| 104465 | | .unused, |
| 104466 | | .unused, |
| 106452 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106453 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106454 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106455 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106456 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106457 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 104467 | 106458 | .unused, |
| 104468 | 106459 | .unused, |
| 104469 | 106460 | .unused, |
| 104470 | 106461 | .unused, |
| 104471 | 106462 | .unused, |
| 104472 | 106463 | }, |
| 104473 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 106464 | .dst_temps = .{ .mem, .unused }, |
| 104474 | 106465 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104475 | 106466 | .each = .{ .once = &.{ |
| 104476 | | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104477 | | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 104478 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106467 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106468 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 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 | | }, .{ |
| 104481 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104482 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104483 | | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 106477 | } }) catch |err| switch (err) { |
| 106478 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| 106479 | @tagName(air_tag), |
| 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 | 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 | 106500 | .extra_temps = .{ |
| 104489 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104490 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104491 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 106501 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106502 | .unused, |
| 106503 | .unused, |
| 104492 | 106504 | .unused, |
| 104493 | 106505 | .unused, |
| 104494 | 106506 | .unused, |
| ... | ... | @@ -104498,25 +106510,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104498 | 106510 | .unused, |
| 104499 | 106511 | .unused, |
| 104500 | 106512 | }, |
| 104501 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 104502 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106513 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104503 | 106514 | .each = .{ .once = &.{ |
| 104504 | | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104505 | | .{ ._, .v_dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 104506 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106515 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 106516 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106517 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 106518 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104507 | 106519 | } }, |
| 104508 | 106520 | }, .{ |
| 104509 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104510 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104511 | | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 106521 | .required_features = .{ .f16c, null, null, null }, |
| 106522 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 106523 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104512 | 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 | 106528 | .extra_temps = .{ |
| 104517 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104518 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104519 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 106529 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106530 | .unused, |
| 106531 | .unused, |
| 104520 | 106532 | .unused, |
| 104521 | 106533 | .unused, |
| 104522 | 106534 | .unused, |
| ... | ... | @@ -104526,25 +106538,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104526 | 106538 | .unused, |
| 104527 | 106539 | .unused, |
| 104528 | 106540 | }, |
| 104529 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 104530 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106541 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104531 | 106542 | .each = .{ .once = &.{ |
| 104532 | | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104533 | | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 104534 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106543 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 106544 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106545 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 106546 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104535 | 106547 | } }, |
| 104536 | 106548 | }, .{ |
| 104537 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104538 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104539 | | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 106549 | .required_features = .{ .f16c, null, null, null }, |
| 106550 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 106551 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104540 | 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 | 106556 | .extra_temps = .{ |
| 104545 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104546 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104547 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 106557 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106558 | .unused, |
| 106559 | .unused, |
| 104548 | 106560 | .unused, |
| 104549 | 106561 | .unused, |
| 104550 | 106562 | .unused, |
| ... | ... | @@ -104554,25 +106566,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104554 | 106566 | .unused, |
| 104555 | 106567 | .unused, |
| 104556 | 106568 | }, |
| 104557 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 104558 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106569 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104559 | 106570 | .each = .{ .once = &.{ |
| 104560 | | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| 104561 | | .{ ._, ._dqa, .mov, .tmp1x, .tmp0x, ._, ._ }, |
| 104562 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106571 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 106572 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106573 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 106574 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104563 | 106575 | } }, |
| 104564 | 106576 | }, .{ |
| 104565 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104566 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104567 | | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 106577 | .required_features = .{ .f16c, null, null, null }, |
| 106578 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 106579 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104568 | 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 | 106584 | .extra_temps = .{ |
| 104573 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104574 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104575 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 106585 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106586 | .unused, |
| 106587 | .unused, |
| 104576 | 106588 | .unused, |
| 104577 | 106589 | .unused, |
| 104578 | 106590 | .unused, |
| ... | ... | @@ -104582,25 +106594,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104582 | 106594 | .unused, |
| 104583 | 106595 | .unused, |
| 104584 | 106596 | }, |
| 104585 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 104586 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106597 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104587 | 106598 | .each = .{ .once = &.{ |
| 104588 | | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| 104589 | | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, |
| 104590 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106599 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 106600 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106601 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 106602 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104591 | 106603 | } }, |
| 104592 | 106604 | }, .{ |
| 104593 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104594 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104595 | | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 106605 | .required_features = .{ .f16c, null, null, null }, |
| 106606 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 106607 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104596 | 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 | 106626 | .extra_temps = .{ |
| 104601 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104602 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104603 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 106627 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106628 | .unused, |
| 106629 | .unused, |
| 104604 | 106630 | .unused, |
| 104605 | 106631 | .unused, |
| 104606 | 106632 | .unused, |
| ... | ... | @@ -104610,225 +106636,185 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104610 | 106636 | .unused, |
| 104611 | 106637 | .unused, |
| 104612 | 106638 | }, |
| 104613 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 104614 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106639 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104615 | 106640 | .each = .{ .once = &.{ |
| 104616 | | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| 104617 | | .{ ._, ._ps, .mova, .tmp1x, .tmp0x, ._, ._ }, |
| 104618 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106641 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 106642 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106643 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, |
| 106644 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104619 | 106645 | } }, |
| 104620 | 106646 | }, .{ |
| 104621 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104622 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104623 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106647 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 106648 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 106649 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104624 | 106650 | .patterns = &.{ |
| 104625 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 104626 | | }, |
| 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, |
| 106651 | .{ .src = .{ .mem, .none, .none } }, |
| 106652 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104640 | 106653 | }, |
| 104641 | | .dst_temps = .{ .mem, .unused }, |
| 104642 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106654 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 104643 | 106655 | .each = .{ .once = &.{ |
| 104644 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104645 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104646 | | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 106656 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106657 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| 106658 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 104652 | 106659 | } }, |
| 104653 | 106660 | }, .{ |
| 104654 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104655 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104656 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106661 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 106662 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 106663 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104657 | 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 | 106667 | .extra_temps = .{ |
| 104662 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104663 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104664 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104665 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104666 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104667 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 106668 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 106669 | .unused, |
| 106670 | .unused, |
| 106671 | .unused, |
| 106672 | .unused, |
| 106673 | .unused, |
| 104668 | 106674 | .unused, |
| 104669 | 106675 | .unused, |
| 104670 | 106676 | .unused, |
| 104671 | 106677 | .unused, |
| 104672 | 106678 | .unused, |
| 104673 | 106679 | }, |
| 104674 | | .dst_temps = .{ .mem, .unused }, |
| 104675 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106680 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 106681 | .clobbers = .{ .eflags = true }, |
| 104676 | 106682 | .each = .{ .once = &.{ |
| 104677 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104678 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104679 | | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 104680 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104681 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 104682 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 104683 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 104684 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106683 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106684 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 106685 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 106686 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 106687 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 106688 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| 106689 | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, |
| 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 }, |
| 104688 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104689 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106697 | .required_features = .{ .sse, null, null, null }, |
| 106698 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 106699 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104690 | 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 | 106704 | .extra_temps = .{ |
| 104695 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104696 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104697 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104698 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104699 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104700 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 106705 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106706 | .unused, |
| 106707 | .unused, |
| 106708 | .unused, |
| 106709 | .unused, |
| 106710 | .unused, |
| 104701 | 106711 | .unused, |
| 104702 | 106712 | .unused, |
| 104703 | 106713 | .unused, |
| 104704 | 106714 | .unused, |
| 104705 | 106715 | .unused, |
| 104706 | 106716 | }, |
| 104707 | | .dst_temps = .{ .mem, .unused }, |
| 106717 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104708 | 106718 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104709 | 106719 | .each = .{ .once = &.{ |
| 104710 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104711 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 106720 | .{ ._, ._, .movsx, .src0d, .src0b, ._, ._ }, |
| 106721 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104718 | 106722 | } }, |
| 104719 | 106723 | }, .{ |
| 104720 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104721 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104722 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106724 | .required_features = .{ .sse, null, null, null }, |
| 106725 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 106726 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104723 | 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 | 106731 | .extra_temps = .{ |
| 104728 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104729 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104730 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104731 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104732 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104733 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 106732 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106733 | .unused, |
| 106734 | .unused, |
| 106735 | .unused, |
| 106736 | .unused, |
| 106737 | .unused, |
| 104734 | 106738 | .unused, |
| 104735 | 106739 | .unused, |
| 104736 | 106740 | .unused, |
| 104737 | 106741 | .unused, |
| 104738 | 106742 | .unused, |
| 104739 | 106743 | }, |
| 104740 | | .dst_temps = .{ .mem, .unused }, |
| 106744 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104741 | 106745 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104742 | 106746 | .each = .{ .once = &.{ |
| 104743 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104744 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 106747 | .{ ._, ._, .movzx, .src0d, .src0b, ._, ._ }, |
| 106748 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104751 | 106749 | } }, |
| 104752 | 106750 | }, .{ |
| 104753 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104754 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104755 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106751 | .required_features = .{ .sse, null, null, null }, |
| 106752 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 106753 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104756 | 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 | 106758 | .extra_temps = .{ |
| 104761 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104762 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104763 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104764 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfti" } } }, |
| 104765 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104766 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 106759 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106760 | .unused, |
| 106761 | .unused, |
| 106762 | .unused, |
| 106763 | .unused, |
| 106764 | .unused, |
| 104767 | 106765 | .unused, |
| 104768 | 106766 | .unused, |
| 104769 | 106767 | .unused, |
| 104770 | 106768 | .unused, |
| 104771 | 106769 | .unused, |
| 104772 | 106770 | }, |
| 104773 | | .dst_temps = .{ .mem, .unused }, |
| 106771 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104774 | 106772 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104775 | 106773 | .each = .{ .once = &.{ |
| 104776 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104777 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 106774 | .{ ._, ._, .movsx, .src0d, .src0w, ._, ._ }, |
| 106775 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104784 | 106776 | } }, |
| 104785 | 106777 | }, .{ |
| 104786 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104787 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 104788 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106778 | .required_features = .{ .sse, null, null, null }, |
| 106779 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 106780 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104789 | 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 | 106785 | .extra_temps = .{ |
| 104794 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104795 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104796 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104797 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfti" } } }, |
| 104798 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104799 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 106786 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106787 | .unused, |
| 106788 | .unused, |
| 106789 | .unused, |
| 106790 | .unused, |
| 106791 | .unused, |
| 104800 | 106792 | .unused, |
| 104801 | 106793 | .unused, |
| 104802 | 106794 | .unused, |
| 104803 | 106795 | .unused, |
| 104804 | 106796 | .unused, |
| 104805 | 106797 | }, |
| 104806 | | .dst_temps = .{ .mem, .unused }, |
| 106798 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104807 | 106799 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104808 | 106800 | .each = .{ .once = &.{ |
| 104809 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104810 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 106801 | .{ ._, ._, .movzx, .src0d, .src0w, ._, ._ }, |
| 106802 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104817 | 106803 | } }, |
| 104818 | 106804 | }, .{ |
| 104819 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104820 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104821 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106805 | .required_features = .{ .sse, null, null, null }, |
| 106806 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 106807 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104822 | 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 | 106812 | .extra_temps = .{ |
| 104827 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104828 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104829 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104830 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104831 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 106813 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106814 | .unused, |
| 106815 | .unused, |
| 106816 | .unused, |
| 106817 | .unused, |
| 104832 | 106818 | .unused, |
| 104833 | 106819 | .unused, |
| 104834 | 106820 | .unused, |
| ... | ... | @@ -104836,29 +106822,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104836 | 106822 | .unused, |
| 104837 | 106823 | .unused, |
| 104838 | 106824 | }, |
| 104839 | | .dst_temps = .{ .mem, .unused }, |
| 106825 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104840 | 106826 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104841 | 106827 | .each = .{ .once = &.{ |
| 104842 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104843 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104844 | | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104845 | | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104846 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106828 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104847 | 106829 | } }, |
| 104848 | 106830 | }, .{ |
| 104849 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104850 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104851 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106831 | .required_features = .{ .sse, null, null, null }, |
| 106832 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 106833 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104852 | 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 | 106838 | .extra_temps = .{ |
| 104857 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104858 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104859 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104860 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104861 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 106839 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106840 | .unused, |
| 106841 | .unused, |
| 106842 | .unused, |
| 106843 | .unused, |
| 104862 | 106844 | .unused, |
| 104863 | 106845 | .unused, |
| 104864 | 106846 | .unused, |
| ... | ... | @@ -104866,29 +106848,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104866 | 106848 | .unused, |
| 104867 | 106849 | .unused, |
| 104868 | 106850 | }, |
| 104869 | | .dst_temps = .{ .mem, .unused }, |
| 106851 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104870 | 106852 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104871 | 106853 | .each = .{ .once = &.{ |
| 104872 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104873 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104874 | | .{ ._, .v_dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104875 | | .{ ._, .v_dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104876 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106854 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104877 | 106855 | } }, |
| 104878 | 106856 | }, .{ |
| 104879 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104880 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104881 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106857 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106858 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 106859 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104882 | 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 | 106864 | .extra_temps = .{ |
| 104887 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104888 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104889 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104890 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104891 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 106865 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 106866 | .unused, |
| 106867 | .unused, |
| 106868 | .unused, |
| 106869 | .unused, |
| 104892 | 106870 | .unused, |
| 104893 | 106871 | .unused, |
| 104894 | 106872 | .unused, |
| ... | ... | @@ -104896,29 +106874,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104896 | 106874 | .unused, |
| 104897 | 106875 | .unused, |
| 104898 | 106876 | }, |
| 104899 | | .dst_temps = .{ .mem, .unused }, |
| 106877 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104900 | 106878 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104901 | 106879 | .each = .{ .once = &.{ |
| 104902 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104903 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104904 | | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104905 | | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104906 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106880 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104907 | 106881 | } }, |
| 104908 | 106882 | }, .{ |
| 104909 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 104910 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104911 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106883 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106884 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 106885 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104912 | 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 | 106890 | .extra_temps = .{ |
| 104917 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104918 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104919 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104920 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104921 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 106891 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 106892 | .unused, |
| 106893 | .unused, |
| 106894 | .unused, |
| 106895 | .unused, |
| 104922 | 106896 | .unused, |
| 104923 | 106897 | .unused, |
| 104924 | 106898 | .unused, |
| ... | ... | @@ -104926,29 +106900,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104926 | 106900 | .unused, |
| 104927 | 106901 | .unused, |
| 104928 | 106902 | }, |
| 104929 | | .dst_temps = .{ .mem, .unused }, |
| 106903 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104930 | 106904 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104931 | 106905 | .each = .{ .once = &.{ |
| 104932 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104933 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104934 | | .{ ._, ._dqa, .mov, .tmp2x, .src0x, ._, ._ }, |
| 104935 | | .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ }, |
| 104936 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106906 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104937 | 106907 | } }, |
| 104938 | 106908 | }, .{ |
| 104939 | 106909 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104940 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104941 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106910 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 106911 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104942 | 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 | 106916 | .extra_temps = .{ |
| 104947 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104948 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104949 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104950 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104951 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 106917 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 106918 | .unused, |
| 106919 | .unused, |
| 106920 | .unused, |
| 106921 | .unused, |
| 104952 | 106922 | .unused, |
| 104953 | 106923 | .unused, |
| 104954 | 106924 | .unused, |
| ... | ... | @@ -104956,29 +106926,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104956 | 106926 | .unused, |
| 104957 | 106927 | .unused, |
| 104958 | 106928 | }, |
| 104959 | | .dst_temps = .{ .mem, .unused }, |
| 106929 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104960 | 106930 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104961 | 106931 | .each = .{ .once = &.{ |
| 104962 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104963 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104964 | | .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ }, |
| 104965 | | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 104966 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106932 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104967 | 106933 | } }, |
| 104968 | 106934 | }, .{ |
| 104969 | 106935 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104970 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 104971 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106936 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 106937 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 104972 | 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 | 106942 | .extra_temps = .{ |
| 104977 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104978 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104979 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 104980 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 104981 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 106943 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 106944 | .unused, |
| 106945 | .unused, |
| 106946 | .unused, |
| 106947 | .unused, |
| 104982 | 106948 | .unused, |
| 104983 | 106949 | .unused, |
| 104984 | 106950 | .unused, |
| ... | ... | @@ -104986,239 +106952,196 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104986 | 106952 | .unused, |
| 104987 | 106953 | .unused, |
| 104988 | 106954 | }, |
| 104989 | | .dst_temps = .{ .mem, .unused }, |
| 106955 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 104990 | 106956 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104991 | 106957 | .each = .{ .once = &.{ |
| 104992 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 104993 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104994 | | .{ ._, ._ps, .mova, .tmp2x, .src0x, ._, ._ }, |
| 104995 | | .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ }, |
| 104996 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106958 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 104997 | 106959 | } }, |
| 104998 | 106960 | }, .{ |
| 104999 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 105000 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105001 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106961 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106962 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106963 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 105002 | 106964 | .patterns = &.{ |
| 105003 | 106965 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105004 | 106966 | }, |
| 105005 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106967 | .call_frame = .{ .alignment = .@"16" }, |
| 105006 | 106968 | .extra_temps = .{ |
| 105007 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105008 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105009 | 106969 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105010 | 106970 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105011 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105012 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105013 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 106971 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 106972 | .unused, |
| 106973 | .unused, |
| 106974 | .unused, |
| 106975 | .unused, |
| 105014 | 106976 | .unused, |
| 105015 | 106977 | .unused, |
| 105016 | 106978 | .unused, |
| 105017 | 106979 | .unused, |
| 105018 | 106980 | }, |
| 105019 | | .dst_temps = .{ .mem, .unused }, |
| 106981 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 105020 | 106982 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105021 | 106983 | .each = .{ .once = &.{ |
| 105022 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105023 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105024 | | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 106984 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106985 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 106986 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105032 | 106987 | } }, |
| 105033 | 106988 | }, .{ |
| 105034 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 105035 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105036 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106989 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106990 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106991 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 105037 | 106992 | .patterns = &.{ |
| 105038 | 106993 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105039 | 106994 | }, |
| 105040 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106995 | .call_frame = .{ .alignment = .@"16" }, |
| 105041 | 106996 | .extra_temps = .{ |
| 105042 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105043 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105044 | 106997 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105045 | 106998 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105046 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105047 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105048 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 106999 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 107000 | .unused, |
| 107001 | .unused, |
| 107002 | .unused, |
| 107003 | .unused, |
| 105049 | 107004 | .unused, |
| 105050 | 107005 | .unused, |
| 105051 | 107006 | .unused, |
| 105052 | 107007 | .unused, |
| 105053 | 107008 | }, |
| 105054 | | .dst_temps = .{ .mem, .unused }, |
| 107009 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 105055 | 107010 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105056 | 107011 | .each = .{ .once = &.{ |
| 105057 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105058 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105059 | | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 107012 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107013 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107014 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105067 | 107015 | } }, |
| 105068 | 107016 | }, .{ |
| 105069 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 105070 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105071 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107017 | .required_features = .{ .f16c, null, null, null }, |
| 107018 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107019 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105072 | 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" }, |
| 105076 | | .extra_temps = .{ |
| 105077 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105078 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105079 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105080 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105081 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105082 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105083 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 105084 | | .unused, |
| 105085 | | .unused, |
| 105086 | | .unused, |
| 105087 | | .unused, |
| 107024 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107025 | .each = .{ .once = &.{ |
| 107026 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 107027 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107028 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 107029 | } }, |
| 107030 | }, .{ |
| 107031 | .required_features = .{ .f16c, .avx2, null, null }, |
| 107032 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107033 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 107034 | .patterns = &.{ |
| 107035 | .{ .src = .{ .mem, .none, .none } }, |
| 107036 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105088 | 107037 | }, |
| 105089 | | .dst_temps = .{ .mem, .unused }, |
| 105090 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107038 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105091 | 107039 | .each = .{ .once = &.{ |
| 105092 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105093 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105094 | | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 107040 | .{ ._, .vp_d, .movsxb, .dst0y, .src0q, ._, ._ }, |
| 107041 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 107042 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 105102 | 107043 | } }, |
| 105103 | 107044 | }, .{ |
| 105104 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 105105 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105106 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107045 | .required_features = .{ .f16c, null, null, null }, |
| 107046 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107047 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105107 | 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" }, |
| 105111 | | .extra_temps = .{ |
| 105112 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105113 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105114 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105115 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105116 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105117 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105118 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 105119 | | .unused, |
| 105120 | | .unused, |
| 105121 | | .unused, |
| 105122 | | .unused, |
| 107052 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107053 | .each = .{ .once = &.{ |
| 107054 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 107055 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107056 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 107057 | } }, |
| 107058 | }, .{ |
| 107059 | .required_features = .{ .f16c, .avx2, null, null }, |
| 107060 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107061 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 107062 | .patterns = &.{ |
| 107063 | .{ .src = .{ .mem, .none, .none } }, |
| 107064 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105123 | 107065 | }, |
| 105124 | | .dst_temps = .{ .mem, .unused }, |
| 105125 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107066 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105126 | 107067 | .each = .{ .once = &.{ |
| 105127 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105128 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105129 | | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 107068 | .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, |
| 107069 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 107070 | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 105137 | 107071 | } }, |
| 105138 | 107072 | }, .{ |
| 105139 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105140 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105141 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107073 | .required_features = .{ .f16c, .avx2, null, null }, |
| 107074 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107075 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105142 | 107076 | .patterns = &.{ |
| 105143 | 107077 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105144 | 107078 | }, |
| 105145 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105146 | 107079 | .extra_temps = .{ |
| 105147 | 107080 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105148 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105149 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105150 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105151 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105152 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105153 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixxfei" } } }, |
| 107081 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 107082 | .unused, |
| 107083 | .unused, |
| 107084 | .unused, |
| 107085 | .unused, |
| 107086 | .unused, |
| 105154 | 107087 | .unused, |
| 105155 | 107088 | .unused, |
| 105156 | 107089 | .unused, |
| 105157 | 107090 | .unused, |
| 105158 | 107091 | }, |
| 105159 | 107092 | .dst_temps = .{ .mem, .unused }, |
| 105160 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107093 | .clobbers = .{ .eflags = true }, |
| 105161 | 107094 | .each = .{ .once = &.{ |
| 105162 | 107095 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105163 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105164 | | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105165 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 105166 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 105167 | | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, |
| 105168 | | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 105169 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 105170 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107096 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107097 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107098 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107099 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105171 | 107100 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105172 | 107101 | } }, |
| 105173 | 107102 | }, .{ |
| 105174 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105175 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105176 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107103 | .required_features = .{ .f16c, null, null, null }, |
| 107104 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107105 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105177 | 107106 | .patterns = &.{ |
| 105178 | 107107 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105179 | 107108 | }, |
| 105180 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105181 | 107109 | .extra_temps = .{ |
| 105182 | 107110 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105183 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105184 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 105185 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105186 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 105187 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105188 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunsxfei" } } }, |
| 107111 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 107112 | .unused, |
| 107113 | .unused, |
| 107114 | .unused, |
| 107115 | .unused, |
| 107116 | .unused, |
| 105189 | 107117 | .unused, |
| 105190 | 107118 | .unused, |
| 105191 | 107119 | .unused, |
| 105192 | 107120 | .unused, |
| 105193 | 107121 | }, |
| 105194 | 107122 | .dst_temps = .{ .mem, .unused }, |
| 105195 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107123 | .clobbers = .{ .eflags = true }, |
| 105196 | 107124 | .each = .{ .once = &.{ |
| 105197 | 107125 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105198 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105199 | | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105200 | | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 105201 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 105202 | | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, |
| 105203 | | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 105204 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 105205 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107126 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107127 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107128 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 107129 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105206 | 107130 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105207 | 107131 | } }, |
| 105208 | 107132 | }, .{ |
| 105209 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 105210 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105211 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 107133 | .required_features = .{ .f16c, .avx2, null, null }, |
| 107134 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107135 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105212 | 107136 | .patterns = &.{ |
| 105213 | 107137 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105214 | 107138 | }, |
| 105215 | | .call_frame = .{ .alignment = .@"16" }, |
| 105216 | 107139 | .extra_temps = .{ |
| 105217 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105218 | 107140 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105219 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105220 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105221 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107141 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 107142 | .unused, |
| 107143 | .unused, |
| 107144 | .unused, |
| 105222 | 107145 | .unused, |
| 105223 | 107146 | .unused, |
| 105224 | 107147 | .unused, |
| ... | ... | @@ -105227,31 +107150,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105227 | 107150 | .unused, |
| 105228 | 107151 | }, |
| 105229 | 107152 | .dst_temps = .{ .mem, .unused }, |
| 105230 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107153 | .clobbers = .{ .eflags = true }, |
| 105231 | 107154 | .each = .{ .once = &.{ |
| 105232 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105233 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105234 | | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105235 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105236 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105237 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105238 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 107155 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107156 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107157 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107158 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107159 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105239 | 107160 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105240 | 107161 | } }, |
| 105241 | 107162 | }, .{ |
| 105242 | | .required_features = .{ .avx, null, null, null }, |
| 105243 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105244 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 107163 | .required_features = .{ .f16c, null, null, null }, |
| 107164 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107165 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105245 | 107166 | .patterns = &.{ |
| 105246 | 107167 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105247 | 107168 | }, |
| 105248 | | .call_frame = .{ .alignment = .@"16" }, |
| 105249 | 107169 | .extra_temps = .{ |
| 105250 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105251 | 107170 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105252 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105253 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105254 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107171 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 107172 | .unused, |
| 107173 | .unused, |
| 107174 | .unused, |
| 105255 | 107175 | .unused, |
| 105256 | 107176 | .unused, |
| 105257 | 107177 | .unused, |
| ... | ... | @@ -105260,31 +107180,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105260 | 107180 | .unused, |
| 105261 | 107181 | }, |
| 105262 | 107182 | .dst_temps = .{ .mem, .unused }, |
| 105263 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107183 | .clobbers = .{ .eflags = true }, |
| 105264 | 107184 | .each = .{ .once = &.{ |
| 105265 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105266 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105267 | | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105268 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105269 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105270 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105271 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 105272 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 107185 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107186 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107187 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107188 | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 107189 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107190 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105273 | 107191 | } }, |
| 105274 | 107192 | }, .{ |
| 105275 | | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 105276 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105277 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 107193 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 107194 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107195 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105278 | 107196 | .patterns = &.{ |
| 105279 | 107197 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105280 | 107198 | }, |
| 105281 | 107199 | .call_frame = .{ .alignment = .@"16" }, |
| 105282 | 107200 | .extra_temps = .{ |
| 105283 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105284 | 107201 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105285 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105286 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105287 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107202 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107203 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107204 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107205 | .unused, |
| 105288 | 107206 | .unused, |
| 105289 | 107207 | .unused, |
| 105290 | 107208 | .unused, |
| ... | ... | @@ -105295,29 +107213,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105295 | 107213 | .dst_temps = .{ .mem, .unused }, |
| 105296 | 107214 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105297 | 107215 | .each = .{ .once = &.{ |
| 105298 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105299 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105300 | | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105301 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105302 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105303 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105304 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 107216 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107217 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107218 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107219 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107220 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105305 | 107221 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105306 | 107222 | } }, |
| 105307 | 107223 | }, .{ |
| 105308 | | .required_features = .{ .sse2, null, null, null }, |
| 105309 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105310 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 107224 | .required_features = .{ .avx, null, null, null }, |
| 107225 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107226 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105311 | 107227 | .patterns = &.{ |
| 105312 | 107228 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105313 | 107229 | }, |
| 105314 | 107230 | .call_frame = .{ .alignment = .@"16" }, |
| 105315 | 107231 | .extra_temps = .{ |
| 105316 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105317 | 107232 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105318 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105319 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105320 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107233 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107234 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107235 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107236 | .unused, |
| 105321 | 107237 | .unused, |
| 105322 | 107238 | .unused, |
| 105323 | 107239 | .unused, |
| ... | ... | @@ -105328,29 +107244,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105328 | 107244 | .dst_temps = .{ .mem, .unused }, |
| 105329 | 107245 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105330 | 107246 | .each = .{ .once = &.{ |
| 105331 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105332 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105333 | | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105334 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105335 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105336 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105337 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 107247 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107248 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107249 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107250 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107251 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 105338 | 107252 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105339 | 107253 | } }, |
| 105340 | 107254 | }, .{ |
| 105341 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 105342 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105343 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 107255 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| 107256 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107257 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105344 | 107258 | .patterns = &.{ |
| 105345 | 107259 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105346 | 107260 | }, |
| 105347 | 107261 | .call_frame = .{ .alignment = .@"16" }, |
| 105348 | 107262 | .extra_temps = .{ |
| 105349 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105350 | 107263 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105351 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105352 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105353 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107264 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107265 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107266 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107267 | .unused, |
| 105354 | 107268 | .unused, |
| 105355 | 107269 | .unused, |
| 105356 | 107270 | .unused, |
| ... | ... | @@ -105361,29 +107275,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105361 | 107275 | .dst_temps = .{ .mem, .unused }, |
| 105362 | 107276 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105363 | 107277 | .each = .{ .once = &.{ |
| 105364 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105365 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105366 | | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105367 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105368 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105369 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105370 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 107278 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107279 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107280 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107281 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107282 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105371 | 107283 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105372 | 107284 | } }, |
| 105373 | 107285 | }, .{ |
| 105374 | | .required_features = .{ .sse, null, null, null }, |
| 105375 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105376 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 107286 | .required_features = .{ .sse4_1, null, null, null }, |
| 107287 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107288 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105377 | 107289 | .patterns = &.{ |
| 105378 | 107290 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105379 | 107291 | }, |
| 105380 | 107292 | .call_frame = .{ .alignment = .@"16" }, |
| 105381 | 107293 | .extra_temps = .{ |
| 105382 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105383 | 107294 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105384 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105385 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105386 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107295 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107296 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107297 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107298 | .unused, |
| 105387 | 107299 | .unused, |
| 105388 | 107300 | .unused, |
| 105389 | 107301 | .unused, |
| ... | ... | @@ -105394,28 +107306,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105394 | 107306 | .dst_temps = .{ .mem, .unused }, |
| 105395 | 107307 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105396 | 107308 | .each = .{ .once = &.{ |
| 105397 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105398 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105399 | | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105400 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105401 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 105402 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105403 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 107309 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107310 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107311 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107312 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107313 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 105404 | 107314 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105405 | 107315 | } }, |
| 105406 | 107316 | }, .{ |
| 105407 | | .required_features = .{ .avx, null, null, null }, |
| 105408 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105409 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 107317 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 107318 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107319 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105410 | 107320 | .patterns = &.{ |
| 105411 | 107321 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105412 | 107322 | }, |
| 105413 | 107323 | .call_frame = .{ .alignment = .@"16" }, |
| 105414 | 107324 | .extra_temps = .{ |
| 105415 | 107325 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105416 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105417 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105418 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107326 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107327 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107328 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105419 | 107329 | .unused, |
| 105420 | 107330 | .unused, |
| 105421 | 107331 | .unused, |
| ... | ... | @@ -105427,26 +107337,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105427 | 107337 | .dst_temps = .{ .mem, .unused }, |
| 105428 | 107338 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105429 | 107339 | .each = .{ .once = &.{ |
| 105430 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105431 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107340 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107341 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105432 | 107342 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105433 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 105434 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 107343 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 107344 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107345 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105435 | 107346 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105436 | 107347 | } }, |
| 105437 | 107348 | }, .{ |
| 105438 | 107349 | .required_features = .{ .sse2, null, null, null }, |
| 105439 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105440 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 107350 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107351 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105441 | 107352 | .patterns = &.{ |
| 105442 | 107353 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105443 | 107354 | }, |
| 105444 | 107355 | .call_frame = .{ .alignment = .@"16" }, |
| 105445 | 107356 | .extra_temps = .{ |
| 105446 | 107357 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105447 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105448 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105449 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107358 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107359 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107360 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105450 | 107361 | .unused, |
| 105451 | 107362 | .unused, |
| 105452 | 107363 | .unused, |
| ... | ... | @@ -105458,27 +107369,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105458 | 107369 | .dst_temps = .{ .mem, .unused }, |
| 105459 | 107370 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105460 | 107371 | .each = .{ .once = &.{ |
| 105461 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105462 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107372 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107373 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105463 | 107374 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105464 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 105465 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105466 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107375 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 107376 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107377 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107378 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105467 | 107379 | } }, |
| 105468 | 107380 | }, .{ |
| 105469 | | .required_features = .{ .sse, null, null, null }, |
| 105470 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105471 | | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| 107381 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 107382 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107383 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105472 | 107384 | .patterns = &.{ |
| 105473 | 107385 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105474 | 107386 | }, |
| 105475 | 107387 | .call_frame = .{ .alignment = .@"16" }, |
| 105476 | 107388 | .extra_temps = .{ |
| 105477 | 107389 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105478 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105479 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105480 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 105481 | | .unused, |
| 107390 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107391 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107392 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107393 | .{ .type = .f32, .kind = .mem }, |
| 105482 | 107394 | .unused, |
| 105483 | 107395 | .unused, |
| 105484 | 107396 | .unused, |
| ... | ... | @@ -105489,27 +107401,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105489 | 107401 | .dst_temps = .{ .mem, .unused }, |
| 105490 | 107402 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105491 | 107403 | .each = .{ .once = &.{ |
| 105492 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105493 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107404 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107405 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105494 | 107406 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105495 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 105496 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 107407 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 107408 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 107409 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107410 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105497 | 107411 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105498 | 107412 | } }, |
| 105499 | 107413 | }, .{ |
| 105500 | 107414 | .required_features = .{ .sse, null, null, null }, |
| 105501 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105502 | | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 107415 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107416 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105503 | 107417 | .patterns = &.{ |
| 105504 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 107418 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105505 | 107419 | }, |
| 105506 | 107420 | .call_frame = .{ .alignment = .@"16" }, |
| 105507 | 107421 | .extra_temps = .{ |
| 105508 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105509 | | .unused, |
| 105510 | | .unused, |
| 105511 | | .unused, |
| 105512 | | .unused, |
| 107422 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107423 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107424 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107425 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107426 | .{ .type = .f32, .kind = .mem }, |
| 105513 | 107427 | .unused, |
| 105514 | 107428 | .unused, |
| 105515 | 107429 | .unused, |
| ... | ... | @@ -105517,24 +107431,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105517 | 107431 | .unused, |
| 105518 | 107432 | .unused, |
| 105519 | 107433 | }, |
| 105520 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 107434 | .dst_temps = .{ .mem, .unused }, |
| 105521 | 107435 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105522 | 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 }, |
| 105527 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105528 | | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 107447 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 107448 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107449 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105529 | 107450 | .patterns = &.{ |
| 105530 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 107451 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105531 | 107452 | }, |
| 105532 | 107453 | .call_frame = .{ .alignment = .@"16" }, |
| 105533 | 107454 | .extra_temps = .{ |
| 105534 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105535 | | .unused, |
| 105536 | | .unused, |
| 105537 | | .unused, |
| 107455 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107456 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107457 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107458 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105538 | 107459 | .unused, |
| 105539 | 107460 | .unused, |
| 105540 | 107461 | .unused, |
| ... | ... | @@ -105543,24 +107464,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105543 | 107464 | .unused, |
| 105544 | 107465 | .unused, |
| 105545 | 107466 | }, |
| 105546 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 107467 | .dst_temps = .{ .mem, .unused }, |
| 105547 | 107468 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105548 | 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 | 107478 | .required_features = .{ .avx, null, null, null }, |
| 105553 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105554 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107479 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107480 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105555 | 107481 | .patterns = &.{ |
| 105556 | 107482 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105557 | 107483 | }, |
| 105558 | 107484 | .call_frame = .{ .alignment = .@"16" }, |
| 105559 | 107485 | .extra_temps = .{ |
| 105560 | 107486 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105561 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105562 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105563 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107487 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107488 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107489 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105564 | 107490 | .unused, |
| 105565 | 107491 | .unused, |
| 105566 | 107492 | .unused, |
| ... | ... | @@ -105572,26 +107498,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105572 | 107498 | .dst_temps = .{ .mem, .unused }, |
| 105573 | 107499 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105574 | 107500 | .each = .{ .once = &.{ |
| 105575 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105576 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107501 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107502 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105577 | 107503 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105578 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105579 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105580 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107504 | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107505 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107506 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105581 | 107507 | } }, |
| 105582 | 107508 | }, .{ |
| 105583 | | .required_features = .{ .avx, null, null, null }, |
| 105584 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105585 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107509 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| 107510 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107511 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105586 | 107512 | .patterns = &.{ |
| 105587 | 107513 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105588 | 107514 | }, |
| 105589 | 107515 | .call_frame = .{ .alignment = .@"16" }, |
| 105590 | 107516 | .extra_temps = .{ |
| 105591 | 107517 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105592 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105593 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105594 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 107518 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107519 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107520 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105595 | 107521 | .unused, |
| 105596 | 107522 | .unused, |
| 105597 | 107523 | .unused, |
| ... | ... | @@ -105603,26 +107529,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105603 | 107529 | .dst_temps = .{ .mem, .unused }, |
| 105604 | 107530 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105605 | 107531 | .each = .{ .once = &.{ |
| 105606 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105607 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107532 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107533 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105608 | 107534 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105609 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105610 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107535 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107536 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105611 | 107537 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105612 | 107538 | } }, |
| 105613 | 107539 | }, .{ |
| 105614 | | .required_features = .{ .sse2, null, null, null }, |
| 105615 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105616 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107540 | .required_features = .{ .sse4_1, null, null, null }, |
| 107541 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107542 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105617 | 107543 | .patterns = &.{ |
| 105618 | 107544 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105619 | 107545 | }, |
| 105620 | 107546 | .call_frame = .{ .alignment = .@"16" }, |
| 105621 | 107547 | .extra_temps = .{ |
| 105622 | 107548 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105623 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105624 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105625 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107549 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107550 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107551 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105626 | 107552 | .unused, |
| 105627 | 107553 | .unused, |
| 105628 | 107554 | .unused, |
| ... | ... | @@ -105634,26 +107560,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105634 | 107560 | .dst_temps = .{ .mem, .unused }, |
| 105635 | 107561 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105636 | 107562 | .each = .{ .once = &.{ |
| 105637 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105638 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107563 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107564 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105639 | 107565 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105640 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105641 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105642 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107566 | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107567 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107568 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105643 | 107569 | } }, |
| 105644 | 107570 | }, .{ |
| 105645 | | .required_features = .{ .sse2, null, null, null }, |
| 105646 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105647 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107571 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 107572 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107573 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105648 | 107574 | .patterns = &.{ |
| 105649 | 107575 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105650 | 107576 | }, |
| 105651 | 107577 | .call_frame = .{ .alignment = .@"16" }, |
| 105652 | 107578 | .extra_temps = .{ |
| 105653 | 107579 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105654 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105655 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105656 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 107580 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107581 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107582 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105657 | 107583 | .unused, |
| 105658 | 107584 | .unused, |
| 105659 | 107585 | .unused, |
| ... | ... | @@ -105665,26 +107591,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105665 | 107591 | .dst_temps = .{ .mem, .unused }, |
| 105666 | 107592 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105667 | 107593 | .each = .{ .once = &.{ |
| 105668 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105669 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107594 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107595 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105670 | 107596 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105671 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105672 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107597 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 107598 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107599 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105673 | 107600 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105674 | 107601 | } }, |
| 105675 | 107602 | }, .{ |
| 105676 | | .required_features = .{ .sse, null, null, null }, |
| 105677 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105678 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107603 | .required_features = .{ .sse2, null, null, null }, |
| 107604 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107605 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105679 | 107606 | .patterns = &.{ |
| 105680 | 107607 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105681 | 107608 | }, |
| 105682 | 107609 | .call_frame = .{ .alignment = .@"16" }, |
| 105683 | 107610 | .extra_temps = .{ |
| 105684 | 107611 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105685 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105686 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfsi" } } }, |
| 105687 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 107612 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107613 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107614 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105688 | 107615 | .unused, |
| 105689 | 107616 | .unused, |
| 105690 | 107617 | .unused, |
| ... | ... | @@ -105696,27 +107623,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105696 | 107623 | .dst_temps = .{ .mem, .unused }, |
| 105697 | 107624 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105698 | 107625 | .each = .{ .once = &.{ |
| 105699 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105700 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107626 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107627 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105701 | 107628 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105702 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105703 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105704 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107629 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 107630 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107631 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107632 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105705 | 107633 | } }, |
| 105706 | 107634 | }, .{ |
| 105707 | | .required_features = .{ .sse, null, null, null }, |
| 105708 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105709 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107635 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 107636 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107637 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105710 | 107638 | .patterns = &.{ |
| 105711 | 107639 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105712 | 107640 | }, |
| 105713 | 107641 | .call_frame = .{ .alignment = .@"16" }, |
| 105714 | 107642 | .extra_temps = .{ |
| 105715 | 107643 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105716 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105717 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfsi" } } }, |
| 105718 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 105719 | | .unused, |
| 107644 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107645 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107646 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107647 | .{ .type = .f32, .kind = .mem }, |
| 105720 | 107648 | .unused, |
| 105721 | 107649 | .unused, |
| 105722 | 107650 | .unused, |
| ... | ... | @@ -105727,27 +107655,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105727 | 107655 | .dst_temps = .{ .mem, .unused }, |
| 105728 | 107656 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105729 | 107657 | .each = .{ .once = &.{ |
| 105730 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105731 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107658 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107659 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105732 | 107660 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105733 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105734 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107661 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 107662 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 107663 | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107664 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 105735 | 107665 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105736 | 107666 | } }, |
| 105737 | 107667 | }, .{ |
| 105738 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105739 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105740 | | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 107668 | .required_features = .{ .sse, null, null, null }, |
| 107669 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107670 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105741 | 107671 | .patterns = &.{ |
| 105742 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 107672 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105743 | 107673 | }, |
| 105744 | 107674 | .call_frame = .{ .alignment = .@"16" }, |
| 105745 | 107675 | .extra_temps = .{ |
| 105746 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105747 | | .unused, |
| 105748 | | .unused, |
| 105749 | | .unused, |
| 105750 | | .unused, |
| 107676 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107677 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107678 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107679 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107680 | .{ .type = .f32, .kind = .mem }, |
| 105751 | 107681 | .unused, |
| 105752 | 107682 | .unused, |
| 105753 | 107683 | .unused, |
| ... | ... | @@ -105755,50 +107685,86 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105755 | 107685 | .unused, |
| 105756 | 107686 | .unused, |
| 105757 | 107687 | }, |
| 105758 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 107688 | .dst_temps = .{ .mem, .unused }, |
| 105759 | 107689 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105760 | 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 }, |
| 105765 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105766 | | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 107701 | .required_features = .{ .f16c, null, null, null }, |
| 107702 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 107703 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105767 | 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" }, |
| 105771 | | .extra_temps = .{ |
| 105772 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105773 | | .unused, |
| 105774 | | .unused, |
| 105775 | | .unused, |
| 105776 | | .unused, |
| 105777 | | .unused, |
| 105778 | | .unused, |
| 105779 | | .unused, |
| 105780 | | .unused, |
| 105781 | | .unused, |
| 105782 | | .unused, |
| 107708 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107709 | .each = .{ .once = &.{ |
| 107710 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 107711 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107712 | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 107713 | } }, |
| 107714 | }, .{ |
| 107715 | .required_features = .{ .f16c, .avx2, null, null }, |
| 107716 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 107717 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 107718 | .patterns = &.{ |
| 107719 | .{ .src = .{ .mem, .none, .none } }, |
| 107720 | .{ .src = .{ .to_sse, .none, .none } }, |
| 105783 | 107721 | }, |
| 105784 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 105785 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107722 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 105786 | 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 }, |
| 105791 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105792 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 107729 | .required_features = .{ .f16c, null, null, null }, |
| 107730 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .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 | 107760 | .patterns = &.{ |
| 105794 | 107761 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105795 | 107762 | }, |
| 105796 | | .call_frame = .{ .alignment = .@"16" }, |
| 105797 | 107763 | .extra_temps = .{ |
| 105798 | 107764 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105799 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105800 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105801 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 107765 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 107766 | .unused, |
| 107767 | .unused, |
| 105802 | 107768 | .unused, |
| 105803 | 107769 | .unused, |
| 105804 | 107770 | .unused, |
| ... | ... | @@ -105808,28 +107774,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105808 | 107774 | .unused, |
| 105809 | 107775 | }, |
| 105810 | 107776 | .dst_temps = .{ .mem, .unused }, |
| 105811 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107777 | .clobbers = .{ .eflags = true }, |
| 105812 | 107778 | .each = .{ .once = &.{ |
| 105813 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105814 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105815 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105816 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 105817 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107779 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107780 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107781 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107782 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107783 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 105818 | 107784 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105819 | 107785 | } }, |
| 105820 | 107786 | }, .{ |
| 105821 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 105822 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105823 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 107787 | .required_features = .{ .f16c, null, null, null }, |
| 107788 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 107789 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105824 | 107790 | .patterns = &.{ |
| 105825 | 107791 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105826 | 107792 | }, |
| 105827 | | .call_frame = .{ .alignment = .@"16" }, |
| 105828 | 107793 | .extra_temps = .{ |
| 105829 | 107794 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105830 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105831 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105832 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107795 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 107796 | .unused, |
| 107797 | .unused, |
| 105833 | 107798 | .unused, |
| 105834 | 107799 | .unused, |
| 105835 | 107800 | .unused, |
| ... | ... | @@ -105839,28 +107804,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105839 | 107804 | .unused, |
| 105840 | 107805 | }, |
| 105841 | 107806 | .dst_temps = .{ .mem, .unused }, |
| 105842 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107807 | .clobbers = .{ .eflags = true }, |
| 105843 | 107808 | .each = .{ .once = &.{ |
| 105844 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105845 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105846 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105847 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107809 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107810 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107811 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107812 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 105848 | 107813 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105849 | 107814 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105850 | 107815 | } }, |
| 105851 | 107816 | }, .{ |
| 105852 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 105853 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105854 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 107817 | .required_features = .{ .f16c, .avx2, null, null }, |
| 107818 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 107819 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 105855 | 107820 | .patterns = &.{ |
| 105856 | 107821 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105857 | 107822 | }, |
| 105858 | | .call_frame = .{ .alignment = .@"16" }, |
| 105859 | 107823 | .extra_temps = .{ |
| 105860 | 107824 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105861 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105862 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105863 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 107825 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 107826 | .unused, |
| 107827 | .unused, |
| 105864 | 107828 | .unused, |
| 105865 | 107829 | .unused, |
| 105866 | 107830 | .unused, |
| ... | ... | @@ -105870,28 +107834,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105870 | 107834 | .unused, |
| 105871 | 107835 | }, |
| 105872 | 107836 | .dst_temps = .{ .mem, .unused }, |
| 105873 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107837 | .clobbers = .{ .eflags = true }, |
| 105874 | 107838 | .each = .{ .once = &.{ |
| 105875 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105876 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105877 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105878 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 105879 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107839 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107840 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107841 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107842 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107843 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 105880 | 107844 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105881 | 107845 | } }, |
| 105882 | 107846 | }, .{ |
| 105883 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 105884 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105885 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 107847 | .required_features = .{ .f16c, null, null, null }, |
| 107848 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 107849 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 105886 | 107850 | .patterns = &.{ |
| 105887 | 107851 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105888 | 107852 | }, |
| 105889 | | .call_frame = .{ .alignment = .@"16" }, |
| 105890 | 107853 | .extra_temps = .{ |
| 105891 | 107854 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105892 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105893 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105894 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107855 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 107856 | .unused, |
| 107857 | .unused, |
| 105895 | 107858 | .unused, |
| 105896 | 107859 | .unused, |
| 105897 | 107860 | .unused, |
| ... | ... | @@ -105901,28 +107864,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105901 | 107864 | .unused, |
| 105902 | 107865 | }, |
| 105903 | 107866 | .dst_temps = .{ .mem, .unused }, |
| 105904 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107867 | .clobbers = .{ .eflags = true }, |
| 105905 | 107868 | .each = .{ .once = &.{ |
| 105906 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105907 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105908 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105909 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107869 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107870 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107871 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107872 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 105910 | 107873 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105911 | 107874 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105912 | 107875 | } }, |
| 105913 | 107876 | }, .{ |
| 105914 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105915 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105916 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 107877 | .required_features = .{ .avx, null, null, null }, |
| 107878 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107879 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105917 | 107880 | .patterns = &.{ |
| 105918 | 107881 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105919 | 107882 | }, |
| 105920 | 107883 | .call_frame = .{ .alignment = .@"16" }, |
| 105921 | 107884 | .extra_temps = .{ |
| 105922 | 107885 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105923 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105924 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfdi" } } }, |
| 105925 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 107886 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107887 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107888 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105926 | 107889 | .unused, |
| 105927 | 107890 | .unused, |
| 105928 | 107891 | .unused, |
| ... | ... | @@ -105934,26 +107897,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105934 | 107897 | .dst_temps = .{ .mem, .unused }, |
| 105935 | 107898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105936 | 107899 | .each = .{ .once = &.{ |
| 105937 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105938 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107900 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107901 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105939 | 107902 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105940 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 105941 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107903 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107904 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105942 | 107905 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105943 | 107906 | } }, |
| 105944 | 107907 | }, .{ |
| 105945 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105946 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 105947 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 107908 | .required_features = .{ .sse4_1, null, null, null }, |
| 107909 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107910 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105948 | 107911 | .patterns = &.{ |
| 105949 | 107912 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105950 | 107913 | }, |
| 105951 | 107914 | .call_frame = .{ .alignment = .@"16" }, |
| 105952 | 107915 | .extra_temps = .{ |
| 105953 | 107916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105954 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 105955 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfdi" } } }, |
| 105956 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107917 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107918 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107919 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105957 | 107920 | .unused, |
| 105958 | 107921 | .unused, |
| 105959 | 107922 | .unused, |
| ... | ... | @@ -105965,26 +107928,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105965 | 107928 | .dst_temps = .{ .mem, .unused }, |
| 105966 | 107929 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105967 | 107930 | .each = .{ .once = &.{ |
| 105968 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105969 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 107931 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107932 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105970 | 107933 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105971 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 105972 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107934 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107935 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105973 | 107936 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105974 | 107937 | } }, |
| 105975 | 107938 | }, .{ |
| 105976 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105977 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 105978 | | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 107939 | .required_features = .{ .sse2, null, null, null }, |
| 107940 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107941 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 105979 | 107942 | .patterns = &.{ |
| 105980 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 107943 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105981 | 107944 | }, |
| 105982 | 107945 | .call_frame = .{ .alignment = .@"16" }, |
| 105983 | 107946 | .extra_temps = .{ |
| 105984 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 105985 | | .unused, |
| 105986 | | .unused, |
| 105987 | | .unused, |
| 107947 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107948 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107949 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107950 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 105988 | 107951 | .unused, |
| 105989 | 107952 | .unused, |
| 105990 | 107953 | .unused, |
| ... | ... | @@ -105993,25 +107956,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105993 | 107956 | .unused, |
| 105994 | 107957 | .unused, |
| 105995 | 107958 | }, |
| 105996 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 107959 | .dst_temps = .{ .mem, .unused }, |
| 105997 | 107960 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105998 | 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 }, |
| 106003 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106004 | | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 107971 | .required_features = .{ .sse, null, null, null }, |
| 107972 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107973 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106005 | 107974 | .patterns = &.{ |
| 106006 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 107975 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106007 | 107976 | }, |
| 106008 | 107977 | .call_frame = .{ .alignment = .@"16" }, |
| 106009 | 107978 | .extra_temps = .{ |
| 106010 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106011 | | .unused, |
| 106012 | | .unused, |
| 106013 | | .unused, |
| 106014 | | .unused, |
| 107979 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107980 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107981 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107982 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107983 | .{ .type = .f32, .kind = .mem }, |
| 106015 | 107984 | .unused, |
| 106016 | 107985 | .unused, |
| 106017 | 107986 | .unused, |
| ... | ... | @@ -106019,25 +107988,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106019 | 107988 | .unused, |
| 106020 | 107989 | .unused, |
| 106021 | 107990 | }, |
| 106022 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 107991 | .dst_temps = .{ .mem, .unused }, |
| 106023 | 107992 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106024 | 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 }, |
| 106029 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106030 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 108004 | .required_features = .{ .avx, null, null, null }, |
| 108005 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108006 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106031 | 108007 | .patterns = &.{ |
| 106032 | 108008 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106033 | 108009 | }, |
| 106034 | 108010 | .call_frame = .{ .alignment = .@"16" }, |
| 106035 | 108011 | .extra_temps = .{ |
| 106036 | 108012 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106037 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106038 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 106039 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106040 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 108013 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108014 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108015 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108016 | .unused, |
| 106041 | 108017 | .unused, |
| 106042 | 108018 | .unused, |
| 106043 | 108019 | .unused, |
| ... | ... | @@ -106049,27 +108025,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106049 | 108025 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106050 | 108026 | .each = .{ .once = &.{ |
| 106051 | 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 | 108029 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106054 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106055 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106056 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108030 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108031 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106057 | 108032 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106058 | 108033 | } }, |
| 106059 | 108034 | }, .{ |
| 106060 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106061 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106062 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 108035 | .required_features = .{ .sse4_1, null, null, null }, |
| 108036 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108037 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106063 | 108038 | .patterns = &.{ |
| 106064 | 108039 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106065 | 108040 | }, |
| 106066 | 108041 | .call_frame = .{ .alignment = .@"16" }, |
| 106067 | 108042 | .extra_temps = .{ |
| 106068 | 108043 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106069 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106070 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106071 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106072 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 108044 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108045 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108046 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108047 | .unused, |
| 106073 | 108048 | .unused, |
| 106074 | 108049 | .unused, |
| 106075 | 108050 | .unused, |
| ... | ... | @@ -106081,27 +108056,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106081 | 108056 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106082 | 108057 | .each = .{ .once = &.{ |
| 106083 | 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 | 108060 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106086 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106087 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106088 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108061 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108062 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106089 | 108063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106090 | 108064 | } }, |
| 106091 | 108065 | }, .{ |
| 106092 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106093 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106094 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 108066 | .required_features = .{ .sse2, null, null, null }, |
| 108067 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108068 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106095 | 108069 | .patterns = &.{ |
| 106096 | 108070 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106097 | 108071 | }, |
| 106098 | 108072 | .call_frame = .{ .alignment = .@"16" }, |
| 106099 | 108073 | .extra_temps = .{ |
| 106100 | 108074 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106101 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106102 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 106103 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106104 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 108075 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108076 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108077 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108078 | .unused, |
| 106105 | 108079 | .unused, |
| 106106 | 108080 | .unused, |
| 106107 | 108081 | .unused, |
| ... | ... | @@ -106113,27 +108087,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106113 | 108087 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106114 | 108088 | .each = .{ .once = &.{ |
| 106115 | 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 | 108091 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106118 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106119 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106120 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108092 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108093 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108094 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106121 | 108095 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106122 | 108096 | } }, |
| 106123 | 108097 | }, .{ |
| 106124 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106125 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106126 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 108098 | .required_features = .{ .sse, null, null, null }, |
| 108099 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108100 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106127 | 108101 | .patterns = &.{ |
| 106128 | 108102 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106129 | 108103 | }, |
| 106130 | 108104 | .call_frame = .{ .alignment = .@"16" }, |
| 106131 | 108105 | .extra_temps = .{ |
| 106132 | 108106 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106133 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106134 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106135 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106136 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 108107 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108108 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108109 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108110 | .{ .type = .f32, .kind = .mem }, |
| 106137 | 108111 | .unused, |
| 106138 | 108112 | .unused, |
| 106139 | 108113 | .unused, |
| ... | ... | @@ -106145,27 +108119,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106145 | 108119 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106146 | 108120 | .each = .{ .once = &.{ |
| 106147 | 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 | 108123 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106150 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106151 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106152 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108124 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108125 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108126 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108127 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106153 | 108128 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106154 | 108129 | } }, |
| 106155 | 108130 | }, .{ |
| 106156 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106157 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106158 | | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 108131 | .required_features = .{ .f16c, null, null, null }, |
| 108132 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .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 | 108160 | .patterns = &.{ |
| 106160 | 108161 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106161 | 108162 | }, |
| 106162 | | .call_frame = .{ .alignment = .@"16" }, |
| 106163 | 108163 | .extra_temps = .{ |
| 106164 | 108164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106165 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106166 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfti" } } }, |
| 106167 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106168 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 108165 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 108166 | .unused, |
| 108167 | .unused, |
| 108168 | .unused, |
| 106169 | 108169 | .unused, |
| 106170 | 108170 | .unused, |
| 106171 | 108171 | .unused, |
| ... | ... | @@ -106174,30 +108174,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106174 | 108174 | .unused, |
| 106175 | 108175 | }, |
| 106176 | 108176 | .dst_temps = .{ .mem, .unused }, |
| 106177 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108177 | .clobbers = .{ .eflags = true }, |
| 106178 | 108178 | .each = .{ .once = &.{ |
| 106179 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106180 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106181 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106182 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106183 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 108179 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108180 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108181 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 106184 | 108182 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106185 | 108183 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106186 | 108184 | } }, |
| 106187 | 108185 | }, .{ |
| 106188 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106189 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106190 | | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 108186 | .required_features = .{ .f16c, null, null, null }, |
| 108187 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 108188 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 106191 | 108189 | .patterns = &.{ |
| 106192 | 108190 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106193 | 108191 | }, |
| 106194 | | .call_frame = .{ .alignment = .@"16" }, |
| 106195 | 108192 | .extra_temps = .{ |
| 106196 | 108193 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106197 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106198 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfti" } } }, |
| 106199 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106200 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 108194 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108195 | .unused, |
| 108196 | .unused, |
| 108197 | .unused, |
| 106201 | 108198 | .unused, |
| 106202 | 108199 | .unused, |
| 106203 | 108200 | .unused, |
| ... | ... | @@ -106206,29 +108203,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106206 | 108203 | .unused, |
| 106207 | 108204 | }, |
| 106208 | 108205 | .dst_temps = .{ .mem, .unused }, |
| 106209 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108206 | .clobbers = .{ .eflags = true }, |
| 106210 | 108207 | .each = .{ .once = &.{ |
| 106211 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106212 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106213 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106214 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 106215 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 106216 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108208 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108209 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108210 | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 108211 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 106217 | 108212 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106218 | 108213 | } }, |
| 106219 | 108214 | }, .{ |
| 106220 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106221 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106222 | | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108215 | .required_features = .{ .avx, null, null, null }, |
| 108216 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108217 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106223 | 108218 | .patterns = &.{ |
| 106224 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 108219 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106225 | 108220 | }, |
| 106226 | 108221 | .call_frame = .{ .alignment = .@"16" }, |
| 106227 | 108222 | .extra_temps = .{ |
| 106228 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106229 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106230 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 106231 | | .unused, |
| 108223 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108224 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108225 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108226 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106232 | 108227 | .unused, |
| 106233 | 108228 | .unused, |
| 106234 | 108229 | .unused, |
| ... | ... | @@ -106240,23 +108235,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106240 | 108235 | .dst_temps = .{ .mem, .unused }, |
| 106241 | 108236 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106242 | 108237 | .each = .{ .once = &.{ |
| 106243 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 106244 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 108238 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108239 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106245 | 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 }, |
| 106249 | | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106250 | | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108246 | .required_features = .{ .sse4_1, null, null, null }, |
| 108247 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108248 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106251 | 108249 | .patterns = &.{ |
| 106252 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 108250 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106253 | 108251 | }, |
| 106254 | 108252 | .call_frame = .{ .alignment = .@"16" }, |
| 106255 | 108253 | .extra_temps = .{ |
| 106256 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106257 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106258 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 106259 | | .unused, |
| 108254 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108255 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108256 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108257 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106260 | 108258 | .unused, |
| 106261 | 108259 | .unused, |
| 106262 | 108260 | .unused, |
| ... | ... | @@ -106268,25 +108266,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106268 | 108266 | .dst_temps = .{ .mem, .unused }, |
| 106269 | 108267 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106270 | 108268 | .each = .{ .once = &.{ |
| 106271 | | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 106272 | | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 108269 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108270 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106273 | 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 }, |
| 106277 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106278 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108277 | .required_features = .{ .sse2, null, null, null }, |
| 108278 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108279 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106279 | 108280 | .patterns = &.{ |
| 106280 | 108281 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106281 | 108282 | }, |
| 106282 | 108283 | .call_frame = .{ .alignment = .@"16" }, |
| 106283 | 108284 | .extra_temps = .{ |
| 106284 | 108285 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106285 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106286 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106287 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106288 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106289 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 108286 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108287 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108288 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108289 | .unused, |
| 108290 | .unused, |
| 106290 | 108291 | .unused, |
| 106291 | 108292 | .unused, |
| 106292 | 108293 | .unused, |
| ... | ... | @@ -106296,31 +108297,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106296 | 108297 | .dst_temps = .{ .mem, .unused }, |
| 106297 | 108298 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106298 | 108299 | .each = .{ .once = &.{ |
| 106299 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106300 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106301 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106302 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106303 | | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106304 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106305 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106306 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108300 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108301 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108302 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108303 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108304 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108305 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106307 | 108306 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106308 | 108307 | } }, |
| 106309 | 108308 | }, .{ |
| 106310 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 106311 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106312 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108309 | .required_features = .{ .sse, null, null, null }, |
| 108310 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108311 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106313 | 108312 | .patterns = &.{ |
| 106314 | 108313 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106315 | 108314 | }, |
| 106316 | 108315 | .call_frame = .{ .alignment = .@"16" }, |
| 106317 | 108316 | .extra_temps = .{ |
| 106318 | 108317 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106319 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106320 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106321 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106322 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106323 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 108318 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108319 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108320 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108321 | .{ .type = .f32, .kind = .mem }, |
| 108322 | .unused, |
| 106324 | 108323 | .unused, |
| 106325 | 108324 | .unused, |
| 106326 | 108325 | .unused, |
| ... | ... | @@ -106330,31 +108329,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106330 | 108329 | .dst_temps = .{ .mem, .unused }, |
| 106331 | 108330 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106332 | 108331 | .each = .{ .once = &.{ |
| 106333 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106334 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106335 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106336 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106337 | | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106338 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106339 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106340 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108332 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108333 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108334 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108335 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108336 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108337 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108338 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106341 | 108339 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106342 | 108340 | } }, |
| 106343 | 108341 | }, .{ |
| 106344 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106345 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106346 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108342 | .required_features = .{ .avx, null, null, null }, |
| 108343 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108344 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106347 | 108345 | .patterns = &.{ |
| 106348 | 108346 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106349 | 108347 | }, |
| 106350 | 108348 | .call_frame = .{ .alignment = .@"16" }, |
| 106351 | 108349 | .extra_temps = .{ |
| 106352 | 108350 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106353 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106354 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106355 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106356 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106357 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 108351 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108352 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108353 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108354 | .unused, |
| 108355 | .unused, |
| 106358 | 108356 | .unused, |
| 106359 | 108357 | .unused, |
| 106360 | 108358 | .unused, |
| ... | ... | @@ -106364,31 +108362,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106364 | 108362 | .dst_temps = .{ .mem, .unused }, |
| 106365 | 108363 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106366 | 108364 | .each = .{ .once = &.{ |
| 106367 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106368 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106369 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106370 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106371 | | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106372 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106373 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106374 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108365 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108366 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108367 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108368 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108369 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106375 | 108370 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106376 | 108371 | } }, |
| 106377 | 108372 | }, .{ |
| 106378 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 106379 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106380 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108373 | .required_features = .{ .sse4_1, null, null, null }, |
| 108374 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108375 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106381 | 108376 | .patterns = &.{ |
| 106382 | 108377 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106383 | 108378 | }, |
| 106384 | 108379 | .call_frame = .{ .alignment = .@"16" }, |
| 106385 | 108380 | .extra_temps = .{ |
| 106386 | 108381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106387 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106388 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106389 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106390 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106391 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 108382 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108383 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108384 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108385 | .unused, |
| 108386 | .unused, |
| 106392 | 108387 | .unused, |
| 106393 | 108388 | .unused, |
| 106394 | 108389 | .unused, |
| ... | ... | @@ -106398,31 +108393,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106398 | 108393 | .dst_temps = .{ .mem, .unused }, |
| 106399 | 108394 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106400 | 108395 | .each = .{ .once = &.{ |
| 106401 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106402 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106403 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106404 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106405 | | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106406 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106407 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106408 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108396 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108397 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108398 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108399 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108400 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106409 | 108401 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106410 | 108402 | } }, |
| 106411 | 108403 | }, .{ |
| 106412 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106413 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106414 | | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108404 | .required_features = .{ .sse2, null, null, null }, |
| 108405 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108406 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106415 | 108407 | .patterns = &.{ |
| 106416 | 108408 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106417 | 108409 | }, |
| 106418 | 108410 | .call_frame = .{ .alignment = .@"16" }, |
| 106419 | 108411 | .extra_temps = .{ |
| 106420 | 108412 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106421 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106422 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106423 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106424 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106425 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixtfei" } } }, |
| 108413 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108414 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108415 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108416 | .unused, |
| 108417 | .unused, |
| 106426 | 108418 | .unused, |
| 106427 | 108419 | .unused, |
| 106428 | 108420 | .unused, |
| ... | ... | @@ -106432,31 +108424,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106432 | 108424 | .dst_temps = .{ .mem, .unused }, |
| 106433 | 108425 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106434 | 108426 | .each = .{ .once = &.{ |
| 106435 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106436 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106437 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106438 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106439 | | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106440 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106441 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106442 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108427 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108428 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108429 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108430 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108431 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108432 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106443 | 108433 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106444 | 108434 | } }, |
| 106445 | 108435 | }, .{ |
| 106446 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106447 | | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 106448 | | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 108436 | .required_features = .{ .sse, null, null, null }, |
| 108437 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108438 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106449 | 108439 | .patterns = &.{ |
| 106450 | 108440 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106451 | 108441 | }, |
| 106452 | 108442 | .call_frame = .{ .alignment = .@"16" }, |
| 106453 | 108443 | .extra_temps = .{ |
| 106454 | 108444 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106455 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106456 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106457 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106458 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 106459 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fixunstfei" } } }, |
| 108445 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108446 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108447 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108448 | .{ .type = .f32, .kind = .mem }, |
| 108449 | .unused, |
| 106460 | 108450 | .unused, |
| 106461 | 108451 | .unused, |
| 106462 | 108452 | .unused, |
| ... | ... | @@ -106466,42 +108456,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106466 | 108456 | .dst_temps = .{ .mem, .unused }, |
| 106467 | 108457 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106468 | 108458 | .each = .{ .once = &.{ |
| 106469 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106470 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106471 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106472 | | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106473 | | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 106474 | | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 106475 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106476 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108459 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108460 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108461 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108462 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108463 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108464 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108465 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106477 | 108466 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106478 | 108467 | } }, |
| 106479 | | } }) catch |err| switch (err) { |
| 106480 | | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| 106481 | | @tagName(air_tag), |
| 106482 | | ty_op.ty.toType().fmt(pt), |
| 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 }, |
| 108468 | }, .{ |
| 108469 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 108470 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108471 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106498 | 108472 | .patterns = &.{ |
| 106499 | | .{ .src = .{ .mem, .none, .none } }, |
| 106500 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 108473 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106501 | 108474 | }, |
| 106502 | 108475 | .extra_temps = .{ |
| 106503 | | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106504 | | .unused, |
| 108476 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108477 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 106505 | 108478 | .unused, |
| 106506 | 108479 | .unused, |
| 106507 | 108480 | .unused, |
| ... | ... | @@ -106512,26 +108485,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106512 | 108485 | .unused, |
| 106513 | 108486 | .unused, |
| 106514 | 108487 | }, |
| 106515 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 108488 | .dst_temps = .{ .mem, .unused }, |
| 108489 | .clobbers = .{ .eflags = true }, |
| 106516 | 108490 | .each = .{ .once = &.{ |
| 106517 | | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 106518 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106519 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 106520 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 108491 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108492 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 108493 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._ }, |
| 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 }, |
| 106524 | | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 106525 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108500 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108501 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108502 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106526 | 108503 | .patterns = &.{ |
| 106527 | | .{ .src = .{ .mem, .none, .none } }, |
| 106528 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 108504 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106529 | 108505 | }, |
| 108506 | .call_frame = .{ .alignment = .@"16" }, |
| 106530 | 108507 | .extra_temps = .{ |
| 106531 | | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106532 | | .unused, |
| 106533 | | .unused, |
| 106534 | | .unused, |
| 108508 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108509 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108510 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 108511 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106535 | 108512 | .unused, |
| 106536 | 108513 | .unused, |
| 106537 | 108514 | .unused, |
| ... | ... | @@ -106540,26 +108517,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106540 | 108517 | .unused, |
| 106541 | 108518 | .unused, |
| 106542 | 108519 | }, |
| 106543 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 108520 | .dst_temps = .{ .mem, .unused }, |
| 108521 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106544 | 108522 | .each = .{ .once = &.{ |
| 106545 | | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 106546 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106547 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 106548 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 108523 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108524 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108525 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 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 }, |
| 106552 | | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 106553 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108531 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108532 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108533 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106554 | 108534 | .patterns = &.{ |
| 106555 | | .{ .src = .{ .mem, .none, .none } }, |
| 106556 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 108535 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106557 | 108536 | }, |
| 108537 | .call_frame = .{ .alignment = .@"16" }, |
| 106558 | 108538 | .extra_temps = .{ |
| 106559 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106560 | | .unused, |
| 106561 | | .unused, |
| 106562 | | .unused, |
| 108539 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108540 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108541 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 108542 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106563 | 108543 | .unused, |
| 106564 | 108544 | .unused, |
| 106565 | 108545 | .unused, |
| ... | ... | @@ -106568,26 +108548,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106568 | 108548 | .unused, |
| 106569 | 108549 | .unused, |
| 106570 | 108550 | }, |
| 106571 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 108551 | .dst_temps = .{ .mem, .unused }, |
| 108552 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106572 | 108553 | .each = .{ .once = &.{ |
| 106573 | | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 106574 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106575 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 106576 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 108554 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108555 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108556 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 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 }, |
| 106580 | | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 106581 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108562 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108563 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108564 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106582 | 108565 | .patterns = &.{ |
| 106583 | | .{ .src = .{ .mem, .none, .none } }, |
| 106584 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 108566 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106585 | 108567 | }, |
| 108568 | .call_frame = .{ .alignment = .@"16" }, |
| 106586 | 108569 | .extra_temps = .{ |
| 106587 | | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106588 | | .unused, |
| 106589 | | .unused, |
| 106590 | | .unused, |
| 108570 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108571 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108572 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 108573 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106591 | 108574 | .unused, |
| 106592 | 108575 | .unused, |
| 106593 | 108576 | .unused, |
| ... | ... | @@ -106596,41 +108579,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106596 | 108579 | .unused, |
| 106597 | 108580 | .unused, |
| 106598 | 108581 | }, |
| 106599 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 106600 | | .each = .{ .once = &.{ |
| 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 }, |
| 108582 | .dst_temps = .{ .mem, .unused }, |
| 108583 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106615 | 108584 | .each = .{ .once = &.{ |
| 106616 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106617 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, |
| 106618 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 108585 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108586 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 106622 | | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 106623 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108594 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108595 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108596 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106624 | 108597 | .patterns = &.{ |
| 106625 | | .{ .src = .{ .mem, .none, .none } }, |
| 106626 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 108598 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106627 | 108599 | }, |
| 108600 | .call_frame = .{ .alignment = .@"16" }, |
| 106628 | 108601 | .extra_temps = .{ |
| 106629 | | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 106630 | | .unused, |
| 106631 | | .unused, |
| 106632 | | .unused, |
| 106633 | | .unused, |
| 108602 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108603 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108604 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 108605 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108606 | .{ .type = .f32, .kind = .mem }, |
| 106634 | 108607 | .unused, |
| 106635 | 108608 | .unused, |
| 106636 | 108609 | .unused, |
| ... | ... | @@ -106638,39 +108611,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106638 | 108611 | .unused, |
| 106639 | 108612 | .unused, |
| 106640 | 108613 | }, |
| 106641 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 106642 | | .each = .{ .once = &.{ |
| 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 }, |
| 108614 | .dst_temps = .{ .mem, .unused }, |
| 108615 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106657 | 108616 | .each = .{ .once = &.{ |
| 106658 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106659 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| 106660 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 108617 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108618 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 106664 | | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 106665 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108627 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108628 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108629 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106666 | 108630 | .patterns = &.{ |
| 106667 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 108631 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106668 | 108632 | }, |
| 108633 | .call_frame = .{ .alignment = .@"16" }, |
| 106669 | 108634 | .extra_temps = .{ |
| 106670 | | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 106671 | | .unused, |
| 106672 | | .unused, |
| 106673 | | .unused, |
| 108635 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108636 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108637 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108638 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106674 | 108639 | .unused, |
| 106675 | 108640 | .unused, |
| 106676 | 108641 | .unused, |
| ... | ... | @@ -106679,35 +108644,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106679 | 108644 | .unused, |
| 106680 | 108645 | .unused, |
| 106681 | 108646 | }, |
| 106682 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 106683 | | .clobbers = .{ .eflags = true }, |
| 108647 | .dst_temps = .{ .mem, .unused }, |
| 108648 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106684 | 108649 | .each = .{ .once = &.{ |
| 106685 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 106686 | | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 106687 | | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 106688 | | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 106689 | | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 106690 | | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| 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(.{}), ._ }, |
| 108650 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108651 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108652 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108653 | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108654 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108655 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106697 | 108656 | } }, |
| 106698 | 108657 | }, .{ |
| 106699 | | .required_features = .{ .sse, null, null, null }, |
| 106700 | | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 106701 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108658 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108659 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108660 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106702 | 108661 | .patterns = &.{ |
| 106703 | | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, |
| 108662 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106704 | 108663 | }, |
| 106705 | 108664 | .call_frame = .{ .alignment = .@"16" }, |
| 106706 | 108665 | .extra_temps = .{ |
| 106707 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106708 | | .unused, |
| 106709 | | .unused, |
| 106710 | | .unused, |
| 108666 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108667 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108668 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108669 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106711 | 108670 | .unused, |
| 106712 | 108671 | .unused, |
| 106713 | 108672 | .unused, |
| ... | ... | @@ -106716,25 +108675,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106716 | 108675 | .unused, |
| 106717 | 108676 | .unused, |
| 106718 | 108677 | }, |
| 106719 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108678 | .dst_temps = .{ .mem, .unused }, |
| 106720 | 108679 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106721 | 108680 | .each = .{ .once = &.{ |
| 106722 | | .{ ._, ._, .movsx, .src0d, .src0b, ._, ._ }, |
| 106723 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 108681 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 106727 | | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 106728 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108689 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108690 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108691 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106729 | 108692 | .patterns = &.{ |
| 106730 | | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, |
| 108693 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106731 | 108694 | }, |
| 106732 | 108695 | .call_frame = .{ .alignment = .@"16" }, |
| 106733 | 108696 | .extra_temps = .{ |
| 106734 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106735 | | .unused, |
| 106736 | | .unused, |
| 106737 | | .unused, |
| 108697 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108698 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108699 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108700 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106738 | 108701 | .unused, |
| 106739 | 108702 | .unused, |
| 106740 | 108703 | .unused, |
| ... | ... | @@ -106743,26 +108706,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106743 | 108706 | .unused, |
| 106744 | 108707 | .unused, |
| 106745 | 108708 | }, |
| 106746 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108709 | .dst_temps = .{ .mem, .unused }, |
| 106747 | 108710 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106748 | 108711 | .each = .{ .once = &.{ |
| 106749 | | .{ ._, ._, .movzx, .src0d, .src0b, ._, ._ }, |
| 106750 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 108712 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 106754 | | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 106755 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108721 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108722 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108723 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106756 | 108724 | .patterns = &.{ |
| 106757 | | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, |
| 108725 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106758 | 108726 | }, |
| 106759 | 108727 | .call_frame = .{ .alignment = .@"16" }, |
| 106760 | 108728 | .extra_temps = .{ |
| 106761 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106762 | | .unused, |
| 106763 | | .unused, |
| 106764 | | .unused, |
| 106765 | | .unused, |
| 108729 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108730 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108731 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108732 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108733 | .{ .type = .f32, .kind = .mem }, |
| 106766 | 108734 | .unused, |
| 106767 | 108735 | .unused, |
| 106768 | 108736 | .unused, |
| ... | ... | @@ -106770,26 +108738,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106770 | 108738 | .unused, |
| 106771 | 108739 | .unused, |
| 106772 | 108740 | }, |
| 106773 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108741 | .dst_temps = .{ .mem, .unused }, |
| 106774 | 108742 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106775 | 108743 | .each = .{ .once = &.{ |
| 106776 | | .{ ._, ._, .movsx, .src0d, .src0w, ._, ._ }, |
| 106777 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 108744 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 106781 | | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 106782 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108754 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108755 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108756 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106783 | 108757 | .patterns = &.{ |
| 106784 | | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, |
| 108758 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106785 | 108759 | }, |
| 106786 | 108760 | .call_frame = .{ .alignment = .@"16" }, |
| 106787 | 108761 | .extra_temps = .{ |
| 106788 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106789 | | .unused, |
| 106790 | | .unused, |
| 106791 | | .unused, |
| 106792 | | .unused, |
| 108762 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108763 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108764 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 108765 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 108766 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106793 | 108767 | .unused, |
| 106794 | 108768 | .unused, |
| 106795 | 108769 | .unused, |
| ... | ... | @@ -106797,26 +108771,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106797 | 108771 | .unused, |
| 106798 | 108772 | .unused, |
| 106799 | 108773 | }, |
| 106800 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108774 | .dst_temps = .{ .mem, .unused }, |
| 106801 | 108775 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106802 | 108776 | .each = .{ .once = &.{ |
| 106803 | | .{ ._, ._, .movzx, .src0d, .src0w, ._, ._ }, |
| 106804 | | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 108777 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 106808 | | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 106809 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108786 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108787 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108788 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106810 | 108789 | .patterns = &.{ |
| 106811 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 108790 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106812 | 108791 | }, |
| 106813 | 108792 | .call_frame = .{ .alignment = .@"16" }, |
| 106814 | 108793 | .extra_temps = .{ |
| 106815 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 106816 | | .unused, |
| 106817 | | .unused, |
| 106818 | | .unused, |
| 106819 | | .unused, |
| 108794 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108795 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108796 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 108797 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 108798 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106820 | 108799 | .unused, |
| 106821 | 108800 | .unused, |
| 106822 | 108801 | .unused, |
| ... | ... | @@ -106824,25 +108803,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106824 | 108803 | .unused, |
| 106825 | 108804 | .unused, |
| 106826 | 108805 | }, |
| 106827 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108806 | .dst_temps = .{ .mem, .unused }, |
| 106828 | 108807 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106829 | 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 }, |
| 106834 | | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 106835 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108818 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108819 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108820 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106836 | 108821 | .patterns = &.{ |
| 106837 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 108822 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106838 | 108823 | }, |
| 106839 | 108824 | .call_frame = .{ .alignment = .@"16" }, |
| 106840 | 108825 | .extra_temps = .{ |
| 106841 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 106842 | | .unused, |
| 106843 | | .unused, |
| 106844 | | .unused, |
| 106845 | | .unused, |
| 108826 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108827 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108828 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 108829 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 108830 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106846 | 108831 | .unused, |
| 106847 | 108832 | .unused, |
| 106848 | 108833 | .unused, |
| ... | ... | @@ -106850,51 +108835,98 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106850 | 108835 | .unused, |
| 106851 | 108836 | .unused, |
| 106852 | 108837 | }, |
| 106853 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108838 | .dst_temps = .{ .mem, .unused }, |
| 106854 | 108839 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106855 | 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 | 108851 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106860 | | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 106861 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108852 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108853 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106862 | 108854 | .patterns = &.{ |
| 106863 | | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 108855 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106864 | 108856 | }, |
| 106865 | 108857 | .call_frame = .{ .alignment = .@"16" }, |
| 106866 | 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 | 108865 | .unused, |
| 106869 | 108866 | .unused, |
| 106870 | 108867 | .unused, |
| 106871 | 108868 | .unused, |
| 106872 | 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 | 108899 | .unused, |
| 106874 | 108900 | .unused, |
| 106875 | 108901 | .unused, |
| 106876 | 108902 | .unused, |
| 106877 | 108903 | .unused, |
| 106878 | 108904 | }, |
| 106879 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108905 | .dst_temps = .{ .mem, .unused }, |
| 106880 | 108906 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106881 | 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 }, |
| 106886 | | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 106887 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108917 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108918 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108919 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106888 | 108920 | .patterns = &.{ |
| 106889 | | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 108921 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106890 | 108922 | }, |
| 106891 | 108923 | .call_frame = .{ .alignment = .@"16" }, |
| 106892 | 108924 | .extra_temps = .{ |
| 106893 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 106894 | | .unused, |
| 106895 | | .unused, |
| 106896 | | .unused, |
| 106897 | | .unused, |
| 108925 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108926 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108927 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 108928 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 108929 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106898 | 108930 | .unused, |
| 106899 | 108931 | .unused, |
| 106900 | 108932 | .unused, |
| ... | ... | @@ -106902,25 +108934,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106902 | 108934 | .unused, |
| 106903 | 108935 | .unused, |
| 106904 | 108936 | }, |
| 106905 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108937 | .dst_temps = .{ .mem, .unused }, |
| 106906 | 108938 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106907 | 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 }, |
| 106912 | | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 106913 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108949 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108950 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108951 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106914 | 108952 | .patterns = &.{ |
| 106915 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 108953 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106916 | 108954 | }, |
| 106917 | 108955 | .call_frame = .{ .alignment = .@"16" }, |
| 106918 | 108956 | .extra_temps = .{ |
| 106919 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 106920 | | .unused, |
| 106921 | | .unused, |
| 106922 | | .unused, |
| 106923 | | .unused, |
| 108957 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108958 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108959 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 108960 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 108961 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106924 | 108962 | .unused, |
| 106925 | 108963 | .unused, |
| 106926 | 108964 | .unused, |
| ... | ... | @@ -106928,193 +108966,206 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106928 | 108966 | .unused, |
| 106929 | 108967 | .unused, |
| 106930 | 108968 | }, |
| 106931 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 108969 | .dst_temps = .{ .mem, .unused }, |
| 106932 | 108970 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106933 | 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 | 108982 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 106938 | | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 106939 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108983 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108984 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106940 | 108985 | .patterns = &.{ |
| 106941 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 108986 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106942 | 108987 | }, |
| 106943 | 108988 | .call_frame = .{ .alignment = .@"16" }, |
| 106944 | 108989 | .extra_temps = .{ |
| 108990 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108991 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108992 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 106945 | 108993 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 106946 | | .unused, |
| 106947 | | .unused, |
| 106948 | | .unused, |
| 106949 | | .unused, |
| 106950 | | .unused, |
| 108994 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108995 | .{ .type = .f32, .kind = .mem }, |
| 106951 | 108996 | .unused, |
| 106952 | 108997 | .unused, |
| 106953 | 108998 | .unused, |
| 106954 | 108999 | .unused, |
| 106955 | 109000 | .unused, |
| 106956 | 109001 | }, |
| 106957 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 109002 | .dst_temps = .{ .mem, .unused }, |
| 106958 | 109003 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106959 | 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 }, |
| 106964 | | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106965 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 109016 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109017 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109018 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106966 | 109019 | .patterns = &.{ |
| 106967 | 109020 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106968 | 109021 | }, |
| 106969 | 109022 | .call_frame = .{ .alignment = .@"16" }, |
| 106970 | 109023 | .extra_temps = .{ |
| 109024 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109025 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106971 | 109026 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106972 | 109027 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106973 | 109028 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 106974 | | .unused, |
| 106975 | | .unused, |
| 106976 | | .unused, |
| 109029 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 106977 | 109030 | .unused, |
| 106978 | 109031 | .unused, |
| 106979 | 109032 | .unused, |
| 106980 | 109033 | .unused, |
| 106981 | 109034 | .unused, |
| 106982 | 109035 | }, |
| 106983 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 109036 | .dst_temps = .{ .mem, .unused }, |
| 106984 | 109037 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106985 | 109038 | .each = .{ .once = &.{ |
| 106986 | 109039 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106987 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 106988 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109040 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 106992 | | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 106993 | | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 109050 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 109051 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109052 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 106994 | 109053 | .patterns = &.{ |
| 106995 | 109054 | .{ .src = .{ .to_mem, .none, .none } }, |
| 106996 | 109055 | }, |
| 106997 | 109056 | .call_frame = .{ .alignment = .@"16" }, |
| 106998 | 109057 | .extra_temps = .{ |
| 109058 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109059 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106999 | 109060 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107000 | 109061 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107001 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 107002 | | .unused, |
| 107003 | | .unused, |
| 107004 | | .unused, |
| 109062 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 109063 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107005 | 109064 | .unused, |
| 107006 | 109065 | .unused, |
| 107007 | 109066 | .unused, |
| 107008 | 109067 | .unused, |
| 107009 | 109068 | .unused, |
| 107010 | 109069 | }, |
| 107011 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 109070 | .dst_temps = .{ .mem, .unused }, |
| 107012 | 109071 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107013 | 109072 | .each = .{ .once = &.{ |
| 107014 | 109073 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 107015 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107016 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107017 | | } }, |
| 107018 | | }, .{ |
| 107019 | | .required_features = .{ .f16c, null, null, null }, |
| 107020 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107021 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 107022 | | .patterns = &.{ |
| 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(.{}), ._ }, |
| 109074 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109075 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109076 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109077 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109078 | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 109079 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109080 | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 109081 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107045 | 109082 | } }, |
| 107046 | 109083 | }, .{ |
| 107047 | | .required_features = .{ .f16c, null, null, null }, |
| 107048 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107049 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 109084 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109085 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109086 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107050 | 109087 | .patterns = &.{ |
| 107051 | | .{ .src = .{ .mem, .none, .none } }, |
| 107052 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 109088 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107053 | 109089 | }, |
| 107054 | | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107055 | | .each = .{ .once = &.{ |
| 107056 | | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 107057 | | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107058 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 107059 | | } }, |
| 107060 | | }, .{ |
| 107061 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 107062 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107063 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 107064 | | .patterns = &.{ |
| 107065 | | .{ .src = .{ .mem, .none, .none } }, |
| 107066 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 109090 | .call_frame = .{ .alignment = .@"16" }, |
| 109091 | .extra_temps = .{ |
| 109092 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109093 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109094 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109095 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109096 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 109097 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109098 | .unused, |
| 109099 | .unused, |
| 109100 | .unused, |
| 109101 | .unused, |
| 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 | 109106 | .each = .{ .once = &.{ |
| 107070 | | .{ ._, .vp_d, .movzxb, .dst0y, .src0q, ._, ._ }, |
| 107071 | | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 107072 | | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 109107 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109108 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 107076 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107077 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 109119 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109120 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109121 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107078 | 109122 | .patterns = &.{ |
| 107079 | 109123 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107080 | 109124 | }, |
| 109125 | .call_frame = .{ .alignment = .@"16" }, |
| 107081 | 109126 | .extra_temps = .{ |
| 109127 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107082 | 109128 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107083 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 107084 | | .unused, |
| 107085 | | .unused, |
| 107086 | | .unused, |
| 107087 | | .unused, |
| 107088 | | .unused, |
| 109129 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109130 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109131 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 109132 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109133 | .{ .type = .f32, .kind = .mem }, |
| 107089 | 109134 | .unused, |
| 107090 | 109135 | .unused, |
| 107091 | 109136 | .unused, |
| 107092 | 109137 | .unused, |
| 107093 | 109138 | }, |
| 107094 | 109139 | .dst_temps = .{ .mem, .unused }, |
| 107095 | | .clobbers = .{ .eflags = true }, |
| 109140 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107096 | 109141 | .each = .{ .once = &.{ |
| 107097 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107098 | | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107099 | | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107100 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107101 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109142 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109143 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109144 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109145 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 109152 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107103 | 109153 | } }, |
| 107104 | 109154 | }, .{ |
| 107105 | | .required_features = .{ .f16c, null, null, null }, |
| 107106 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107107 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 109155 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109156 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109157 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107108 | 109158 | .patterns = &.{ |
| 107109 | 109159 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107110 | 109160 | }, |
| 109161 | .call_frame = .{ .alignment = .@"16" }, |
| 107111 | 109162 | .extra_temps = .{ |
| 109163 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107112 | 109164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107113 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 107114 | | .unused, |
| 107115 | | .unused, |
| 107116 | | .unused, |
| 107117 | | .unused, |
| 109165 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109166 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109167 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 109168 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107118 | 109169 | .unused, |
| 107119 | 109170 | .unused, |
| 107120 | 109171 | .unused, |
| ... | ... | @@ -107122,29 +109173,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107122 | 109173 | .unused, |
| 107123 | 109174 | }, |
| 107124 | 109175 | .dst_temps = .{ .mem, .unused }, |
| 107125 | | .clobbers = .{ .eflags = true }, |
| 109176 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107126 | 109177 | .each = .{ .once = &.{ |
| 107127 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107128 | | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107129 | | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107130 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 107131 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109178 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109179 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109180 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109181 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 109186 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107133 | 109187 | } }, |
| 107134 | 109188 | }, .{ |
| 107135 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 107136 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 107137 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 109189 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 109190 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109191 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107138 | 109192 | .patterns = &.{ |
| 107139 | 109193 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107140 | 109194 | }, |
| 109195 | .call_frame = .{ .alignment = .@"16" }, |
| 107141 | 109196 | .extra_temps = .{ |
| 109197 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107142 | 109198 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107143 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 107144 | | .unused, |
| 107145 | | .unused, |
| 107146 | | .unused, |
| 107147 | | .unused, |
| 109199 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109200 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109201 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 109202 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107148 | 109203 | .unused, |
| 107149 | 109204 | .unused, |
| 107150 | 109205 | .unused, |
| ... | ... | @@ -107152,29 +109207,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107152 | 109207 | .unused, |
| 107153 | 109208 | }, |
| 107154 | 109209 | .dst_temps = .{ .mem, .unused }, |
| 107155 | | .clobbers = .{ .eflags = true }, |
| 109210 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107156 | 109211 | .each = .{ .once = &.{ |
| 107157 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107158 | | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107159 | | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107160 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107161 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109212 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109213 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109214 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109215 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 109220 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107163 | 109221 | } }, |
| 107164 | 109222 | }, .{ |
| 107165 | | .required_features = .{ .f16c, null, null, null }, |
| 107166 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 107167 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 109223 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109224 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109225 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107168 | 109226 | .patterns = &.{ |
| 107169 | 109227 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107170 | 109228 | }, |
| 109229 | .call_frame = .{ .alignment = .@"16" }, |
| 107171 | 109230 | .extra_temps = .{ |
| 109231 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107172 | 109232 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107173 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 107174 | | .unused, |
| 107175 | | .unused, |
| 107176 | | .unused, |
| 107177 | | .unused, |
| 109233 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109234 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109235 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 109236 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107178 | 109237 | .unused, |
| 107179 | 109238 | .unused, |
| 107180 | 109239 | .unused, |
| ... | ... | @@ -107182,31 +109241,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107182 | 109241 | .unused, |
| 107183 | 109242 | }, |
| 107184 | 109243 | .dst_temps = .{ .mem, .unused }, |
| 107185 | | .clobbers = .{ .eflags = true }, |
| 109244 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107186 | 109245 | .each = .{ .once = &.{ |
| 107187 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107188 | | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107189 | | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107190 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 107191 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109246 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109247 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109248 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109249 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 109255 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107193 | 109256 | } }, |
| 107194 | 109257 | }, .{ |
| 107195 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 107196 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 109258 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109259 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 107197 | 109260 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 107198 | 109261 | .patterns = &.{ |
| 107199 | 109262 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107200 | 109263 | }, |
| 107201 | 109264 | .call_frame = .{ .alignment = .@"16" }, |
| 107202 | 109265 | .extra_temps = .{ |
| 109266 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107203 | 109267 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107204 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107205 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 109268 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109269 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109270 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 107206 | 109271 | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107207 | | .unused, |
| 107208 | | .unused, |
| 107209 | | .unused, |
| 109272 | .{ .type = .f32, .kind = .mem }, |
| 107210 | 109273 | .unused, |
| 107211 | 109274 | .unused, |
| 107212 | 109275 | .unused, |
| ... | ... | @@ -107215,26 +109278,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107215 | 109278 | .dst_temps = .{ .mem, .unused }, |
| 107216 | 109279 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107217 | 109280 | .each = .{ .once = &.{ |
| 107218 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107219 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107220 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107221 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107222 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 109281 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109282 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109283 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109284 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 109291 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107224 | 109292 | } }, |
| 107225 | 109293 | }, .{ |
| 107226 | 109294 | .required_features = .{ .avx, null, null, null }, |
| 107227 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107228 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109295 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 109296 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107229 | 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 | 109301 | .extra_temps = .{ |
| 107234 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107235 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107236 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107237 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109302 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109303 | .unused, |
| 109304 | .unused, |
| 109305 | .unused, |
| 107238 | 109306 | .unused, |
| 107239 | 109307 | .unused, |
| 107240 | 109308 | .unused, |
| ... | ... | @@ -107243,29 +109311,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107243 | 109311 | .unused, |
| 107244 | 109312 | .unused, |
| 107245 | 109313 | }, |
| 107246 | | .dst_temps = .{ .mem, .unused }, |
| 107247 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109314 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107248 | 109315 | .each = .{ .once = &.{ |
| 107249 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107250 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107251 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107252 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107253 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107254 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 109316 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 109317 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109318 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 107255 | 109319 | } }, |
| 107256 | 109320 | }, .{ |
| 107257 | | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| 107258 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107259 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109321 | .required_features = .{ .sse, null, null, null }, |
| 109322 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 109323 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107260 | 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 | 109328 | .extra_temps = .{ |
| 107265 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107266 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107267 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107268 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109329 | .{ .type = .i8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109330 | .unused, |
| 109331 | .unused, |
| 109332 | .unused, |
| 107269 | 109333 | .unused, |
| 107270 | 109334 | .unused, |
| 107271 | 109335 | .unused, |
| ... | ... | @@ -107274,29 +109338,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107274 | 109338 | .unused, |
| 107275 | 109339 | .unused, |
| 107276 | 109340 | }, |
| 107277 | | .dst_temps = .{ .mem, .unused }, |
| 107278 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109341 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107279 | 109342 | .each = .{ .once = &.{ |
| 107280 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107281 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107282 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107283 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107284 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107285 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109343 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 109344 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109345 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 107286 | 109346 | } }, |
| 107287 | 109347 | }, .{ |
| 107288 | | .required_features = .{ .sse4_1, null, null, null }, |
| 107289 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107290 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109348 | .required_features = .{ .avx, null, null, null }, |
| 109349 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 109350 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107291 | 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 | 109355 | .extra_temps = .{ |
| 107296 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107297 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107298 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107299 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109356 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109357 | .unused, |
| 109358 | .unused, |
| 109359 | .unused, |
| 107300 | 109360 | .unused, |
| 107301 | 109361 | .unused, |
| 107302 | 109362 | .unused, |
| ... | ... | @@ -107305,29 +109365,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107305 | 109365 | .unused, |
| 107306 | 109366 | .unused, |
| 107307 | 109367 | }, |
| 107308 | | .dst_temps = .{ .mem, .unused }, |
| 107309 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109368 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107310 | 109369 | .each = .{ .once = &.{ |
| 107311 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107312 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107313 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107314 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107315 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107316 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 109370 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 109371 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109372 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 107317 | 109373 | } }, |
| 107318 | 109374 | }, .{ |
| 107319 | | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 107320 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107321 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109375 | .required_features = .{ .sse, null, null, null }, |
| 109376 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 109377 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107322 | 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 | 109382 | .extra_temps = .{ |
| 107327 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107328 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107329 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107330 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109383 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109384 | .unused, |
| 109385 | .unused, |
| 109386 | .unused, |
| 107331 | 109387 | .unused, |
| 107332 | 109388 | .unused, |
| 107333 | 109389 | .unused, |
| ... | ... | @@ -107336,30 +109392,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107336 | 109392 | .unused, |
| 107337 | 109393 | .unused, |
| 107338 | 109394 | }, |
| 107339 | | .dst_temps = .{ .mem, .unused }, |
| 107340 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109395 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107341 | 109396 | .each = .{ .once = &.{ |
| 107342 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107343 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107344 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 109397 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 109398 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109399 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 107349 | 109400 | } }, |
| 107350 | 109401 | }, .{ |
| 107351 | | .required_features = .{ .sse2, null, null, null }, |
| 107352 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107353 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109402 | .required_features = .{ .avx, null, null, null }, |
| 109403 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 109404 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107354 | 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 | 109409 | .extra_temps = .{ |
| 107359 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107360 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107361 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107362 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109410 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109411 | .unused, |
| 109412 | .unused, |
| 109413 | .unused, |
| 107363 | 109414 | .unused, |
| 107364 | 109415 | .unused, |
| 107365 | 109416 | .unused, |
| ... | ... | @@ -107368,31 +109419,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107368 | 109419 | .unused, |
| 107369 | 109420 | .unused, |
| 107370 | 109421 | }, |
| 107371 | | .dst_temps = .{ .mem, .unused }, |
| 107372 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109422 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107373 | 109423 | .each = .{ .once = &.{ |
| 107374 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107375 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107376 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 109424 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 109425 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109426 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 107381 | 109427 | } }, |
| 107382 | 109428 | }, .{ |
| 107383 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 107384 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107385 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109429 | .required_features = .{ .sse, null, null, null }, |
| 109430 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 109431 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107386 | 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 | 109436 | .extra_temps = .{ |
| 107391 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107392 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107393 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107394 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107395 | | .{ .type = .f32, .kind = .mem }, |
| 109437 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109438 | .unused, |
| 109439 | .unused, |
| 109440 | .unused, |
| 109441 | .unused, |
| 107396 | 109442 | .unused, |
| 107397 | 109443 | .unused, |
| 107398 | 109444 | .unused, |
| ... | ... | @@ -107400,32 +109446,53 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107400 | 109446 | .unused, |
| 107401 | 109447 | .unused, |
| 107402 | 109448 | }, |
| 107403 | | .dst_temps = .{ .mem, .unused }, |
| 107404 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109449 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107405 | 109450 | .each = .{ .once = &.{ |
| 107406 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107407 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107408 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107409 | | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 107410 | | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 107411 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107412 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107413 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109451 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 109452 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109453 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109454 | } }, |
| 109455 | }, .{ |
| 109456 | .required_features = .{ .avx, null, null, null }, |
| 109457 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 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 | 109483 | .required_features = .{ .sse, null, null, null }, |
| 107417 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107418 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109484 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 109485 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107419 | 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 | 109490 | .extra_temps = .{ |
| 107424 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107425 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107426 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107427 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107428 | | .{ .type = .f32, .kind = .mem }, |
| 109491 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109492 | .unused, |
| 109493 | .unused, |
| 109494 | .unused, |
| 109495 | .unused, |
| 107429 | 109496 | .unused, |
| 107430 | 109497 | .unused, |
| 107431 | 109498 | .unused, |
| ... | ... | @@ -107433,31 +109500,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107433 | 109500 | .unused, |
| 107434 | 109501 | .unused, |
| 107435 | 109502 | }, |
| 107436 | | .dst_temps = .{ .mem, .unused }, |
| 107437 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109503 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107438 | 109504 | .each = .{ .once = &.{ |
| 107439 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107440 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107441 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 109505 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 109506 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109507 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 107447 | 109508 | } }, |
| 107448 | 109509 | }, .{ |
| 107449 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 107450 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107451 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109510 | .required_features = .{ .avx, null, null, null }, |
| 109511 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 109512 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107452 | 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 | 109543 | .extra_temps = .{ |
| 107457 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107458 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107459 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107460 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109544 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109545 | .unused, |
| 109546 | .unused, |
| 109547 | .unused, |
| 107461 | 109548 | .unused, |
| 107462 | 109549 | .unused, |
| 107463 | 109550 | .unused, |
| ... | ... | @@ -107466,29 +109553,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107466 | 109553 | .unused, |
| 107467 | 109554 | .unused, |
| 107468 | 109555 | }, |
| 107469 | | .dst_temps = .{ .mem, .unused }, |
| 107470 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109556 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107471 | 109557 | .each = .{ .once = &.{ |
| 107472 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107473 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107474 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107475 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107476 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107477 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109558 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109559 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109560 | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, |
| 107478 | 109561 | } }, |
| 107479 | 109562 | }, .{ |
| 107480 | | .required_features = .{ .avx, null, null, null }, |
| 107481 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107482 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109563 | .required_features = .{ .sse, null, null, null }, |
| 109564 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 109565 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107483 | 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 | 109570 | .extra_temps = .{ |
| 107488 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107489 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107490 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107491 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109571 | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 109572 | .unused, |
| 109573 | .unused, |
| 109574 | .unused, |
| 107492 | 109575 | .unused, |
| 107493 | 109576 | .unused, |
| 107494 | 109577 | .unused, |
| ... | ... | @@ -107497,29 +109580,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107497 | 109580 | .unused, |
| 107498 | 109581 | .unused, |
| 107499 | 109582 | }, |
| 107500 | | .dst_temps = .{ .mem, .unused }, |
| 107501 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109583 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 107502 | 109584 | .each = .{ .once = &.{ |
| 107503 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107504 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107505 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107506 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107507 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107508 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 109585 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109586 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109587 | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0q, ._, ._ }, |
| 107509 | 109588 | } }, |
| 107510 | 109589 | }, .{ |
| 107511 | | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| 107512 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107513 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109590 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109591 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 109592 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107514 | 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 | 109622 | .extra_temps = .{ |
| 107519 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107520 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107521 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107522 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109623 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 109624 | .unused, |
| 109625 | .unused, |
| 109626 | .unused, |
| 107523 | 109627 | .unused, |
| 107524 | 109628 | .unused, |
| 107525 | 109629 | .unused, |
| ... | ... | @@ -107528,29 +109632,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107528 | 109632 | .unused, |
| 107529 | 109633 | .unused, |
| 107530 | 109634 | }, |
| 107531 | | .dst_temps = .{ .mem, .unused }, |
| 107532 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109635 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109636 | .clobbers = .{ .eflags = true }, |
| 107533 | 109637 | .each = .{ .once = &.{ |
| 107534 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107535 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107536 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107537 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107538 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107539 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109638 | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109639 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 109640 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 109641 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109642 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 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 }, |
| 107543 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107544 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109651 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109652 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 109653 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107545 | 109654 | .patterns = &.{ |
| 107546 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 109655 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 107547 | 109656 | }, |
| 107548 | | .call_frame = .{ .alignment = .@"16" }, |
| 107549 | 109657 | .extra_temps = .{ |
| 107550 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107551 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107552 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107553 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109658 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 109659 | .unused, |
| 109660 | .unused, |
| 109661 | .unused, |
| 107554 | 109662 | .unused, |
| 107555 | 109663 | .unused, |
| 107556 | 109664 | .unused, |
| ... | ... | @@ -107559,29 +109667,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107559 | 109667 | .unused, |
| 107560 | 109668 | .unused, |
| 107561 | 109669 | }, |
| 107562 | | .dst_temps = .{ .mem, .unused }, |
| 107563 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109670 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109671 | .clobbers = .{ .eflags = true }, |
| 107564 | 109672 | .each = .{ .once = &.{ |
| 107565 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107566 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107567 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107568 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107569 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 107570 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 109673 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109674 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 109675 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 109676 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109677 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 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 }, |
| 107574 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107575 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109686 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109687 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 109688 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107576 | 109689 | .patterns = &.{ |
| 107577 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 109690 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 107578 | 109691 | }, |
| 107579 | 109692 | .call_frame = .{ .alignment = .@"16" }, |
| 107580 | 109693 | .extra_temps = .{ |
| 107581 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107582 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107583 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107584 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109694 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, |
| 109695 | .unused, |
| 109696 | .unused, |
| 109697 | .unused, |
| 107585 | 109698 | .unused, |
| 107586 | 109699 | .unused, |
| 107587 | 109700 | .unused, |
| ... | ... | @@ -107590,30 +109703,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107590 | 109703 | .unused, |
| 107591 | 109704 | .unused, |
| 107592 | 109705 | }, |
| 107593 | | .dst_temps = .{ .mem, .unused }, |
| 109706 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107594 | 109707 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107595 | 109708 | .each = .{ .once = &.{ |
| 107596 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 109709 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 107603 | 109710 | } }, |
| 107604 | 109711 | }, .{ |
| 107605 | | .required_features = .{ .sse2, null, null, null }, |
| 107606 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107607 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109712 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109713 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 109714 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107608 | 109715 | .patterns = &.{ |
| 107609 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 109716 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 107610 | 109717 | }, |
| 107611 | 109718 | .call_frame = .{ .alignment = .@"16" }, |
| 107612 | 109719 | .extra_temps = .{ |
| 107613 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107614 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107615 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107616 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109720 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, |
| 109721 | .unused, |
| 109722 | .unused, |
| 109723 | .unused, |
| 107617 | 109724 | .unused, |
| 107618 | 109725 | .unused, |
| 107619 | 109726 | .unused, |
| ... | ... | @@ -107622,31 +109729,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107622 | 109729 | .unused, |
| 107623 | 109730 | .unused, |
| 107624 | 109731 | }, |
| 107625 | | .dst_temps = .{ .mem, .unused }, |
| 109732 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107626 | 109733 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107627 | 109734 | .each = .{ .once = &.{ |
| 107628 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 109735 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 107635 | 109736 | } }, |
| 107636 | 109737 | }, .{ |
| 107637 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 107638 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107639 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109738 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109739 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109740 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107640 | 109741 | .patterns = &.{ |
| 107641 | 109742 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107642 | 109743 | }, |
| 107643 | 109744 | .call_frame = .{ .alignment = .@"16" }, |
| 107644 | 109745 | .extra_temps = .{ |
| 107645 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107646 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107647 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107648 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107649 | | .{ .type = .f32, .kind = .mem }, |
| 109746 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109747 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109748 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, |
| 109749 | .unused, |
| 109750 | .unused, |
| 107650 | 109751 | .unused, |
| 107651 | 109752 | .unused, |
| 107652 | 109753 | .unused, |
| ... | ... | @@ -107654,32 +109755,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107654 | 109755 | .unused, |
| 107655 | 109756 | .unused, |
| 107656 | 109757 | }, |
| 107657 | | .dst_temps = .{ .mem, .unused }, |
| 109758 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107658 | 109759 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107659 | 109760 | .each = .{ .once = &.{ |
| 107660 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107661 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109761 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109762 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107662 | 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 }, |
| 107671 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 107672 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 109766 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109767 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109768 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 107673 | 109769 | .patterns = &.{ |
| 107674 | 109770 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107675 | 109771 | }, |
| 107676 | 109772 | .call_frame = .{ .alignment = .@"16" }, |
| 107677 | 109773 | .extra_temps = .{ |
| 107678 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107679 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 107680 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 107681 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107682 | | .{ .type = .f32, .kind = .mem }, |
| 109774 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109775 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109776 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, |
| 109777 | .unused, |
| 109778 | .unused, |
| 107683 | 109779 | .unused, |
| 107684 | 109780 | .unused, |
| 107685 | 109781 | .unused, |
| ... | ... | @@ -107687,78 +109783,95 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107687 | 109783 | .unused, |
| 107688 | 109784 | .unused, |
| 107689 | 109785 | }, |
| 107690 | | .dst_temps = .{ .mem, .unused }, |
| 109786 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 107691 | 109787 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107692 | 109788 | .each = .{ .once = &.{ |
| 107693 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107694 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109789 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109790 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 107695 | 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 }, |
| 107704 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 107705 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 109794 | .required_features = .{ .avx, null, null, null }, |
| 109795 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109796 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107706 | 109797 | .patterns = &.{ |
| 107707 | 109798 | .{ .src = .{ .mem, .none, .none } }, |
| 107708 | 109799 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107709 | 109800 | }, |
| 107710 | 109801 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107711 | 109802 | .each = .{ .once = &.{ |
| 107712 | | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 109803 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 107713 | 109804 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107714 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 107715 | 109805 | } }, |
| 107716 | 109806 | }, .{ |
| 107717 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 107718 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 107719 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 109807 | .required_features = .{ .sse4_1, null, null, null }, |
| 109808 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109809 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107720 | 109810 | .patterns = &.{ |
| 107721 | 109811 | .{ .src = .{ .mem, .none, .none } }, |
| 107722 | 109812 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107723 | 109813 | }, |
| 107724 | 109814 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107725 | 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 | 109830 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 107728 | | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 107729 | 109831 | } }, |
| 107730 | 109832 | }, .{ |
| 107731 | | .required_features = .{ .f16c, null, null, null }, |
| 107732 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 107733 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 109833 | .required_features = .{ .avx, null, null, null }, |
| 109834 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109835 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107734 | 109836 | .patterns = &.{ |
| 107735 | 109837 | .{ .src = .{ .mem, .none, .none } }, |
| 107736 | 109838 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107737 | 109839 | }, |
| 107738 | 109840 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107739 | 109841 | .each = .{ .once = &.{ |
| 107740 | | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 109842 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 107741 | 109843 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 107742 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 107743 | 109844 | } }, |
| 107744 | 109845 | }, .{ |
| 107745 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 107746 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 107747 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 109846 | .required_features = .{ .sse4_1, null, null, null }, |
| 109847 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109848 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107748 | 109849 | .patterns = &.{ |
| 107749 | 109850 | .{ .src = .{ .mem, .none, .none } }, |
| 107750 | 109851 | .{ .src = .{ .to_sse, .none, .none } }, |
| 107751 | 109852 | }, |
| 107752 | 109853 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 107753 | 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 | 109869 | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 107756 | | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 107757 | 109870 | } }, |
| 107758 | 109871 | }, .{ |
| 107759 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 107760 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 107761 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 109872 | .required_features = .{ .avx2, null, null, null }, |
| 109873 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 109874 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 107762 | 109875 | .patterns = &.{ |
| 107763 | 109876 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107764 | 109877 | }, |
| ... | ... | @@ -107779,16 +109892,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107779 | 109892 | .clobbers = .{ .eflags = true }, |
| 107780 | 109893 | .each = .{ .once = &.{ |
| 107781 | 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 | 109896 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107784 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107785 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 109897 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 109898 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107786 | 109899 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107787 | 109900 | } }, |
| 107788 | 109901 | }, .{ |
| 107789 | | .required_features = .{ .f16c, null, null, null }, |
| 107790 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 107791 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 109902 | .required_features = .{ .avx, null, null, null }, |
| 109903 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109904 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107792 | 109905 | .patterns = &.{ |
| 107793 | 109906 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107794 | 109907 | }, |
| ... | ... | @@ -107809,16 +109922,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107809 | 109922 | .clobbers = .{ .eflags = true }, |
| 107810 | 109923 | .each = .{ .once = &.{ |
| 107811 | 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 | 109926 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107814 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 107815 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109927 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 109928 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107816 | 109929 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107817 | 109930 | } }, |
| 107818 | 109931 | }, .{ |
| 107819 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 107820 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 107821 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 109932 | .required_features = .{ .sse4_1, null, null, null }, |
| 109933 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .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 | 109965 | .patterns = &.{ |
| 107823 | 109966 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107824 | 109967 | }, |
| ... | ... | @@ -107839,16 +109982,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107839 | 109982 | .clobbers = .{ .eflags = true }, |
| 107840 | 109983 | .each = .{ .once = &.{ |
| 107841 | 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 | 109986 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 107844 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 107845 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 109987 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 109988 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107846 | 109989 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107847 | 109990 | } }, |
| 107848 | 109991 | }, .{ |
| 107849 | | .required_features = .{ .f16c, null, null, null }, |
| 107850 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 107851 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 109992 | .required_features = .{ .avx, null, null, null }, |
| 109993 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109994 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 107852 | 109995 | .patterns = &.{ |
| 107853 | 109996 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107854 | 109997 | }, |
| ... | ... | @@ -107869,16 +110012,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107869 | 110012 | .clobbers = .{ .eflags = true }, |
| 107870 | 110013 | .each = .{ .once = &.{ |
| 107871 | 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 | 110016 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 107874 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 107875 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 110017 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110018 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107876 | 110019 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107877 | 110020 | } }, |
| 107878 | 110021 | }, .{ |
| 107879 | | .required_features = .{ .avx, null, null, null }, |
| 107880 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107881 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110022 | .required_features = .{ .sse4_1, null, null, null }, |
| 110023 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .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 | 110055 | .patterns = &.{ |
| 107883 | 110056 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107884 | 110057 | }, |
| ... | ... | @@ -107886,8 +110059,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107886 | 110059 | .extra_temps = .{ |
| 107887 | 110060 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107888 | 110061 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107889 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107890 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110062 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110063 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 107891 | 110064 | .unused, |
| 107892 | 110065 | .unused, |
| 107893 | 110066 | .unused, |
| ... | ... | @@ -107900,16 +110073,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107900 | 110073 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107901 | 110074 | .each = .{ .once = &.{ |
| 107902 | 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 | 110077 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107905 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107906 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110078 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110079 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107907 | 110080 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107908 | 110081 | } }, |
| 107909 | 110082 | }, .{ |
| 107910 | | .required_features = .{ .sse4_1, null, null, null }, |
| 107911 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107912 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110083 | .required_features = .{ .avx, null, null, null }, |
| 110084 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110085 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 107913 | 110086 | .patterns = &.{ |
| 107914 | 110087 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107915 | 110088 | }, |
| ... | ... | @@ -107917,8 +110090,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107917 | 110090 | .extra_temps = .{ |
| 107918 | 110091 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107919 | 110092 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107920 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107921 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110093 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110094 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 107922 | 110095 | .unused, |
| 107923 | 110096 | .unused, |
| 107924 | 110097 | .unused, |
| ... | ... | @@ -107931,16 +110104,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107931 | 110104 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107932 | 110105 | .each = .{ .once = &.{ |
| 107933 | 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 | 110108 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107936 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 107937 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 107938 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110109 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110110 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110111 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 107939 | 110112 | } }, |
| 107940 | 110113 | }, .{ |
| 107941 | | .required_features = .{ .sse2, null, null, null }, |
| 107942 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107943 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110114 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 110115 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110116 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 107944 | 110117 | .patterns = &.{ |
| 107945 | 110118 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107946 | 110119 | }, |
| ... | ... | @@ -107948,8 +110121,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107948 | 110121 | .extra_temps = .{ |
| 107949 | 110122 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107950 | 110123 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107951 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107952 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110124 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110125 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 107953 | 110126 | .unused, |
| 107954 | 110127 | .unused, |
| 107955 | 110128 | .unused, |
| ... | ... | @@ -107962,17 +110135,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107962 | 110135 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107963 | 110136 | .each = .{ .once = &.{ |
| 107964 | 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 | 110139 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107967 | | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 107968 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 107969 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110140 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110141 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 107970 | 110142 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107971 | 110143 | } }, |
| 107972 | 110144 | }, .{ |
| 107973 | 110145 | .required_features = .{ .sse, null, null, null }, |
| 107974 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 107975 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110146 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110147 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 107976 | 110148 | .patterns = &.{ |
| 107977 | 110149 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107978 | 110150 | }, |
| ... | ... | @@ -107980,9 +110152,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107980 | 110152 | .extra_temps = .{ |
| 107981 | 110153 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107982 | 110154 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 107983 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 107984 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 107985 | | .{ .type = .f32, .kind = .mem }, |
| 110155 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110156 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 110157 | .unused, |
| 107986 | 110158 | .unused, |
| 107987 | 110159 | .unused, |
| 107988 | 110160 | .unused, |
| ... | ... | @@ -107994,18 +110166,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107994 | 110166 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107995 | 110167 | .each = .{ .once = &.{ |
| 107996 | 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 | 110170 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107999 | | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108000 | | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108001 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108002 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108003 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110171 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110172 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110173 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108004 | 110174 | } }, |
| 108005 | 110175 | }, .{ |
| 108006 | | .required_features = .{ .avx, null, null, null }, |
| 108007 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108008 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110176 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 110177 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110178 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108009 | 110179 | .patterns = &.{ |
| 108010 | 110180 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108011 | 110181 | }, |
| ... | ... | @@ -108013,8 +110183,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108013 | 110183 | .extra_temps = .{ |
| 108014 | 110184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108015 | 110185 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108016 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108017 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110186 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110187 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108018 | 110188 | .unused, |
| 108019 | 110189 | .unused, |
| 108020 | 110190 | .unused, |
| ... | ... | @@ -108027,16 +110197,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108027 | 110197 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108028 | 110198 | .each = .{ .once = &.{ |
| 108029 | 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 | 110201 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108032 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108033 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110202 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110203 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108034 | 110204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108035 | 110205 | } }, |
| 108036 | 110206 | }, .{ |
| 108037 | | .required_features = .{ .sse4_1, null, null, null }, |
| 108038 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108039 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110207 | .required_features = .{ .avx, null, null, null }, |
| 110208 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110209 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108040 | 110210 | .patterns = &.{ |
| 108041 | 110211 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108042 | 110212 | }, |
| ... | ... | @@ -108044,8 +110214,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108044 | 110214 | .extra_temps = .{ |
| 108045 | 110215 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108046 | 110216 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108047 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108048 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110217 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110218 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108049 | 110219 | .unused, |
| 108050 | 110220 | .unused, |
| 108051 | 110221 | .unused, |
| ... | ... | @@ -108058,16 +110228,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108058 | 110228 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108059 | 110229 | .each = .{ .once = &.{ |
| 108060 | 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 | 110232 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108063 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108064 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108065 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110233 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110234 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110235 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108066 | 110236 | } }, |
| 108067 | 110237 | }, .{ |
| 108068 | | .required_features = .{ .sse2, null, null, null }, |
| 108069 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108070 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110238 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 110239 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110240 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108071 | 110241 | .patterns = &.{ |
| 108072 | 110242 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108073 | 110243 | }, |
| ... | ... | @@ -108075,8 +110245,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108075 | 110245 | .extra_temps = .{ |
| 108076 | 110246 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108077 | 110247 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108078 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108079 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110248 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110249 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108080 | 110250 | .unused, |
| 108081 | 110251 | .unused, |
| 108082 | 110252 | .unused, |
| ... | ... | @@ -108089,17 +110259,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108089 | 110259 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108090 | 110260 | .each = .{ .once = &.{ |
| 108091 | 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 | 110263 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108094 | | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108095 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108096 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110264 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110265 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108097 | 110266 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108098 | 110267 | } }, |
| 108099 | 110268 | }, .{ |
| 108100 | 110269 | .required_features = .{ .sse, null, null, null }, |
| 108101 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 108102 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110270 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110271 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108103 | 110272 | .patterns = &.{ |
| 108104 | 110273 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108105 | 110274 | }, |
| ... | ... | @@ -108107,9 +110276,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108107 | 110276 | .extra_temps = .{ |
| 108108 | 110277 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108109 | 110278 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108110 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108111 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108112 | | .{ .type = .f32, .kind = .mem }, |
| 110279 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110280 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 110281 | .unused, |
| 108113 | 110282 | .unused, |
| 108114 | 110283 | .unused, |
| 108115 | 110284 | .unused, |
| ... | ... | @@ -108121,44 +110290,94 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108121 | 110290 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108122 | 110291 | .each = .{ .once = &.{ |
| 108123 | 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 | 110294 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108126 | | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108127 | | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108128 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108129 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108130 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110295 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110296 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110297 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108131 | 110298 | } }, |
| 108132 | 110299 | }, .{ |
| 108133 | | .required_features = .{ .f16c, null, null, null }, |
| 108134 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 108135 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 110300 | .required_features = .{ .avx, null, null, null }, |
| 110301 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110302 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108136 | 110303 | .patterns = &.{ |
| 108137 | 110304 | .{ .src = .{ .mem, .none, .none } }, |
| 108138 | 110305 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108139 | 110306 | }, |
| 108140 | 110307 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108141 | 110308 | .each = .{ .once = &.{ |
| 108142 | | .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, |
| 108143 | | .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, |
| 110309 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 110310 | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 108144 | 110311 | } }, |
| 108145 | 110312 | }, .{ |
| 108146 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 108147 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 108148 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 110313 | .required_features = .{ .sse4_1, null, null, null }, |
| 110314 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110315 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108149 | 110316 | .patterns = &.{ |
| 108150 | 110317 | .{ .src = .{ .mem, .none, .none } }, |
| 108151 | 110318 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108152 | 110319 | }, |
| 108153 | 110320 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108154 | 110321 | .each = .{ .once = &.{ |
| 108155 | | .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, |
| 108156 | | .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, |
| 110322 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 110323 | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 108157 | 110324 | } }, |
| 108158 | 110325 | }, .{ |
| 108159 | | .required_features = .{ .f16c, .avx2, null, null }, |
| 108160 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 108161 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, .any }, |
| 110326 | .required_features = .{ .avx2, null, null, null }, |
| 110327 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .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 | 110381 | .patterns = &.{ |
| 108163 | 110382 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108164 | 110383 | }, |
| ... | ... | @@ -108178,16 +110397,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108178 | 110397 | .dst_temps = .{ .mem, .unused }, |
| 108179 | 110398 | .clobbers = .{ .eflags = true }, |
| 108180 | 110399 | .each = .{ .once = &.{ |
| 108181 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108182 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108183 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 110400 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110401 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110402 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 110403 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 108184 | 110404 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108185 | 110405 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108186 | 110406 | } }, |
| 108187 | 110407 | }, .{ |
| 108188 | | .required_features = .{ .f16c, null, null, null }, |
| 108189 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 108190 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .word } }, .any }, |
| 110408 | .required_features = .{ .avx, null, null, null }, |
| 110409 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110410 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108191 | 110411 | .patterns = &.{ |
| 108192 | 110412 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108193 | 110413 | }, |
| ... | ... | @@ -108207,25 +110427,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108207 | 110427 | .dst_temps = .{ .mem, .unused }, |
| 108208 | 110428 | .clobbers = .{ .eflags = true }, |
| 108209 | 110429 | .each = .{ .once = &.{ |
| 108210 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108211 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108212 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 110430 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110431 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110432 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110433 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 108213 | 110434 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108214 | 110435 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108215 | 110436 | } }, |
| 108216 | 110437 | }, .{ |
| 108217 | | .required_features = .{ .avx, null, null, null }, |
| 108218 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108219 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110438 | .required_features = .{ .sse4_1, null, null, null }, |
| 110439 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110440 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108220 | 110441 | .patterns = &.{ |
| 108221 | 110442 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108222 | 110443 | }, |
| 108223 | | .call_frame = .{ .alignment = .@"16" }, |
| 108224 | 110444 | .extra_temps = .{ |
| 108225 | 110445 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108226 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108227 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108228 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110446 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 110447 | .unused, |
| 110448 | .unused, |
| 108229 | 110449 | .unused, |
| 108230 | 110450 | .unused, |
| 108231 | 110451 | .unused, |
| ... | ... | @@ -108235,28 +110455,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108235 | 110455 | .unused, |
| 108236 | 110456 | }, |
| 108237 | 110457 | .dst_temps = .{ .mem, .unused }, |
| 108238 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110458 | .clobbers = .{ .eflags = true }, |
| 108239 | 110459 | .each = .{ .once = &.{ |
| 108240 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108241 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108242 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108243 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108244 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110460 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110461 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110462 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110463 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110464 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108245 | 110465 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108246 | 110466 | } }, |
| 108247 | 110467 | }, .{ |
| 108248 | | .required_features = .{ .sse4_1, null, null, null }, |
| 108249 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108250 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110468 | .required_features = .{ .avx2, null, null, null }, |
| 110469 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 110470 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 108251 | 110471 | .patterns = &.{ |
| 108252 | 110472 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108253 | 110473 | }, |
| 108254 | | .call_frame = .{ .alignment = .@"16" }, |
| 108255 | 110474 | .extra_temps = .{ |
| 108256 | 110475 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108257 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108258 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108259 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110476 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 110477 | .unused, |
| 110478 | .unused, |
| 108260 | 110479 | .unused, |
| 108261 | 110480 | .unused, |
| 108262 | 110481 | .unused, |
| ... | ... | @@ -108266,28 +110485,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108266 | 110485 | .unused, |
| 108267 | 110486 | }, |
| 108268 | 110487 | .dst_temps = .{ .mem, .unused }, |
| 108269 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110488 | .clobbers = .{ .eflags = true }, |
| 108270 | 110489 | .each = .{ .once = &.{ |
| 108271 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108272 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108273 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108274 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108275 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110490 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110491 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110492 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 110493 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 110494 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108276 | 110495 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108277 | 110496 | } }, |
| 108278 | 110497 | }, .{ |
| 108279 | | .required_features = .{ .sse2, null, null, null }, |
| 108280 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108281 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110498 | .required_features = .{ .avx, null, null, null }, |
| 110499 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110500 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108282 | 110501 | .patterns = &.{ |
| 108283 | 110502 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108284 | 110503 | }, |
| 108285 | | .call_frame = .{ .alignment = .@"16" }, |
| 108286 | 110504 | .extra_temps = .{ |
| 108287 | 110505 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108288 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108289 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108290 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110506 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 110507 | .unused, |
| 110508 | .unused, |
| 108291 | 110509 | .unused, |
| 108292 | 110510 | .unused, |
| 108293 | 110511 | .unused, |
| ... | ... | @@ -108297,30 +110515,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108297 | 110515 | .unused, |
| 108298 | 110516 | }, |
| 108299 | 110517 | .dst_temps = .{ .mem, .unused }, |
| 108300 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110518 | .clobbers = .{ .eflags = true }, |
| 108301 | 110519 | .each = .{ .once = &.{ |
| 108302 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108303 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108304 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108305 | | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108306 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108307 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110520 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110521 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110522 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110523 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110524 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108308 | 110525 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108309 | 110526 | } }, |
| 108310 | 110527 | }, .{ |
| 108311 | | .required_features = .{ .sse, null, null, null }, |
| 108312 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108313 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110528 | .required_features = .{ .sse4_1, null, null, null }, |
| 110529 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110530 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108314 | 110531 | .patterns = &.{ |
| 108315 | 110532 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108316 | 110533 | }, |
| 108317 | | .call_frame = .{ .alignment = .@"16" }, |
| 108318 | 110534 | .extra_temps = .{ |
| 108319 | 110535 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108320 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 108321 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsihf" } } }, |
| 108322 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108323 | | .{ .type = .f32, .kind = .mem }, |
| 110536 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 110537 | .unused, |
| 110538 | .unused, |
| 110539 | .unused, |
| 108324 | 110540 | .unused, |
| 108325 | 110541 | .unused, |
| 108326 | 110542 | .unused, |
| ... | ... | @@ -108329,30 +110545,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108329 | 110545 | .unused, |
| 108330 | 110546 | }, |
| 108331 | 110547 | .dst_temps = .{ .mem, .unused }, |
| 108332 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110548 | .clobbers = .{ .eflags = true }, |
| 108333 | 110549 | .each = .{ .once = &.{ |
| 108334 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108335 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108336 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108337 | | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108338 | | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108339 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108340 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110550 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110551 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110552 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110553 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110554 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108341 | 110555 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108342 | 110556 | } }, |
| 108343 | 110557 | }, .{ |
| 108344 | 110558 | .required_features = .{ .avx, null, null, null }, |
| 108345 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108346 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110559 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110560 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108347 | 110561 | .patterns = &.{ |
| 108348 | 110562 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108349 | 110563 | }, |
| 108350 | 110564 | .call_frame = .{ .alignment = .@"16" }, |
| 108351 | 110565 | .extra_temps = .{ |
| 108352 | 110566 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108353 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108354 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108355 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110567 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110568 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110569 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108356 | 110570 | .unused, |
| 108357 | 110571 | .unused, |
| 108358 | 110572 | .unused, |
| ... | ... | @@ -108364,26 +110578,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108364 | 110578 | .dst_temps = .{ .mem, .unused }, |
| 108365 | 110579 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108366 | 110580 | .each = .{ .once = &.{ |
| 108367 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108368 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110581 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110582 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108369 | 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 | 110585 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108372 | 110586 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108373 | 110587 | } }, |
| 108374 | 110588 | }, .{ |
| 108375 | | .required_features = .{ .sse4_1, null, null, null }, |
| 108376 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108377 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110589 | .required_features = .{ .sse, null, null, null }, |
| 110590 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110591 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108378 | 110592 | .patterns = &.{ |
| 108379 | 110593 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108380 | 110594 | }, |
| 108381 | 110595 | .call_frame = .{ .alignment = .@"16" }, |
| 108382 | 110596 | .extra_temps = .{ |
| 108383 | 110597 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108384 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108385 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108386 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110598 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110599 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110600 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108387 | 110601 | .unused, |
| 108388 | 110602 | .unused, |
| 108389 | 110603 | .unused, |
| ... | ... | @@ -108395,17 +110609,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108395 | 110609 | .dst_temps = .{ .mem, .unused }, |
| 108396 | 110610 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108397 | 110611 | .each = .{ .once = &.{ |
| 108398 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108399 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110612 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110613 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108400 | 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 | 110616 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108403 | 110617 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108404 | 110618 | } }, |
| 108405 | 110619 | }, .{ |
| 108406 | | .required_features = .{ .sse2, null, null, null }, |
| 108407 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108408 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110620 | .required_features = .{ .avx, null, null, null }, |
| 110621 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110622 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108409 | 110623 | .patterns = &.{ |
| 108410 | 110624 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108411 | 110625 | }, |
| ... | ... | @@ -108413,8 +110627,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108413 | 110627 | .extra_temps = .{ |
| 108414 | 110628 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108415 | 110629 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108416 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108417 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110630 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110631 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108418 | 110632 | .unused, |
| 108419 | 110633 | .unused, |
| 108420 | 110634 | .unused, |
| ... | ... | @@ -108426,18 +110640,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108426 | 110640 | .dst_temps = .{ .mem, .unused }, |
| 108427 | 110641 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108428 | 110642 | .each = .{ .once = &.{ |
| 108429 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108430 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110643 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110644 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108431 | 110645 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108432 | | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108433 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 110646 | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108434 | 110647 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108435 | 110648 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108436 | 110649 | } }, |
| 108437 | 110650 | }, .{ |
| 108438 | 110651 | .required_features = .{ .sse, null, null, null }, |
| 108439 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 108440 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110652 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110653 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108441 | 110654 | .patterns = &.{ |
| 108442 | 110655 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108443 | 110656 | }, |
| ... | ... | @@ -108445,9 +110658,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108445 | 110658 | .extra_temps = .{ |
| 108446 | 110659 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108447 | 110660 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 108448 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsihf" } } }, |
| 108449 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108450 | | .{ .type = .f32, .kind = .mem }, |
| 110661 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110662 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 110663 | .unused, |
| 108451 | 110664 | .unused, |
| 108452 | 110665 | .unused, |
| 108453 | 110666 | .unused, |
| ... | ... | @@ -108458,121 +110671,61 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108458 | 110671 | .dst_temps = .{ .mem, .unused }, |
| 108459 | 110672 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108460 | 110673 | .each = .{ .once = &.{ |
| 108461 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108462 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110674 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110675 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 108463 | 110676 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108464 | | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108465 | | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108466 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 110677 | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 108467 | 110678 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 108468 | 110679 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108469 | 110680 | } }, |
| 108470 | 110681 | }, .{ |
| 108471 | | .required_features = .{ .@"64bit", .f16c, null, null }, |
| 108472 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108473 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110682 | .required_features = .{ .avx, null, null, null }, |
| 110683 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 110684 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108474 | 110685 | .patterns = &.{ |
| 108475 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 108476 | | }, |
| 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, |
| 110686 | .{ .src = .{ .mem, .none, .none } }, |
| 110687 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108489 | 110688 | }, |
| 108490 | | .dst_temps = .{ .mem, .unused }, |
| 108491 | | .clobbers = .{ .eflags = true }, |
| 110689 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108492 | 110690 | .each = .{ .once = &.{ |
| 108493 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 110691 | .{ ._, .v_ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, |
| 108500 | 110692 | } }, |
| 108501 | 110693 | }, .{ |
| 108502 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108503 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108504 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110694 | .required_features = .{ .sse2, null, null, null }, |
| 110695 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 110696 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108505 | 110697 | .patterns = &.{ |
| 108506 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 108507 | | }, |
| 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, |
| 110698 | .{ .src = .{ .mem, .none, .none } }, |
| 110699 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108521 | 110700 | }, |
| 108522 | | .dst_temps = .{ .mem, .unused }, |
| 108523 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110701 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108524 | 110702 | .each = .{ .once = &.{ |
| 108525 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 110703 | .{ ._, ._ps, .cvtdq2, .dst0x, .src0x, ._, ._ }, |
| 108531 | 110704 | } }, |
| 108532 | 110705 | }, .{ |
| 108533 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108534 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108535 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110706 | .required_features = .{ .avx2, null, null, null }, |
| 110707 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 110708 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 108536 | 110709 | .patterns = &.{ |
| 108537 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 108538 | | }, |
| 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, |
| 110710 | .{ .src = .{ .mem, .none, .none } }, |
| 110711 | .{ .src = .{ .to_sse, .none, .none } }, |
| 108552 | 110712 | }, |
| 108553 | | .dst_temps = .{ .mem, .unused }, |
| 108554 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110713 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 108555 | 110714 | .each = .{ .once = &.{ |
| 108556 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 110715 | .{ ._, .v_ps, .cvtdq2, .dst0y, .src0y, ._, ._ }, |
| 108562 | 110716 | } }, |
| 108563 | 110717 | }, .{ |
| 108564 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108565 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108566 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110718 | .required_features = .{ .avx2, null, null, null }, |
| 110719 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 110720 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 108567 | 110721 | .patterns = &.{ |
| 108568 | 110722 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108569 | 110723 | }, |
| 108570 | | .call_frame = .{ .alignment = .@"16" }, |
| 108571 | 110724 | .extra_temps = .{ |
| 108572 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108573 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108574 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 108575 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110725 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110726 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 110727 | .unused, |
| 110728 | .unused, |
| 108576 | 110729 | .unused, |
| 108577 | 110730 | .unused, |
| 108578 | 110731 | .unused, |
| ... | ... | @@ -108582,30 +110735,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108582 | 110735 | .unused, |
| 108583 | 110736 | }, |
| 108584 | 110737 | .dst_temps = .{ .mem, .unused }, |
| 108585 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110738 | .clobbers = .{ .eflags = true }, |
| 108586 | 110739 | .each = .{ .once = &.{ |
| 108587 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108588 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108589 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108590 | | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108591 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108592 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110740 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110741 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110742 | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 110743 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 108593 | 110744 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108594 | 110745 | } }, |
| 108595 | 110746 | }, .{ |
| 108596 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108597 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108598 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110747 | .required_features = .{ .avx, null, null, null }, |
| 110748 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 110749 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108599 | 110750 | .patterns = &.{ |
| 108600 | 110751 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108601 | 110752 | }, |
| 108602 | | .call_frame = .{ .alignment = .@"16" }, |
| 108603 | 110753 | .extra_temps = .{ |
| 108604 | 110754 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108605 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 108606 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdihf" } } }, |
| 108607 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108608 | | .{ .type = .f32, .kind = .mem }, |
| 110755 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 110756 | .unused, |
| 110757 | .unused, |
| 110758 | .unused, |
| 108609 | 110759 | .unused, |
| 108610 | 110760 | .unused, |
| 108611 | 110761 | .unused, |
| ... | ... | @@ -108614,30 +110764,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108614 | 110764 | .unused, |
| 108615 | 110765 | }, |
| 108616 | 110766 | .dst_temps = .{ .mem, .unused }, |
| 108617 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110767 | .clobbers = .{ .eflags = true }, |
| 108618 | 110768 | .each = .{ .once = &.{ |
| 108619 | 110769 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108620 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108621 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108622 | | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108623 | | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108624 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108625 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110770 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110771 | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110772 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108626 | 110773 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108627 | 110774 | } }, |
| 108628 | 110775 | }, .{ |
| 108629 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108630 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108631 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110776 | .required_features = .{ .sse2, null, null, null }, |
| 110777 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 110778 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 108632 | 110779 | .patterns = &.{ |
| 108633 | 110780 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108634 | 110781 | }, |
| 108635 | | .call_frame = .{ .alignment = .@"16" }, |
| 108636 | 110782 | .extra_temps = .{ |
| 108637 | 110783 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108638 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108639 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108640 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110784 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 110785 | .unused, |
| 110786 | .unused, |
| 108641 | 110787 | .unused, |
| 108642 | 110788 | .unused, |
| 108643 | 110789 | .unused, |
| ... | ... | @@ -108647,28 +110793,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108647 | 110793 | .unused, |
| 108648 | 110794 | }, |
| 108649 | 110795 | .dst_temps = .{ .mem, .unused }, |
| 108650 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110796 | .clobbers = .{ .eflags = true }, |
| 108651 | 110797 | .each = .{ .once = &.{ |
| 108652 | 110798 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108653 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108654 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108655 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108656 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110799 | .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110800 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110801 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 108657 | 110802 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108658 | 110803 | } }, |
| 108659 | 110804 | }, .{ |
| 108660 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108661 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108662 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110805 | .required_features = .{ .sse, null, null, null }, |
| 110806 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110807 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108663 | 110808 | .patterns = &.{ |
| 108664 | 110809 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108665 | 110810 | }, |
| 108666 | | .call_frame = .{ .alignment = .@"16" }, |
| 108667 | 110811 | .extra_temps = .{ |
| 108668 | 110812 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108669 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108670 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108671 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110813 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 110814 | .unused, |
| 110815 | .unused, |
| 108672 | 110816 | .unused, |
| 108673 | 110817 | .unused, |
| 108674 | 110818 | .unused, |
| ... | ... | @@ -108678,28 +110822,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108678 | 110822 | .unused, |
| 108679 | 110823 | }, |
| 108680 | 110824 | .dst_temps = .{ .mem, .unused }, |
| 108681 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110825 | .clobbers = .{ .eflags = true }, |
| 108682 | 110826 | .each = .{ .once = &.{ |
| 108683 | 110827 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108684 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108685 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108686 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108687 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110828 | .{ .@"0:", ._ss, .cvtsi2, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110829 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110830 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108688 | 110831 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108689 | 110832 | } }, |
| 108690 | 110833 | }, .{ |
| 108691 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108692 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108693 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110834 | .required_features = .{ .avx, null, null, null }, |
| 110835 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110836 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108694 | 110837 | .patterns = &.{ |
| 108695 | 110838 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108696 | 110839 | }, |
| 108697 | 110840 | .call_frame = .{ .alignment = .@"16" }, |
| 108698 | 110841 | .extra_temps = .{ |
| 108699 | 110842 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108700 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108701 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108702 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110843 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110844 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110845 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 108703 | 110846 | .unused, |
| 108704 | 110847 | .unused, |
| 108705 | 110848 | .unused, |
| ... | ... | @@ -108712,27 +110855,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108712 | 110855 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108713 | 110856 | .each = .{ .once = &.{ |
| 108714 | 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 | 110859 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108717 | | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108718 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108719 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110860 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110861 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108720 | 110862 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108721 | 110863 | } }, |
| 108722 | 110864 | }, .{ |
| 108723 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108724 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 108725 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110865 | .required_features = .{ .sse, null, null, null }, |
| 110866 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110867 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108726 | 110868 | .patterns = &.{ |
| 108727 | 110869 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108728 | 110870 | }, |
| 108729 | 110871 | .call_frame = .{ .alignment = .@"16" }, |
| 108730 | 110872 | .extra_temps = .{ |
| 108731 | 110873 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108732 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108733 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundihf" } } }, |
| 108734 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108735 | | .{ .type = .f32, .kind = .mem }, |
| 110874 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110875 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110876 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 110877 | .unused, |
| 108736 | 110878 | .unused, |
| 108737 | 110879 | .unused, |
| 108738 | 110880 | .unused, |
| ... | ... | @@ -108744,28 +110886,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108744 | 110886 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108745 | 110887 | .each = .{ .once = &.{ |
| 108746 | 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 | 110890 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108749 | | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108750 | | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108751 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108752 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110891 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110892 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108753 | 110893 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108754 | 110894 | } }, |
| 108755 | 110895 | }, .{ |
| 108756 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108757 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108758 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110896 | .required_features = .{ .avx, null, null, null }, |
| 110897 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110898 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108759 | 110899 | .patterns = &.{ |
| 108760 | 110900 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108761 | 110901 | }, |
| 108762 | 110902 | .call_frame = .{ .alignment = .@"16" }, |
| 108763 | 110903 | .extra_temps = .{ |
| 108764 | 110904 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108765 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108766 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 108767 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 108768 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110905 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110906 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110907 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 110908 | .unused, |
| 108769 | 110909 | .unused, |
| 108770 | 110910 | .unused, |
| 108771 | 110911 | .unused, |
| ... | ... | @@ -108777,27 +110917,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108777 | 110917 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108778 | 110918 | .each = .{ .once = &.{ |
| 108779 | 110919 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108780 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108781 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 108782 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 108783 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 108784 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110920 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110921 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110922 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110923 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108785 | 110924 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108786 | 110925 | } }, |
| 108787 | 110926 | }, .{ |
| 108788 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108789 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108790 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110927 | .required_features = .{ .sse, null, null, null }, |
| 110928 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110929 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108791 | 110930 | .patterns = &.{ |
| 108792 | 110931 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108793 | 110932 | }, |
| 108794 | 110933 | .call_frame = .{ .alignment = .@"16" }, |
| 108795 | 110934 | .extra_temps = .{ |
| 108796 | 110935 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108797 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108798 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 108799 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 108800 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110936 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110937 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110938 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 110939 | .unused, |
| 108801 | 110940 | .unused, |
| 108802 | 110941 | .unused, |
| 108803 | 110942 | .unused, |
| ... | ... | @@ -108809,27 +110948,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108809 | 110948 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108810 | 110949 | .each = .{ .once = &.{ |
| 108811 | 110950 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108812 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108813 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 108814 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 108815 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 108816 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110951 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110952 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110953 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110954 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108817 | 110955 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108818 | 110956 | } }, |
| 108819 | 110957 | }, .{ |
| 108820 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108821 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108822 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110958 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 110959 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 110960 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108823 | 110961 | .patterns = &.{ |
| 108824 | 110962 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108825 | 110963 | }, |
| 108826 | | .call_frame = .{ .alignment = .@"16" }, |
| 108827 | 110964 | .extra_temps = .{ |
| 108828 | 110965 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108829 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108830 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 108831 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 108832 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 110966 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 110967 | .unused, |
| 110968 | .unused, |
| 110969 | .unused, |
| 108833 | 110970 | .unused, |
| 108834 | 110971 | .unused, |
| 108835 | 110972 | .unused, |
| ... | ... | @@ -108838,32 +110975,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108838 | 110975 | .unused, |
| 108839 | 110976 | }, |
| 108840 | 110977 | .dst_temps = .{ .mem, .unused }, |
| 108841 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110978 | .clobbers = .{ .eflags = true }, |
| 108842 | 110979 | .each = .{ .once = &.{ |
| 108843 | 110980 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108844 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108845 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 108846 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 108847 | | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, |
| 108848 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108849 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110981 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 110982 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._ }, |
| 110983 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110984 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108850 | 110985 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108851 | 110986 | } }, |
| 108852 | 110987 | }, .{ |
| 108853 | 110988 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108854 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108855 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110989 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 110990 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108856 | 110991 | .patterns = &.{ |
| 108857 | 110992 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108858 | 110993 | }, |
| 108859 | | .call_frame = .{ .alignment = .@"16" }, |
| 108860 | 110994 | .extra_temps = .{ |
| 108861 | 110995 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108862 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108863 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 108864 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattihf" } } }, |
| 108865 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108866 | | .{ .type = .f32, .kind = .mem }, |
| 110996 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 110997 | .unused, |
| 110998 | .unused, |
| 110999 | .unused, |
| 111000 | .unused, |
| 108867 | 111001 | .unused, |
| 108868 | 111002 | .unused, |
| 108869 | 111003 | .unused, |
| ... | ... | @@ -108871,32 +111005,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108871 | 111005 | .unused, |
| 108872 | 111006 | }, |
| 108873 | 111007 | .dst_temps = .{ .mem, .unused }, |
| 108874 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111008 | .clobbers = .{ .eflags = true }, |
| 108875 | 111009 | .each = .{ .once = &.{ |
| 108876 | 111010 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108877 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108878 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 108879 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 108880 | | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, |
| 108881 | | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, |
| 108882 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108883 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111011 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 111012 | .{ ._, ._ss, .cvtsi2, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111013 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111014 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108884 | 111015 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108885 | 111016 | } }, |
| 108886 | 111017 | }, .{ |
| 108887 | 111018 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108888 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108889 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111019 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111020 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108890 | 111021 | .patterns = &.{ |
| 108891 | 111022 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108892 | 111023 | }, |
| 108893 | 111024 | .call_frame = .{ .alignment = .@"16" }, |
| 108894 | 111025 | .extra_temps = .{ |
| 108895 | 111026 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108896 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108897 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 108898 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 108899 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111027 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 111028 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdisf" } } }, |
| 111029 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111030 | .unused, |
| 108900 | 111031 | .unused, |
| 108901 | 111032 | .unused, |
| 108902 | 111033 | .unused, |
| ... | ... | @@ -108908,27 +111039,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108908 | 111039 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108909 | 111040 | .each = .{ .once = &.{ |
| 108910 | 111041 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108911 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108912 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 108913 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 108914 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 108915 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111042 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111043 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111044 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111045 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108916 | 111046 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108917 | 111047 | } }, |
| 108918 | 111048 | }, .{ |
| 108919 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 108920 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108921 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111049 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111050 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111051 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108922 | 111052 | .patterns = &.{ |
| 108923 | 111053 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108924 | 111054 | }, |
| 108925 | 111055 | .call_frame = .{ .alignment = .@"16" }, |
| 108926 | 111056 | .extra_temps = .{ |
| 108927 | 111057 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108928 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108929 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 108930 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 108931 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111058 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 111059 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdisf" } } }, |
| 111060 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111061 | .unused, |
| 108932 | 111062 | .unused, |
| 108933 | 111063 | .unused, |
| 108934 | 111064 | .unused, |
| ... | ... | @@ -108940,17 +111070,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108940 | 111070 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108941 | 111071 | .each = .{ .once = &.{ |
| 108942 | 111072 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108943 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108944 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 108945 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 108946 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 108947 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111073 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111074 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111075 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111076 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108948 | 111077 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108949 | 111078 | } }, |
| 108950 | 111079 | }, .{ |
| 108951 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108952 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108953 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111080 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111081 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111082 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108954 | 111083 | .patterns = &.{ |
| 108955 | 111084 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108956 | 111085 | }, |
| ... | ... | @@ -108958,9 +111087,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108958 | 111087 | .extra_temps = .{ |
| 108959 | 111088 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108960 | 111089 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108961 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 108962 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 108963 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111090 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundisf" } } }, |
| 111091 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111092 | .unused, |
| 108964 | 111093 | .unused, |
| 108965 | 111094 | .unused, |
| 108966 | 111095 | .unused, |
| ... | ... | @@ -108972,18 +111101,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108972 | 111101 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108973 | 111102 | .each = .{ .once = &.{ |
| 108974 | 111103 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108975 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108976 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 108977 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 108978 | | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, |
| 108979 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108980 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111104 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111105 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111106 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111107 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108981 | 111108 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108982 | 111109 | } }, |
| 108983 | 111110 | }, .{ |
| 108984 | 111111 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108985 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 108986 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111112 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111113 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 108987 | 111114 | .patterns = &.{ |
| 108988 | 111115 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108989 | 111116 | }, |
| ... | ... | @@ -108991,10 +111118,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108991 | 111118 | .extra_temps = .{ |
| 108992 | 111119 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108993 | 111120 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 108994 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 108995 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntihf" } } }, |
| 108996 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 108997 | | .{ .type = .f32, .kind = .mem }, |
| 111121 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundisf" } } }, |
| 111122 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111123 | .unused, |
| 111124 | .unused, |
| 108998 | 111125 | .unused, |
| 108999 | 111126 | .unused, |
| 109000 | 111127 | .unused, |
| ... | ... | @@ -109005,30 +111132,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109005 | 111132 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109006 | 111133 | .each = .{ .once = &.{ |
| 109007 | 111134 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109008 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109009 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 109010 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 109011 | | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, |
| 109012 | | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, |
| 109013 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109014 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111135 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111136 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111137 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111138 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109015 | 111139 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109016 | 111140 | } }, |
| 109017 | 111141 | }, .{ |
| 109018 | 111142 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109019 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109020 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111143 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111144 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109021 | 111145 | .patterns = &.{ |
| 109022 | 111146 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109023 | 111147 | }, |
| 109024 | 111148 | .call_frame = .{ .alignment = .@"16" }, |
| 109025 | 111149 | .extra_temps = .{ |
| 109026 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109027 | 111150 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109028 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109029 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109030 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 109031 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111151 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 111152 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 111153 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, |
| 111154 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111155 | .unused, |
| 109032 | 111156 | .unused, |
| 109033 | 111157 | .unused, |
| 109034 | 111158 | .unused, |
| ... | ... | @@ -109038,31 +111162,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109038 | 111162 | .dst_temps = .{ .mem, .unused }, |
| 109039 | 111163 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109040 | 111164 | .each = .{ .once = &.{ |
| 109041 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109042 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109043 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109044 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109045 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109046 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 109047 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109048 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 111165 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111166 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111167 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 111168 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 111169 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 111170 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109049 | 111171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109050 | 111172 | } }, |
| 109051 | 111173 | }, .{ |
| 109052 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 109053 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109054 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111174 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111175 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111176 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109055 | 111177 | .patterns = &.{ |
| 109056 | 111178 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109057 | 111179 | }, |
| 109058 | 111180 | .call_frame = .{ .alignment = .@"16" }, |
| 109059 | 111181 | .extra_temps = .{ |
| 109060 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109061 | 111182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109062 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109063 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109064 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 109065 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111183 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 111184 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 111185 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, |
| 111186 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111187 | .unused, |
| 109066 | 111188 | .unused, |
| 109067 | 111189 | .unused, |
| 109068 | 111190 | .unused, |
| ... | ... | @@ -109072,31 +111194,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109072 | 111194 | .dst_temps = .{ .mem, .unused }, |
| 109073 | 111195 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109074 | 111196 | .each = .{ .once = &.{ |
| 109075 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109076 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109077 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109078 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109079 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109080 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 109081 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109082 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 111197 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111198 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111199 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 111200 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 111201 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 111202 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109083 | 111203 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109084 | 111204 | } }, |
| 109085 | 111205 | }, .{ |
| 109086 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109087 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109088 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111206 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111207 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111208 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109089 | 111209 | .patterns = &.{ |
| 109090 | 111210 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109091 | 111211 | }, |
| 109092 | 111212 | .call_frame = .{ .alignment = .@"16" }, |
| 109093 | 111213 | .extra_temps = .{ |
| 109094 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109095 | 111214 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109096 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109097 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109098 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 109099 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111215 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 111216 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 111217 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, |
| 111218 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111219 | .unused, |
| 109100 | 111220 | .unused, |
| 109101 | 111221 | .unused, |
| 109102 | 111222 | .unused, |
| ... | ... | @@ -109106,33 +111226,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109106 | 111226 | .dst_temps = .{ .mem, .unused }, |
| 109107 | 111227 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109108 | 111228 | .each = .{ .once = &.{ |
| 109109 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109110 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109111 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109112 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109113 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109114 | | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, |
| 109115 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 109116 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109117 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 111229 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111230 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111231 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 111232 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 111233 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 111234 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109118 | 111235 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109119 | 111236 | } }, |
| 109120 | 111237 | }, .{ |
| 109121 | 111238 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109122 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109123 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111239 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111240 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109124 | 111241 | .patterns = &.{ |
| 109125 | 111242 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109126 | 111243 | }, |
| 109127 | 111244 | .call_frame = .{ .alignment = .@"16" }, |
| 109128 | 111245 | .extra_temps = .{ |
| 109129 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109130 | 111246 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109131 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109132 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109133 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateihf" } } }, |
| 109134 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109135 | | .{ .type = .f32, .kind = .mem }, |
| 111247 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 111248 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 111249 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, |
| 111250 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111251 | .unused, |
| 111252 | .unused, |
| 109136 | 111253 | .unused, |
| 109137 | 111254 | .unused, |
| 109138 | 111255 | .unused, |
| ... | ... | @@ -109141,22 +111258,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109141 | 111258 | .dst_temps = .{ .mem, .unused }, |
| 109142 | 111259 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109143 | 111260 | .each = .{ .once = &.{ |
| 109144 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109145 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109146 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109147 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109148 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109149 | | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, |
| 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), ._, ._ }, |
| 111261 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111262 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111263 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 111264 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 111265 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 111266 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 109154 | 111267 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109155 | 111268 | } }, |
| 109156 | 111269 | }, .{ |
| 109157 | 111270 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109158 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109159 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111271 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111272 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109160 | 111273 | .patterns = &.{ |
| 109161 | 111274 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109162 | 111275 | }, |
| ... | ... | @@ -109166,8 +111279,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109166 | 111279 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109167 | 111280 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109168 | 111281 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109169 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 109170 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111282 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, |
| 111283 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109171 | 111284 | .unused, |
| 109172 | 111285 | .unused, |
| 109173 | 111286 | .unused, |
| ... | ... | @@ -109182,15 +111295,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109182 | 111295 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109183 | 111296 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109184 | 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 | 111299 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109187 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 111300 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109188 | 111301 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109189 | 111302 | } }, |
| 109190 | 111303 | }, .{ |
| 109191 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 109192 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109193 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 111304 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111305 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111306 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 109194 | 111307 | .patterns = &.{ |
| 109195 | 111308 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109196 | 111309 | }, |
| ... | ... | @@ -109200,8 +111313,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109200 | 111313 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109201 | 111314 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109202 | 111315 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109203 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 109204 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111316 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, |
| 111317 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109205 | 111318 | .unused, |
| 109206 | 111319 | .unused, |
| 109207 | 111320 | .unused, |
| ... | ... | @@ -109216,15 +111329,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109216 | 111329 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109217 | 111330 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109218 | 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 | 111333 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109221 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 111334 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109222 | 111335 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109223 | 111336 | } }, |
| 109224 | 111337 | }, .{ |
| 109225 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 111338 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109226 | 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 | 111341 | .patterns = &.{ |
| 109229 | 111342 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109230 | 111343 | }, |
| ... | ... | @@ -109234,8 +111347,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109234 | 111347 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109235 | 111348 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109236 | 111349 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109237 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 109238 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 111350 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, |
| 111351 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 109239 | 111352 | .unused, |
| 109240 | 111353 | .unused, |
| 109241 | 111354 | .unused, |
| ... | ... | @@ -109250,16 +111363,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109250 | 111363 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109251 | 111364 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109252 | 111365 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109253 | | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, |
| 109254 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 111366 | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 109255 | 111367 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109256 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 111368 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109257 | 111369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109258 | 111370 | } }, |
| 109259 | 111371 | }, .{ |
| 109260 | 111372 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109261 | 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 | 111375 | .patterns = &.{ |
| 109264 | 111376 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109265 | 111377 | }, |
| ... | ... | @@ -109269,9 +111381,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109269 | 111381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109270 | 111382 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 109271 | 111383 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 109272 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneihf" } } }, |
| 109273 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 109274 | | .{ .type = .f32, .kind = .mem }, |
| 111384 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, |
| 111385 | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111386 | .unused, |
| 109275 | 111387 | .unused, |
| 109276 | 111388 | .unused, |
| 109277 | 111389 | .unused, |
| ... | ... | @@ -109285,23 +111397,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109285 | 111397 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 109286 | 111398 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 109287 | 111399 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 109288 | | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, |
| 109289 | | .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ }, |
| 109290 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 111400 | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 109291 | 111401 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 109292 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 111402 | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 109293 | 111403 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109294 | 111404 | } }, |
| 109295 | 111405 | }, .{ |
| 109296 | 111406 | .required_features = .{ .avx, null, null, null }, |
| 109297 | 111407 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 109298 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111408 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109299 | 111409 | .patterns = &.{ |
| 109300 | 111410 | .{ .src = .{ .mem, .none, .none } }, |
| 109301 | 111411 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109302 | 111412 | }, |
| 109303 | 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 | 111415 | .unused, |
| 109306 | 111416 | .unused, |
| 109307 | 111417 | .unused, |
| ... | ... | @@ -109316,19 +111426,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109316 | 111426 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109317 | 111427 | .each = .{ .once = &.{ |
| 109318 | 111428 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 109319 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109320 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 111429 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 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 | 111434 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 109325 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111435 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109326 | 111436 | .patterns = &.{ |
| 109327 | 111437 | .{ .src = .{ .mem, .none, .none } }, |
| 109328 | 111438 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109329 | 111439 | }, |
| 109330 | 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 | 111442 | .unused, |
| 109333 | 111443 | .unused, |
| 109334 | 111444 | .unused, |
| ... | ... | @@ -109343,19 +111453,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109343 | 111453 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109344 | 111454 | .each = .{ .once = &.{ |
| 109345 | 111455 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 109346 | | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109347 | | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 111456 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111457 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109348 | 111458 | } }, |
| 109349 | 111459 | }, .{ |
| 109350 | 111460 | .required_features = .{ .avx, null, null, null }, |
| 109351 | 111461 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 109352 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111462 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109353 | 111463 | .patterns = &.{ |
| 109354 | 111464 | .{ .src = .{ .mem, .none, .none } }, |
| 109355 | 111465 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109356 | 111466 | }, |
| 109357 | 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 | 111469 | .unused, |
| 109360 | 111470 | .unused, |
| 109361 | 111471 | .unused, |
| ... | ... | @@ -109370,19 +111480,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109370 | 111480 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109371 | 111481 | .each = .{ .once = &.{ |
| 109372 | 111482 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 109373 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109374 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 111483 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 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 | 111488 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 109379 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111489 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109380 | 111490 | .patterns = &.{ |
| 109381 | 111491 | .{ .src = .{ .mem, .none, .none } }, |
| 109382 | 111492 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109383 | 111493 | }, |
| 109384 | 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 | 111496 | .unused, |
| 109387 | 111497 | .unused, |
| 109388 | 111498 | .unused, |
| ... | ... | @@ -109397,13 +111507,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109397 | 111507 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109398 | 111508 | .each = .{ .once = &.{ |
| 109399 | 111509 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 109400 | | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109401 | | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 111510 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111511 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109402 | 111512 | } }, |
| 109403 | 111513 | }, .{ |
| 109404 | 111514 | .required_features = .{ .avx, null, null, null }, |
| 109405 | 111515 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 109406 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111516 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109407 | 111517 | .patterns = &.{ |
| 109408 | 111518 | .{ .src = .{ .mem, .none, .none } }, |
| 109409 | 111519 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | ... | @@ -109424,13 +111534,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109424 | 111534 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109425 | 111535 | .each = .{ .once = &.{ |
| 109426 | 111536 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 109427 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109428 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 111537 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 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 | 111542 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 109433 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111543 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109434 | 111544 | .patterns = &.{ |
| 109435 | 111545 | .{ .src = .{ .mem, .none, .none } }, |
| 109436 | 111546 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | ... | @@ -109451,13 +111561,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109451 | 111561 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109452 | 111562 | .each = .{ .once = &.{ |
| 109453 | 111563 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 109454 | | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109455 | | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 111564 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111565 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109456 | 111566 | } }, |
| 109457 | 111567 | }, .{ |
| 109458 | 111568 | .required_features = .{ .avx, null, null, null }, |
| 109459 | 111569 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 109460 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111570 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109461 | 111571 | .patterns = &.{ |
| 109462 | 111572 | .{ .src = .{ .mem, .none, .none } }, |
| 109463 | 111573 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | ... | @@ -109478,13 +111588,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109478 | 111588 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109479 | 111589 | .each = .{ .once = &.{ |
| 109480 | 111590 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 109481 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109482 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 111591 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 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 | 111596 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 109487 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111597 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109488 | 111598 | .patterns = &.{ |
| 109489 | 111599 | .{ .src = .{ .mem, .none, .none } }, |
| 109490 | 111600 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | ... | @@ -109505,39 +111615,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109505 | 111615 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109506 | 111616 | .each = .{ .once = &.{ |
| 109507 | 111617 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 109508 | | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109509 | | .{ ._, ._ss, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 111618 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111619 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 109510 | 111620 | } }, |
| 109511 | 111621 | }, .{ |
| 109512 | 111622 | .required_features = .{ .avx, null, null, null }, |
| 109513 | 111623 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 109514 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111624 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109515 | 111625 | .patterns = &.{ |
| 109516 | 111626 | .{ .src = .{ .mem, .none, .none } }, |
| 109517 | 111627 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109518 | 111628 | }, |
| 109519 | 111629 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109520 | 111630 | .each = .{ .once = &.{ |
| 109521 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109522 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, |
| 111631 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 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 | 111636 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 109527 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111637 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109528 | 111638 | .patterns = &.{ |
| 109529 | 111639 | .{ .src = .{ .mem, .none, .none } }, |
| 109530 | 111640 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109531 | 111641 | }, |
| 109532 | 111642 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109533 | 111643 | .each = .{ .once = &.{ |
| 109534 | | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109535 | | .{ ._, ._ss, .cvtsi2, .dst0x, .src0d, ._, ._ }, |
| 111644 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111645 | .{ ._, ._sd, .cvtsi2, .dst0x, .src0d, ._, ._ }, |
| 109536 | 111646 | } }, |
| 109537 | 111647 | }, .{ |
| 109538 | 111648 | .required_features = .{ .avx, null, null, null }, |
| 109539 | 111649 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 109540 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111650 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109541 | 111651 | .patterns = &.{ |
| 109542 | 111652 | .{ .src = .{ .mem, .none, .none } }, |
| 109543 | 111653 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | ... | @@ -109558,13 +111668,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109558 | 111668 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109559 | 111669 | .each = .{ .once = &.{ |
| 109560 | 111670 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109561 | | .{ ._, .v_ps, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 109562 | | .{ ._, .v_ss, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, |
| 111671 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 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 | 111676 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 109567 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111677 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109568 | 111678 | .patterns = &.{ |
| 109569 | 111679 | .{ .src = .{ .mem, .none, .none } }, |
| 109570 | 111680 | .{ .src = .{ .to_gpr, .none, .none } }, |
| ... | ... | @@ -109585,117 +111695,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109585 | 111695 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 109586 | 111696 | .each = .{ .once = &.{ |
| 109587 | 111697 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 109588 | | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| 109589 | | .{ ._, ._ss, .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, ._ }, |
| 111698 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111699 | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0q, ._, ._ }, |
| 109603 | 111700 | } }, |
| 109604 | 111701 | }, .{ |
| 109605 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109606 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 109607 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111702 | .required_features = .{ .x87, null, null, null }, |
| 111703 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 111704 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109608 | 111705 | .patterns = &.{ |
| 109609 | 111706 | .{ .src = .{ .mem, .none, .none } }, |
| 109610 | 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 | 111709 | .extra_temps = .{ |
| 109696 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattisf" } } }, |
| 109697 | | .unused, |
| 109698 | | .unused, |
| 111710 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111711 | .{ .type = .i16, .kind = .mem }, |
| 111712 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109699 | 111713 | .unused, |
| 109700 | 111714 | .unused, |
| 109701 | 111715 | .unused, |
| ... | ... | @@ -109705,23 +111719,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109705 | 111719 | .unused, |
| 109706 | 111720 | .unused, |
| 109707 | 111721 | }, |
| 109708 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 109709 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111722 | .dst_temps = .{ .mem, .unused }, |
| 109710 | 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 }, |
| 109715 | | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 109716 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111730 | .required_features = .{ .x87, null, null, null }, |
| 111731 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 111732 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109717 | 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 | 111737 | .extra_temps = .{ |
| 109722 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntisf" } } }, |
| 109723 | | .unused, |
| 109724 | | .unused, |
| 111738 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111739 | .{ .type = .i16, .kind = .mem }, |
| 111740 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109725 | 111741 | .unused, |
| 109726 | 111742 | .unused, |
| 109727 | 111743 | .unused, |
| ... | ... | @@ -109731,51 +111747,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109731 | 111747 | .unused, |
| 109732 | 111748 | .unused, |
| 109733 | 111749 | }, |
| 109734 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 109735 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111750 | .dst_temps = .{ .mem, .unused }, |
| 109736 | 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 }, |
| 109741 | | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 109742 | | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 111758 | .required_features = .{ .x87, null, null, null }, |
| 111759 | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, |
| 111760 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109743 | 111761 | .patterns = &.{ |
| 109744 | 111762 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109745 | 111763 | }, |
| 109746 | | .call_frame = .{ .alignment = .@"16" }, |
| 109747 | 111764 | .extra_temps = .{ |
| 109748 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 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, |
| 111765 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109757 | 111766 | .unused, |
| 109758 | 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 | 111768 | .unused, |
| 109780 | 111769 | .unused, |
| 109781 | 111770 | .unused, |
| ... | ... | @@ -109785,102 +111774,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109785 | 111774 | .unused, |
| 109786 | 111775 | .unused, |
| 109787 | 111776 | }, |
| 109788 | | .dst_temps = .{ .{ .reg = .xmm0 }, .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 }, |
| 111777 | .dst_temps = .{ .mem, .unused }, |
| 109856 | 111778 | .each = .{ .once = &.{ |
| 109857 | | .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 109858 | | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 111779 | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, |
| 111780 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109859 | 111781 | } }, |
| 109860 | 111782 | }, .{ |
| 109861 | | .required_features = .{ .avx2, null, null, null }, |
| 109862 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 109863 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 111783 | .required_features = .{ .x87, null, null, null }, |
| 111784 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, |
| 111785 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109864 | 111786 | .patterns = &.{ |
| 109865 | 111787 | .{ .src = .{ .mem, .none, .none } }, |
| 109866 | | .{ .src = .{ .to_sse, .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 } }, |
| 111788 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109879 | 111789 | }, |
| 109880 | 111790 | .extra_temps = .{ |
| 109881 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109882 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 109883 | | .unused, |
| 111791 | .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111792 | .{ .type = .i32, .kind = .mem }, |
| 111793 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109884 | 111794 | .unused, |
| 109885 | 111795 | .unused, |
| 109886 | 111796 | .unused, |
| ... | ... | @@ -109891,55 +111801,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109891 | 111801 | .unused, |
| 109892 | 111802 | }, |
| 109893 | 111803 | .dst_temps = .{ .mem, .unused }, |
| 109894 | | .clobbers = .{ .eflags = true }, |
| 109895 | 111804 | .each = .{ .once = &.{ |
| 109896 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109897 | | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109898 | | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 109899 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 109900 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109901 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111805 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 111806 | .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, |
| 111807 | .{ ._, .fi_, .ld, .tmp1d, ._, ._, ._ }, |
| 111808 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109902 | 111809 | } }, |
| 109903 | 111810 | }, .{ |
| 109904 | | .required_features = .{ .avx, null, null, null }, |
| 109905 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109906 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 111811 | .required_features = .{ .x87, null, null, null }, |
| 111812 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 111813 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109907 | 111814 | .patterns = &.{ |
| 109908 | 111815 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109909 | 111816 | }, |
| 109910 | 111817 | .extra_temps = .{ |
| 109911 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109912 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 109913 | | .unused, |
| 109914 | | .unused, |
| 109915 | | .unused, |
| 109916 | | .unused, |
| 109917 | | .unused, |
| 109918 | | .unused, |
| 109919 | | .unused, |
| 109920 | | .unused, |
| 111818 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109921 | 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 | 111820 | .unused, |
| 109944 | 111821 | .unused, |
| 109945 | 111822 | .unused, |
| ... | ... | @@ -109951,26 +111828,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109951 | 111828 | .unused, |
| 109952 | 111829 | }, |
| 109953 | 111830 | .dst_temps = .{ .mem, .unused }, |
| 109954 | | .clobbers = .{ .eflags = true }, |
| 109955 | 111831 | .each = .{ .once = &.{ |
| 109956 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109957 | | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 111832 | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, |
| 111833 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109962 | 111834 | } }, |
| 109963 | 111835 | }, .{ |
| 109964 | | .required_features = .{ .avx2, null, null, null }, |
| 109965 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, .any, .any }, |
| 109966 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 111836 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 111837 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 111838 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109967 | 111839 | .patterns = &.{ |
| 109968 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 111840 | .{ .src = .{ .mem, .none, .none } }, |
| 111841 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 109969 | 111842 | }, |
| 109970 | 111843 | .extra_temps = .{ |
| 109971 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109972 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 109973 | | .unused, |
| 111844 | .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111845 | .{ .type = .i64, .kind = .mem }, |
| 111846 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 109974 | 111847 | .unused, |
| 109975 | 111848 | .unused, |
| 109976 | 111849 | .unused, |
| ... | ... | @@ -109981,88 +111854,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109981 | 111854 | .unused, |
| 109982 | 111855 | }, |
| 109983 | 111856 | .dst_temps = .{ .mem, .unused }, |
| 109984 | | .clobbers = .{ .eflags = true }, |
| 109985 | 111857 | .each = .{ .once = &.{ |
| 109986 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109987 | | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109988 | | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 109989 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 109990 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109991 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111858 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 111859 | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, |
| 111860 | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, |
| 111861 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 109992 | 111862 | } }, |
| 109993 | 111863 | }, .{ |
| 109994 | | .required_features = .{ .avx, null, null, null }, |
| 109995 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 109996 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 111864 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111865 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 111866 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 109997 | 111867 | .patterns = &.{ |
| 109998 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 109999 | | }, |
| 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, |
| 111868 | .{ .src = .{ .mem, .none, .none } }, |
| 111869 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 110012 | 111870 | }, |
| 110013 | | .dst_temps = .{ .mem, .unused }, |
| 110014 | | .clobbers = .{ .eflags = true }, |
| 111871 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110015 | 111872 | .each = .{ .once = &.{ |
| 110016 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110017 | | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 111873 | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 111874 | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0q, ._ }, |
| 110022 | 111875 | } }, |
| 110023 | 111876 | }, .{ |
| 110024 | | .required_features = .{ .sse4_1, null, null, null }, |
| 110025 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 110026 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 111877 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 111878 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 111879 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110027 | 111880 | .patterns = &.{ |
| 110028 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 110029 | | }, |
| 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, |
| 111881 | .{ .src = .{ .mem, .none, .none } }, |
| 111882 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 110042 | 111883 | }, |
| 110043 | | .dst_temps = .{ .mem, .unused }, |
| 110044 | | .clobbers = .{ .eflags = true }, |
| 111884 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110045 | 111885 | .each = .{ .once = &.{ |
| 110046 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110047 | | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 111886 | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111887 | .{ ._, ._sd, .cvtsi2, .dst0x, .src0q, ._, ._ }, |
| 110052 | 111888 | } }, |
| 110053 | 111889 | }, .{ |
| 110054 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 110055 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110056 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 111890 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111891 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 111892 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110057 | 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" }, |
| 110061 | | .extra_temps = .{ |
| 110062 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110063 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110064 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110065 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111897 | .extra_temps = .{ |
| 111898 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 111899 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 111900 | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, |
| 111901 | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, |
| 110066 | 111902 | .unused, |
| 110067 | 111903 | .unused, |
| 110068 | 111904 | .unused, |
| ... | ... | @@ -110071,29 +111907,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110071 | 111907 | .unused, |
| 110072 | 111908 | .unused, |
| 110073 | 111909 | }, |
| 110074 | | .dst_temps = .{ .mem, .unused }, |
| 110075 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111910 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110076 | 111911 | .each = .{ .once = &.{ |
| 110077 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110078 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110079 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110080 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110081 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110082 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111912 | .{ ._, .v_q, .mov, .tmp0x, .src0q, ._, ._ }, |
| 111913 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 111914 | .{ ._, .vp_, .unpckldq, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, |
| 111915 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 111916 | .{ ._, .v_pd, .sub, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, |
| 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 }, |
| 110086 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110087 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 111921 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 111922 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 111923 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110088 | 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 | 111928 | .extra_temps = .{ |
| 110093 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110094 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110095 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110096 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111929 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 111930 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 111931 | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, |
| 111932 | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, |
| 110097 | 111933 | .unused, |
| 110098 | 111934 | .unused, |
| 110099 | 111935 | .unused, |
| ... | ... | @@ -110102,29 +111938,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110102 | 111938 | .unused, |
| 110103 | 111939 | .unused, |
| 110104 | 111940 | }, |
| 110105 | | .dst_temps = .{ .mem, .unused }, |
| 110106 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111941 | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 110107 | 111942 | .each = .{ .once = &.{ |
| 110108 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110109 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110110 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110111 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110112 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110113 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 111943 | .{ ._, ._q, .mov, .tmp0x, .src0q, ._, ._ }, |
| 111944 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 111945 | .{ ._, .p_, .unpckldq, .tmp0x, .lea(.tmp1x), ._, ._ }, |
| 111946 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 111947 | .{ ._, ._pd, .sub, .tmp0x, .lea(.tmp1x), ._, ._ }, |
| 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 }, |
| 110117 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110118 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 111953 | .required_features = .{ .x87, null, null, null }, |
| 111954 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 111955 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110119 | 111956 | .patterns = &.{ |
| 110120 | 111957 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110121 | 111958 | }, |
| 110122 | | .call_frame = .{ .alignment = .@"16" }, |
| 110123 | 111959 | .extra_temps = .{ |
| 110124 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110125 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110126 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110127 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111960 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 111961 | .unused, |
| 111962 | .unused, |
| 111963 | .unused, |
| 110128 | 111964 | .unused, |
| 110129 | 111965 | .unused, |
| 110130 | 111966 | .unused, |
| ... | ... | @@ -110134,28 +111970,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110134 | 111970 | .unused, |
| 110135 | 111971 | }, |
| 110136 | 111972 | .dst_temps = .{ .mem, .unused }, |
| 110137 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110138 | 111973 | .each = .{ .once = &.{ |
| 110139 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110140 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110141 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110142 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110143 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110144 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111974 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 111975 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 110145 | 111976 | } }, |
| 110146 | 111977 | }, .{ |
| 110147 | | .required_features = .{ .sse, null, null, null }, |
| 110148 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110149 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 111978 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 111979 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 111980 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110150 | 111981 | .patterns = &.{ |
| 110151 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 111982 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 110152 | 111983 | }, |
| 110153 | | .call_frame = .{ .alignment = .@"16" }, |
| 110154 | 111984 | .extra_temps = .{ |
| 110155 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110156 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110157 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110158 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111985 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 111986 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 111987 | .unused, |
| 111988 | .unused, |
| 110159 | 111989 | .unused, |
| 110160 | 111990 | .unused, |
| 110161 | 111991 | .unused, |
| ... | ... | @@ -110165,28 +111995,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110165 | 111995 | .unused, |
| 110166 | 111996 | }, |
| 110167 | 111997 | .dst_temps = .{ .mem, .unused }, |
| 110168 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111998 | .clobbers = .{ .eflags = true }, |
| 110169 | 111999 | .each = .{ .once = &.{ |
| 110170 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110171 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110172 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110173 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110174 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 110175 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112000 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 112001 | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 112002 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 112003 | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 112004 | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| 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 }, |
| 110179 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110180 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112016 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112017 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 112018 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110181 | 112019 | .patterns = &.{ |
| 110182 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 112020 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 110183 | 112021 | }, |
| 110184 | 112022 | .call_frame = .{ .alignment = .@"16" }, |
| 110185 | 112023 | .extra_temps = .{ |
| 110186 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110187 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110188 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110189 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112024 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 112025 | .unused, |
| 112026 | .unused, |
| 112027 | .unused, |
| 110190 | 112028 | .unused, |
| 110191 | 112029 | .unused, |
| 110192 | 112030 | .unused, |
| ... | ... | @@ -110195,29 +112033,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110195 | 112033 | .unused, |
| 110196 | 112034 | .unused, |
| 110197 | 112035 | }, |
| 110198 | | .dst_temps = .{ .mem, .unused }, |
| 112036 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110199 | 112037 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110200 | 112038 | .each = .{ .once = &.{ |
| 110201 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 112039 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 110207 | 112040 | } }, |
| 110208 | 112041 | }, .{ |
| 110209 | | .required_features = .{ .avx, null, null, null }, |
| 110210 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110211 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112042 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112043 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 112044 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110212 | 112045 | .patterns = &.{ |
| 110213 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 112046 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 110214 | 112047 | }, |
| 110215 | 112048 | .call_frame = .{ .alignment = .@"16" }, |
| 110216 | 112049 | .extra_temps = .{ |
| 110217 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110218 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110219 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110220 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112050 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112051 | .unused, |
| 112052 | .unused, |
| 112053 | .unused, |
| 110221 | 112054 | .unused, |
| 110222 | 112055 | .unused, |
| 110223 | 112056 | .unused, |
| ... | ... | @@ -110226,29 +112059,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110226 | 112059 | .unused, |
| 110227 | 112060 | .unused, |
| 110228 | 112061 | }, |
| 110229 | | .dst_temps = .{ .mem, .unused }, |
| 112062 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110230 | 112063 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110231 | 112064 | .each = .{ .once = &.{ |
| 110232 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 112065 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 110238 | 112066 | } }, |
| 110239 | 112067 | }, .{ |
| 110240 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 110241 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110242 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112068 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112069 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112070 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110243 | 112071 | .patterns = &.{ |
| 110244 | 112072 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110245 | 112073 | }, |
| 110246 | 112074 | .call_frame = .{ .alignment = .@"16" }, |
| 110247 | 112075 | .extra_temps = .{ |
| 110248 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110249 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110250 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110251 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112076 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112077 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 112078 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112079 | .unused, |
| 110252 | 112080 | .unused, |
| 110253 | 112081 | .unused, |
| 110254 | 112082 | .unused, |
| ... | ... | @@ -110257,29 +112085,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110257 | 112085 | .unused, |
| 110258 | 112086 | .unused, |
| 110259 | 112087 | }, |
| 110260 | | .dst_temps = .{ .mem, .unused }, |
| 112088 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110261 | 112089 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110262 | 112090 | .each = .{ .once = &.{ |
| 110263 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110264 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112091 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112092 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110265 | 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 }, |
| 110272 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 110273 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112096 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112097 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112098 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 110274 | 112099 | .patterns = &.{ |
| 110275 | 112100 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110276 | 112101 | }, |
| 110277 | 112102 | .call_frame = .{ .alignment = .@"16" }, |
| 110278 | 112103 | .extra_temps = .{ |
| 110279 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110280 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110281 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110282 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112104 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112105 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 112106 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112107 | .unused, |
| 110283 | 112108 | .unused, |
| 110284 | 112109 | .unused, |
| 110285 | 112110 | .unused, |
| ... | ... | @@ -110288,98 +112113,95 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110288 | 112113 | .unused, |
| 110289 | 112114 | .unused, |
| 110290 | 112115 | }, |
| 110291 | | .dst_temps = .{ .mem, .unused }, |
| 112116 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 110292 | 112117 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110293 | 112118 | .each = .{ .once = &.{ |
| 110294 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110295 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112119 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112120 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110296 | 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 | 112124 | .required_features = .{ .avx, null, null, null }, |
| 110303 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110304 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112125 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112126 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110305 | 112127 | .patterns = &.{ |
| 110306 | 112128 | .{ .src = .{ .mem, .none, .none } }, |
| 110307 | 112129 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110308 | 112130 | }, |
| 110309 | 112131 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110310 | 112132 | .each = .{ .once = &.{ |
| 110311 | | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 110312 | | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 112133 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 112134 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110313 | 112135 | } }, |
| 110314 | 112136 | }, .{ |
| 110315 | 112137 | .required_features = .{ .sse4_1, null, null, null }, |
| 110316 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110317 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112138 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112139 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110318 | 112140 | .patterns = &.{ |
| 110319 | 112141 | .{ .src = .{ .mem, .none, .none } }, |
| 110320 | 112142 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110321 | 112143 | }, |
| 110322 | 112144 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110323 | 112145 | .each = .{ .once = &.{ |
| 110324 | | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 110325 | | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 112146 | .{ ._, .p_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 112147 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110326 | 112148 | } }, |
| 110327 | 112149 | }, .{ |
| 110328 | 112150 | .required_features = .{ .avx2, null, null, null }, |
| 110329 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 110330 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 112151 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 112152 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110331 | 112153 | .patterns = &.{ |
| 110332 | 112154 | .{ .src = .{ .mem, .none, .none } }, |
| 110333 | 112155 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110334 | 112156 | }, |
| 110335 | 112157 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110336 | 112158 | .each = .{ .once = &.{ |
| 110337 | | .{ ._, .vp_d, .movsxw, .dst0y, .src0x, ._, ._ }, |
| 110338 | | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 112159 | .{ ._, .vp_d, .movsxb, .dst0x, .src0d, ._, ._ }, |
| 112160 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 110339 | 112161 | } }, |
| 110340 | 112162 | }, .{ |
| 110341 | 112163 | .required_features = .{ .avx, null, null, null }, |
| 110342 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110343 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112164 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112165 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110344 | 112166 | .patterns = &.{ |
| 110345 | 112167 | .{ .src = .{ .mem, .none, .none } }, |
| 110346 | 112168 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110347 | 112169 | }, |
| 110348 | 112170 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110349 | 112171 | .each = .{ .once = &.{ |
| 110350 | | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 110351 | | .{ ._, .v_ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 112172 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 112173 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110352 | 112174 | } }, |
| 110353 | 112175 | }, .{ |
| 110354 | 112176 | .required_features = .{ .sse4_1, null, null, null }, |
| 110355 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110356 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112177 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112178 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110357 | 112179 | .patterns = &.{ |
| 110358 | 112180 | .{ .src = .{ .mem, .none, .none } }, |
| 110359 | 112181 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110360 | 112182 | }, |
| 110361 | 112183 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110362 | 112184 | .each = .{ .once = &.{ |
| 110363 | | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 110364 | | .{ ._, ._ps, .cvtdq2, .dst0x, .dst0x, ._, ._ }, |
| 112185 | .{ ._, .p_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 112186 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110365 | 112187 | } }, |
| 110366 | 112188 | }, .{ |
| 110367 | 112189 | .required_features = .{ .avx2, null, null, null }, |
| 110368 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 110369 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 112190 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 112191 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110370 | 112192 | .patterns = &.{ |
| 110371 | 112193 | .{ .src = .{ .mem, .none, .none } }, |
| 110372 | 112194 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110373 | 112195 | }, |
| 110374 | 112196 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110375 | 112197 | .each = .{ .once = &.{ |
| 110376 | | .{ ._, .vp_d, .movzxw, .dst0y, .src0x, ._, ._ }, |
| 110377 | | .{ ._, .v_ps, .cvtdq2, .dst0y, .dst0y, ._, ._ }, |
| 112198 | .{ ._, .vp_d, .movzxb, .dst0x, .src0d, ._, ._ }, |
| 112199 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 110378 | 112200 | } }, |
| 110379 | 112201 | }, .{ |
| 110380 | 112202 | .required_features = .{ .avx2, null, null, null }, |
| 110381 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 110382 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 112203 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 112204 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110383 | 112205 | .patterns = &.{ |
| 110384 | 112206 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110385 | 112207 | }, |
| ... | ... | @@ -110400,16 +112222,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110400 | 112222 | .clobbers = .{ .eflags = true }, |
| 110401 | 112223 | .each = .{ .once = &.{ |
| 110402 | 112224 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110403 | | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110404 | | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 110405 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 110406 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 112225 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112226 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 112227 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112228 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 110407 | 112229 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110408 | 112230 | } }, |
| 110409 | 112231 | }, .{ |
| 110410 | 112232 | .required_features = .{ .avx, null, null, null }, |
| 110411 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110412 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112233 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112234 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110413 | 112235 | .patterns = &.{ |
| 110414 | 112236 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110415 | 112237 | }, |
| ... | ... | @@ -110430,16 +112252,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110430 | 112252 | .clobbers = .{ .eflags = true }, |
| 110431 | 112253 | .each = .{ .once = &.{ |
| 110432 | 112254 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110433 | | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110434 | | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110435 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110436 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112255 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 112256 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 112257 | .{ ._, .vp_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112258 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112259 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112260 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110437 | 112261 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110438 | 112262 | } }, |
| 110439 | 112263 | }, .{ |
| 110440 | 112264 | .required_features = .{ .sse4_1, null, null, null }, |
| 110441 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110442 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112265 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112266 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110443 | 112267 | .patterns = &.{ |
| 110444 | 112268 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110445 | 112269 | }, |
| ... | ... | @@ -110460,16 +112284,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110460 | 112284 | .clobbers = .{ .eflags = true }, |
| 110461 | 112285 | .each = .{ .once = &.{ |
| 110462 | 112286 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110463 | | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110464 | | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110465 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110466 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112287 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 112288 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 112289 | .{ ._, .p_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112290 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112291 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112292 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110467 | 112293 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110468 | 112294 | } }, |
| 110469 | 112295 | }, .{ |
| 110470 | 112296 | .required_features = .{ .avx2, null, null, null }, |
| 110471 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any, .any }, |
| 110472 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 112297 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 112298 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 110473 | 112299 | .patterns = &.{ |
| 110474 | 112300 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110475 | 112301 | }, |
| ... | ... | @@ -110490,16 +112316,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110490 | 112316 | .clobbers = .{ .eflags = true }, |
| 110491 | 112317 | .each = .{ .once = &.{ |
| 110492 | 112318 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110493 | | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110494 | | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 110495 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 110496 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 112319 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112320 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 112321 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112322 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 110497 | 112323 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110498 | 112324 | } }, |
| 110499 | 112325 | }, .{ |
| 110500 | 112326 | .required_features = .{ .avx, null, null, null }, |
| 110501 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110502 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112327 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112328 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110503 | 112329 | .patterns = &.{ |
| 110504 | 112330 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110505 | 112331 | }, |
| ... | ... | @@ -110520,16 +112346,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110520 | 112346 | .clobbers = .{ .eflags = true }, |
| 110521 | 112347 | .each = .{ .once = &.{ |
| 110522 | 112348 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110523 | | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110524 | | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110525 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110526 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112349 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 112350 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 112351 | .{ ._, .vp_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112352 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112353 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112354 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110527 | 112355 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110528 | 112356 | } }, |
| 110529 | 112357 | }, .{ |
| 110530 | 112358 | .required_features = .{ .sse4_1, null, null, null }, |
| 110531 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 110532 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112359 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112360 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110533 | 112361 | .patterns = &.{ |
| 110534 | 112362 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110535 | 112363 | }, |
| ... | ... | @@ -110550,16 +112378,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110550 | 112378 | .clobbers = .{ .eflags = true }, |
| 110551 | 112379 | .each = .{ .once = &.{ |
| 110552 | 112380 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110553 | | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110554 | | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 110555 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110556 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112381 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 112382 | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 112383 | .{ ._, .p_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112384 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112385 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112386 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110557 | 112387 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110558 | 112388 | } }, |
| 110559 | 112389 | }, .{ |
| 110560 | | .required_features = .{ .avx, null, null, null }, |
| 110561 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110562 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112390 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 112391 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112392 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110563 | 112393 | .patterns = &.{ |
| 110564 | 112394 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110565 | 112395 | }, |
| ... | ... | @@ -110567,8 +112397,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110567 | 112397 | .extra_temps = .{ |
| 110568 | 112398 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110569 | 112399 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110570 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110571 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112400 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 112401 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110572 | 112402 | .unused, |
| 110573 | 112403 | .unused, |
| 110574 | 112404 | .unused, |
| ... | ... | @@ -110581,16 +112411,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110581 | 112411 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110582 | 112412 | .each = .{ .once = &.{ |
| 110583 | 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 | 112415 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110586 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110587 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 112416 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112417 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110588 | 112418 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110589 | 112419 | } }, |
| 110590 | 112420 | }, .{ |
| 110591 | | .required_features = .{ .sse, null, null, null }, |
| 110592 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110593 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112421 | .required_features = .{ .avx, null, null, null }, |
| 112422 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112423 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110594 | 112424 | .patterns = &.{ |
| 110595 | 112425 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110596 | 112426 | }, |
| ... | ... | @@ -110598,8 +112428,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110598 | 112428 | .extra_temps = .{ |
| 110599 | 112429 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110600 | 112430 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110601 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110602 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112431 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 112432 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110603 | 112433 | .unused, |
| 110604 | 112434 | .unused, |
| 110605 | 112435 | .unused, |
| ... | ... | @@ -110612,25 +112442,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110612 | 112442 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110613 | 112443 | .each = .{ .once = &.{ |
| 110614 | 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 | 112446 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110617 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110618 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110619 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112447 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112448 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112449 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110620 | 112450 | } }, |
| 110621 | 112451 | }, .{ |
| 110622 | | .required_features = .{ .avx, null, null, null }, |
| 110623 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110624 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112452 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 112453 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112454 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110625 | 112455 | .patterns = &.{ |
| 110626 | 112456 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110627 | 112457 | }, |
| 110628 | 112458 | .call_frame = .{ .alignment = .@"16" }, |
| 110629 | 112459 | .extra_temps = .{ |
| 110630 | 112460 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110631 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110632 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110633 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112461 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112462 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 112463 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110634 | 112464 | .unused, |
| 110635 | 112465 | .unused, |
| 110636 | 112466 | .unused, |
| ... | ... | @@ -110643,25 +112473,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110643 | 112473 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110644 | 112474 | .each = .{ .once = &.{ |
| 110645 | 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 | 112477 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110648 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110649 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 112478 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112479 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110650 | 112480 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110651 | 112481 | } }, |
| 110652 | 112482 | }, .{ |
| 110653 | | .required_features = .{ .sse, null, null, null }, |
| 110654 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 110655 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112483 | .required_features = .{ .sse2, null, null, null }, |
| 112484 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112485 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110656 | 112486 | .patterns = &.{ |
| 110657 | 112487 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110658 | 112488 | }, |
| 110659 | 112489 | .call_frame = .{ .alignment = .@"16" }, |
| 110660 | 112490 | .extra_temps = .{ |
| 110661 | 112491 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110662 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110663 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110664 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112492 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112493 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 112494 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110665 | 112495 | .unused, |
| 110666 | 112496 | .unused, |
| 110667 | 112497 | .unused, |
| ... | ... | @@ -110674,60 +112504,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110674 | 112504 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110675 | 112505 | .each = .{ .once = &.{ |
| 110676 | 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 | 112508 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110679 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110680 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110681 | | .{ ._, ._nc, .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, ._, ._ }, |
| 112509 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112510 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112511 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110718 | 112512 | } }, |
| 110719 | 112513 | }, .{ |
| 110720 | | .required_features = .{ .avx2, null, null, null }, |
| 110721 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any, .any }, |
| 110722 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 112514 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 112515 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112516 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110723 | 112517 | .patterns = &.{ |
| 110724 | 112518 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110725 | 112519 | }, |
| 112520 | .call_frame = .{ .alignment = .@"16" }, |
| 110726 | 112521 | .extra_temps = .{ |
| 110727 | 112522 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110728 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 110729 | | .unused, |
| 110730 | | .unused, |
| 112523 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112524 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 112525 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110731 | 112526 | .unused, |
| 110732 | 112527 | .unused, |
| 110733 | 112528 | .unused, |
| ... | ... | @@ -110737,26 +112532,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110737 | 112532 | .unused, |
| 110738 | 112533 | }, |
| 110739 | 112534 | .dst_temps = .{ .mem, .unused }, |
| 110740 | | .clobbers = .{ .eflags = true }, |
| 112535 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110741 | 112536 | .each = .{ .once = &.{ |
| 110742 | 112537 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 110743 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110744 | | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 110745 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 112538 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112539 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112540 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112541 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110746 | 112542 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110747 | 112543 | } }, |
| 110748 | 112544 | }, .{ |
| 110749 | | .required_features = .{ .avx, null, null, null }, |
| 110750 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 110751 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112545 | .required_features = .{ .sse, null, null, null }, |
| 112546 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112547 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110752 | 112548 | .patterns = &.{ |
| 110753 | 112549 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110754 | 112550 | }, |
| 112551 | .call_frame = .{ .alignment = .@"16" }, |
| 110755 | 112552 | .extra_temps = .{ |
| 110756 | 112553 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110757 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 110758 | | .unused, |
| 110759 | | .unused, |
| 112554 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112555 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 112556 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110760 | 112557 | .unused, |
| 110761 | 112558 | .unused, |
| 110762 | 112559 | .unused, |
| ... | ... | @@ -110766,26 +112563,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110766 | 112563 | .unused, |
| 110767 | 112564 | }, |
| 110768 | 112565 | .dst_temps = .{ .mem, .unused }, |
| 110769 | | .clobbers = .{ .eflags = true }, |
| 112566 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110770 | 112567 | .each = .{ .once = &.{ |
| 110771 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110772 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110773 | | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110774 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 110775 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112568 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112569 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112570 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112571 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112572 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112573 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110776 | 112574 | } }, |
| 110777 | 112575 | }, .{ |
| 110778 | | .required_features = .{ .sse2, null, null, null }, |
| 110779 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 110780 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 112576 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 112577 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112578 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110781 | 112579 | .patterns = &.{ |
| 110782 | 112580 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110783 | 112581 | }, |
| 112582 | .call_frame = .{ .alignment = .@"16" }, |
| 110784 | 112583 | .extra_temps = .{ |
| 110785 | 112584 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110786 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 110787 | | .unused, |
| 110788 | | .unused, |
| 112585 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112586 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112587 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110789 | 112588 | .unused, |
| 110790 | 112589 | .unused, |
| 110791 | 112590 | .unused, |
| ... | ... | @@ -110795,26 +112594,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110795 | 112594 | .unused, |
| 110796 | 112595 | }, |
| 110797 | 112596 | .dst_temps = .{ .mem, .unused }, |
| 110798 | | .clobbers = .{ .eflags = true }, |
| 112597 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110799 | 112598 | .each = .{ .once = &.{ |
| 110800 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110801 | | .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110802 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110803 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 112599 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112600 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112601 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112602 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112603 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110804 | 112604 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110805 | 112605 | } }, |
| 110806 | 112606 | }, .{ |
| 110807 | | .required_features = .{ .sse, null, null, null }, |
| 110808 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110809 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112607 | .required_features = .{ .avx, null, null, null }, |
| 112608 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112609 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110810 | 112610 | .patterns = &.{ |
| 110811 | 112611 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110812 | 112612 | }, |
| 112613 | .call_frame = .{ .alignment = .@"16" }, |
| 110813 | 112614 | .extra_temps = .{ |
| 110814 | 112615 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110815 | | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 110816 | | .unused, |
| 110817 | | .unused, |
| 112616 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112617 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112618 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110818 | 112619 | .unused, |
| 110819 | 112620 | .unused, |
| 110820 | 112621 | .unused, |
| ... | ... | @@ -110824,27 +112625,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110824 | 112625 | .unused, |
| 110825 | 112626 | }, |
| 110826 | 112627 | .dst_temps = .{ .mem, .unused }, |
| 110827 | | .clobbers = .{ .eflags = true }, |
| 112628 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110828 | 112629 | .each = .{ .once = &.{ |
| 110829 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110830 | | .{ .@"0:", ._ss, .cvtsi2, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110831 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 110832 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 110833 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112630 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112631 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112632 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112633 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112634 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112635 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110834 | 112636 | } }, |
| 110835 | 112637 | }, .{ |
| 110836 | | .required_features = .{ .avx, null, null, null }, |
| 110837 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110838 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112638 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 112639 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112640 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110839 | 112641 | .patterns = &.{ |
| 110840 | 112642 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110841 | 112643 | }, |
| 110842 | 112644 | .call_frame = .{ .alignment = .@"16" }, |
| 110843 | 112645 | .extra_temps = .{ |
| 110844 | 112646 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110845 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110846 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110847 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112647 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112648 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112649 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110848 | 112650 | .unused, |
| 110849 | 112651 | .unused, |
| 110850 | 112652 | .unused, |
| ... | ... | @@ -110856,26 +112658,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110856 | 112658 | .dst_temps = .{ .mem, .unused }, |
| 110857 | 112659 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110858 | 112660 | .each = .{ .once = &.{ |
| 110859 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110860 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112661 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112662 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110861 | 112663 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110862 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110863 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112664 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112665 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110864 | 112666 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110865 | 112667 | } }, |
| 110866 | 112668 | }, .{ |
| 110867 | | .required_features = .{ .sse, null, null, null }, |
| 110868 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110869 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112669 | .required_features = .{ .sse2, null, null, null }, |
| 112670 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112671 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110870 | 112672 | .patterns = &.{ |
| 110871 | 112673 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110872 | 112674 | }, |
| 110873 | 112675 | .call_frame = .{ .alignment = .@"16" }, |
| 110874 | 112676 | .extra_temps = .{ |
| 110875 | 112677 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110876 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 110877 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsisf" } } }, |
| 110878 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112678 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112679 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112680 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110879 | 112681 | .unused, |
| 110880 | 112682 | .unused, |
| 110881 | 112683 | .unused, |
| ... | ... | @@ -110887,17 +112689,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110887 | 112689 | .dst_temps = .{ .mem, .unused }, |
| 110888 | 112690 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110889 | 112691 | .each = .{ .once = &.{ |
| 110890 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110891 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112692 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112693 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110892 | 112694 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110893 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110894 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 110895 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112695 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112696 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112697 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110896 | 112698 | } }, |
| 110897 | 112699 | }, .{ |
| 110898 | | .required_features = .{ .avx, null, null, null }, |
| 110899 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110900 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112700 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 112701 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112702 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110901 | 112703 | .patterns = &.{ |
| 110902 | 112704 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110903 | 112705 | }, |
| ... | ... | @@ -110905,8 +112707,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110905 | 112707 | .extra_temps = .{ |
| 110906 | 112708 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110907 | 112709 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110908 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110909 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112710 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112711 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110910 | 112712 | .unused, |
| 110911 | 112713 | .unused, |
| 110912 | 112714 | .unused, |
| ... | ... | @@ -110918,17 +112720,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110918 | 112720 | .dst_temps = .{ .mem, .unused }, |
| 110919 | 112721 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110920 | 112722 | .each = .{ .once = &.{ |
| 110921 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110922 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112723 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112724 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110923 | 112725 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110924 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110925 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112726 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112727 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 110926 | 112728 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110927 | 112729 | } }, |
| 110928 | 112730 | }, .{ |
| 110929 | 112731 | .required_features = .{ .sse, null, null, null }, |
| 110930 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 110931 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112732 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112733 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 110932 | 112734 | .patterns = &.{ |
| 110933 | 112735 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110934 | 112736 | }, |
| ... | ... | @@ -110936,8 +112738,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110936 | 112738 | .extra_temps = .{ |
| 110937 | 112739 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110938 | 112740 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 110939 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsisf" } } }, |
| 110940 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112741 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112742 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 110941 | 112743 | .unused, |
| 110942 | 112744 | .unused, |
| 110943 | 112745 | .unused, |
| ... | ... | @@ -110949,243 +112751,104 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110949 | 112751 | .dst_temps = .{ .mem, .unused }, |
| 110950 | 112752 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110951 | 112753 | .each = .{ .once = &.{ |
| 110952 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110953 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112754 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112755 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110954 | 112756 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110955 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 110956 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 110957 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112757 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112758 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112759 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110958 | 112760 | } }, |
| 110959 | 112761 | }, .{ |
| 110960 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 110961 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 110962 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112762 | .required_features = .{ .avx, null, null, null }, |
| 112763 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112764 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110963 | 112765 | .patterns = &.{ |
| 110964 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 110965 | | }, |
| 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, |
| 112766 | .{ .src = .{ .mem, .none, .none } }, |
| 112767 | .{ .src = .{ .to_sse, .none, .none } }, |
| 110978 | 112768 | }, |
| 110979 | | .dst_temps = .{ .mem, .unused }, |
| 110980 | | .clobbers = .{ .eflags = true }, |
| 112769 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 110981 | 112770 | .each = .{ .once = &.{ |
| 110982 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110983 | | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 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", ._, ._, ._ }, |
| 112771 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 112772 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 110988 | 112773 | } }, |
| 110989 | 112774 | }, .{ |
| 110990 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 110991 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 110992 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112775 | .required_features = .{ .sse4_1, null, null, null }, |
| 112776 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112777 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 110993 | 112778 | .patterns = &.{ |
| 110994 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 110995 | | }, |
| 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, |
| 112779 | .{ .src = .{ .mem, .none, .none } }, |
| 112780 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111008 | 112781 | }, |
| 111009 | | .dst_temps = .{ .mem, .unused }, |
| 111010 | | .clobbers = .{ .eflags = true }, |
| 112782 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111011 | 112783 | .each = .{ .once = &.{ |
| 111012 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111013 | | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 112784 | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 112785 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 111018 | 112786 | } }, |
| 111019 | 112787 | }, .{ |
| 111020 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111021 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111022 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112788 | .required_features = .{ .avx2, null, null, null }, |
| 112789 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112790 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111023 | 112791 | .patterns = &.{ |
| 111024 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 111025 | | }, |
| 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, |
| 112792 | .{ .src = .{ .mem, .none, .none } }, |
| 112793 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111039 | 112794 | }, |
| 111040 | | .dst_temps = .{ .mem, .unused }, |
| 111041 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112795 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111042 | 112796 | .each = .{ .once = &.{ |
| 111043 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111044 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111045 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111046 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111047 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111048 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112797 | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 112798 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 111049 | 112799 | } }, |
| 111050 | 112800 | }, .{ |
| 111051 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111052 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111053 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112801 | .required_features = .{ .avx, null, null, null }, |
| 112802 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112803 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111054 | 112804 | .patterns = &.{ |
| 111055 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 111056 | | }, |
| 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, |
| 112805 | .{ .src = .{ .mem, .none, .none } }, |
| 112806 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111070 | 112807 | }, |
| 111071 | | .dst_temps = .{ .mem, .unused }, |
| 111072 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112808 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111073 | 112809 | .each = .{ .once = &.{ |
| 111074 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111075 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111076 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111077 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111078 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111079 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112810 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 112811 | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 111080 | 112812 | } }, |
| 111081 | 112813 | }, .{ |
| 111082 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111083 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111084 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112814 | .required_features = .{ .sse4_1, null, null, null }, |
| 112815 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112816 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111085 | 112817 | .patterns = &.{ |
| 111086 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 111087 | | }, |
| 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, |
| 112818 | .{ .src = .{ .mem, .none, .none } }, |
| 112819 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111101 | 112820 | }, |
| 111102 | | .dst_temps = .{ .mem, .unused }, |
| 111103 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112821 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111104 | 112822 | .each = .{ .once = &.{ |
| 111105 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111106 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111107 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111108 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111109 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111110 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112823 | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 112824 | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 111111 | 112825 | } }, |
| 111112 | 112826 | }, .{ |
| 111113 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111114 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 111115 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112827 | .required_features = .{ .avx2, null, null, null }, |
| 112828 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112829 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111116 | 112830 | .patterns = &.{ |
| 111117 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 111118 | | }, |
| 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, |
| 112831 | .{ .src = .{ .mem, .none, .none } }, |
| 112832 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111132 | 112833 | }, |
| 111133 | | .dst_temps = .{ .mem, .unused }, |
| 111134 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112834 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111135 | 112835 | .each = .{ .once = &.{ |
| 111136 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111137 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111138 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111139 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111140 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111141 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112836 | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 112837 | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 111142 | 112838 | } }, |
| 111143 | 112839 | }, .{ |
| 111144 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111145 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111146 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112840 | .required_features = .{ .avx2, null, null, null }, |
| 112841 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112842 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111147 | 112843 | .patterns = &.{ |
| 111148 | 112844 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111149 | 112845 | }, |
| 111150 | | .call_frame = .{ .alignment = .@"16" }, |
| 111151 | 112846 | .extra_temps = .{ |
| 111152 | 112847 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111153 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 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, |
| 112848 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111160 | 112849 | .unused, |
| 111161 | 112850 | .unused, |
| 111162 | 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 | 112852 | .unused, |
| 111190 | 112853 | .unused, |
| 111191 | 112854 | .unused, |
| ... | ... | @@ -111194,62 +112857,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111194 | 112857 | .unused, |
| 111195 | 112858 | }, |
| 111196 | 112859 | .dst_temps = .{ .mem, .unused }, |
| 111197 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112860 | .clobbers = .{ .eflags = true }, |
| 111198 | 112861 | .each = .{ .once = &.{ |
| 111199 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111200 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111201 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 111202 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 111203 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 111204 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112862 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112863 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112864 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 112865 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112866 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111205 | 112867 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111206 | 112868 | } }, |
| 111207 | 112869 | }, .{ |
| 111208 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111209 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111210 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112870 | .required_features = .{ .avx, null, null, null }, |
| 112871 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112872 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111211 | 112873 | .patterns = &.{ |
| 111212 | 112874 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111213 | 112875 | }, |
| 111214 | | .call_frame = .{ .alignment = .@"16" }, |
| 111215 | 112876 | .extra_temps = .{ |
| 111216 | 112877 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111217 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 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, |
| 112878 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111224 | 112879 | .unused, |
| 111225 | 112880 | .unused, |
| 111226 | 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 | 112882 | .unused, |
| 111254 | 112883 | .unused, |
| 111255 | 112884 | .unused, |
| ... | ... | @@ -111258,99 +112887,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111258 | 112887 | .unused, |
| 111259 | 112888 | }, |
| 111260 | 112889 | .dst_temps = .{ .mem, .unused }, |
| 111261 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112890 | .clobbers = .{ .eflags = true }, |
| 111262 | 112891 | .each = .{ .once = &.{ |
| 111263 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111264 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 111265 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 111266 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 111267 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112892 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112893 | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112894 | .{ ._, .vp_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 112895 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112896 | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111268 | 112897 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111269 | 112898 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111270 | 112899 | } }, |
| 111271 | 112900 | }, .{ |
| 111272 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111273 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111274 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .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 }, |
| 112901 | .required_features = .{ .sse4_1, null, null, null }, |
| 112902 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112903 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111309 | 112904 | .patterns = &.{ |
| 111310 | 112905 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111311 | 112906 | }, |
| 111312 | | .call_frame = .{ .alignment = .@"16" }, |
| 111313 | 112907 | .extra_temps = .{ |
| 111314 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 111315 | 112908 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111316 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 111317 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 111318 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateisf" } } }, |
| 111319 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 111320 | | .unused, |
| 112909 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111321 | 112910 | .unused, |
| 111322 | 112911 | .unused, |
| 111323 | 112912 | .unused, |
| 111324 | 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 | 112914 | .unused, |
| 111355 | 112915 | .unused, |
| 111356 | 112916 | .unused, |
| ... | ... | @@ -111358,33 +112918,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111358 | 112918 | .unused, |
| 111359 | 112919 | }, |
| 111360 | 112920 | .dst_temps = .{ .mem, .unused }, |
| 111361 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111362 | | .each = .{ .once = &.{ |
| 111363 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 111364 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111365 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 111366 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 111367 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 111368 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 111369 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 111370 | | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 112921 | .clobbers = .{ .eflags = true }, |
| 112922 | .each = .{ .once = &.{ |
| 112923 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112924 | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112925 | .{ ._, .p_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 112926 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112927 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112928 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111371 | 112929 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111372 | 112930 | } }, |
| 111373 | 112931 | }, .{ |
| 111374 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111375 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 111376 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112932 | .required_features = .{ .avx2, null, null, null }, |
| 112933 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112934 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111377 | 112935 | .patterns = &.{ |
| 111378 | 112936 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111379 | 112937 | }, |
| 111380 | | .call_frame = .{ .alignment = .@"16" }, |
| 111381 | 112938 | .extra_temps = .{ |
| 111382 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 111383 | 112939 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111384 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 111385 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 111386 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneisf" } } }, |
| 111387 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 112940 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 112941 | .unused, |
| 112942 | .unused, |
| 112943 | .unused, |
| 112944 | .unused, |
| 111388 | 112945 | .unused, |
| 111389 | 112946 | .unused, |
| 111390 | 112947 | .unused, |
| ... | ... | @@ -111392,29 +112949,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111392 | 112949 | .unused, |
| 111393 | 112950 | }, |
| 111394 | 112951 | .dst_temps = .{ .mem, .unused }, |
| 111395 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112952 | .clobbers = .{ .eflags = true }, |
| 111396 | 112953 | .each = .{ .once = &.{ |
| 111397 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 111398 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 111399 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 111400 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 111401 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 111402 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 111403 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 111404 | | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 112954 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112955 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112956 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 112957 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112958 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111405 | 112959 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111406 | 112960 | } }, |
| 111407 | 112961 | }, .{ |
| 111408 | 112962 | .required_features = .{ .avx, null, null, null }, |
| 111409 | | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 111410 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 112963 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112964 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111411 | 112965 | .patterns = &.{ |
| 111412 | | .{ .src = .{ .mem, .none, .none } }, |
| 111413 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 112966 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111414 | 112967 | }, |
| 111415 | 112968 | .extra_temps = .{ |
| 111416 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111417 | | .unused, |
| 112969 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112970 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111418 | 112971 | .unused, |
| 111419 | 112972 | .unused, |
| 111420 | 112973 | .unused, |
| ... | ... | @@ -111425,23 +112978,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111425 | 112978 | .unused, |
| 111426 | 112979 | .unused, |
| 111427 | 112980 | }, |
| 111428 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 112981 | .dst_temps = .{ .mem, .unused }, |
| 112982 | .clobbers = .{ .eflags = true }, |
| 111429 | 112983 | .each = .{ .once = &.{ |
| 111430 | | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 111431 | | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 111432 | | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 112984 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112985 | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 111436 | | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 111437 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 112993 | .required_features = .{ .sse4_1, null, null, null }, |
| 112994 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112995 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111438 | 112996 | .patterns = &.{ |
| 111439 | | .{ .src = .{ .mem, .none, .none } }, |
| 111440 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 112997 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111441 | 112998 | }, |
| 111442 | 112999 | .extra_temps = .{ |
| 111443 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111444 | | .unused, |
| 113000 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113001 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111445 | 113002 | .unused, |
| 111446 | 113003 | .unused, |
| 111447 | 113004 | .unused, |
| ... | ... | @@ -111452,25 +113009,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111452 | 113009 | .unused, |
| 111453 | 113010 | .unused, |
| 111454 | 113011 | }, |
| 111455 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113012 | .dst_temps = .{ .mem, .unused }, |
| 113013 | .clobbers = .{ .eflags = true }, |
| 111456 | 113014 | .each = .{ .once = &.{ |
| 111457 | | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 111458 | | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111459 | | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 113015 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113016 | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 | 113024 | .required_features = .{ .avx, null, null, null }, |
| 111463 | | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 111464 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113025 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113026 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111465 | 113027 | .patterns = &.{ |
| 111466 | | .{ .src = .{ .mem, .none, .none } }, |
| 111467 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113028 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111468 | 113029 | }, |
| 113030 | .call_frame = .{ .alignment = .@"16" }, |
| 111469 | 113031 | .extra_temps = .{ |
| 111470 | | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111471 | | .unused, |
| 111472 | | .unused, |
| 111473 | | .unused, |
| 113032 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113033 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113034 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113035 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111474 | 113036 | .unused, |
| 111475 | 113037 | .unused, |
| 111476 | 113038 | .unused, |
| ... | ... | @@ -111479,25 +113041,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111479 | 113041 | .unused, |
| 111480 | 113042 | .unused, |
| 111481 | 113043 | }, |
| 111482 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113044 | .dst_temps = .{ .mem, .unused }, |
| 113045 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111483 | 113046 | .each = .{ .once = &.{ |
| 111484 | | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 111485 | | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 111486 | | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 113047 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113048 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 | 113055 | .required_features = .{ .sse2, null, null, null }, |
| 111490 | | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 111491 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113056 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113057 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111492 | 113058 | .patterns = &.{ |
| 111493 | | .{ .src = .{ .mem, .none, .none } }, |
| 111494 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113059 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111495 | 113060 | }, |
| 113061 | .call_frame = .{ .alignment = .@"16" }, |
| 111496 | 113062 | .extra_temps = .{ |
| 111497 | | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111498 | | .unused, |
| 111499 | | .unused, |
| 111500 | | .unused, |
| 113063 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113064 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113065 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113066 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111501 | 113067 | .unused, |
| 111502 | 113068 | .unused, |
| 111503 | 113069 | .unused, |
| ... | ... | @@ -111506,25 +113072,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111506 | 113072 | .unused, |
| 111507 | 113073 | .unused, |
| 111508 | 113074 | }, |
| 111509 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113075 | .dst_temps = .{ .mem, .unused }, |
| 113076 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111510 | 113077 | .each = .{ .once = &.{ |
| 111511 | | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 111512 | | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111513 | | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 113078 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113079 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 111517 | | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 111518 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113086 | .required_features = .{ .sse, null, null, null }, |
| 113087 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113088 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111519 | 113089 | .patterns = &.{ |
| 111520 | | .{ .src = .{ .mem, .none, .none } }, |
| 111521 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113090 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111522 | 113091 | }, |
| 113092 | .call_frame = .{ .alignment = .@"16" }, |
| 111523 | 113093 | .extra_temps = .{ |
| 111524 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111525 | | .unused, |
| 111526 | | .unused, |
| 111527 | | .unused, |
| 113094 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113095 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113096 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113097 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111528 | 113098 | .unused, |
| 111529 | 113099 | .unused, |
| 111530 | 113100 | .unused, |
| ... | ... | @@ -111533,25 +113103,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111533 | 113103 | .unused, |
| 111534 | 113104 | .unused, |
| 111535 | 113105 | }, |
| 111536 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113106 | .dst_temps = .{ .mem, .unused }, |
| 113107 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111537 | 113108 | .each = .{ .once = &.{ |
| 111538 | | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 111539 | | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 111540 | | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 113109 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113110 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 111544 | | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 111545 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113117 | .required_features = .{ .avx, null, null, null }, |
| 113118 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113119 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111546 | 113120 | .patterns = &.{ |
| 111547 | | .{ .src = .{ .mem, .none, .none } }, |
| 111548 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113121 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111549 | 113122 | }, |
| 113123 | .call_frame = .{ .alignment = .@"16" }, |
| 111550 | 113124 | .extra_temps = .{ |
| 111551 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111552 | | .unused, |
| 111553 | | .unused, |
| 111554 | | .unused, |
| 113125 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113126 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113127 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113128 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111555 | 113129 | .unused, |
| 111556 | 113130 | .unused, |
| 111557 | 113131 | .unused, |
| ... | ... | @@ -111560,25 +113134,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111560 | 113134 | .unused, |
| 111561 | 113135 | .unused, |
| 111562 | 113136 | }, |
| 111563 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113137 | .dst_temps = .{ .mem, .unused }, |
| 113138 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111564 | 113139 | .each = .{ .once = &.{ |
| 111565 | | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 111566 | | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111567 | | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 113140 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113141 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 111571 | | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 111572 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113148 | .required_features = .{ .sse2, null, null, null }, |
| 113149 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113150 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111573 | 113151 | .patterns = &.{ |
| 111574 | | .{ .src = .{ .mem, .none, .none } }, |
| 111575 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113152 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111576 | 113153 | }, |
| 113154 | .call_frame = .{ .alignment = .@"16" }, |
| 111577 | 113155 | .extra_temps = .{ |
| 111578 | | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111579 | | .unused, |
| 111580 | | .unused, |
| 111581 | | .unused, |
| 113156 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113157 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113158 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113159 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111582 | 113160 | .unused, |
| 111583 | 113161 | .unused, |
| 111584 | 113162 | .unused, |
| ... | ... | @@ -111587,25 +113165,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111587 | 113165 | .unused, |
| 111588 | 113166 | .unused, |
| 111589 | 113167 | }, |
| 111590 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113168 | .dst_temps = .{ .mem, .unused }, |
| 113169 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111591 | 113170 | .each = .{ .once = &.{ |
| 111592 | | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 111593 | | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 111594 | | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0d, ._ }, |
| 113171 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113172 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 111598 | | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 111599 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113179 | .required_features = .{ .sse, null, null, null }, |
| 113180 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113181 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111600 | 113182 | .patterns = &.{ |
| 111601 | | .{ .src = .{ .mem, .none, .none } }, |
| 111602 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113183 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111603 | 113184 | }, |
| 113185 | .call_frame = .{ .alignment = .@"16" }, |
| 111604 | 113186 | .extra_temps = .{ |
| 111605 | | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111606 | | .unused, |
| 111607 | | .unused, |
| 111608 | | .unused, |
| 113187 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113188 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113189 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113190 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111609 | 113191 | .unused, |
| 111610 | 113192 | .unused, |
| 111611 | 113193 | .unused, |
| ... | ... | @@ -111614,104 +113196,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111614 | 113196 | .unused, |
| 111615 | 113197 | .unused, |
| 111616 | 113198 | }, |
| 111617 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113199 | .dst_temps = .{ .mem, .unused }, |
| 113200 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111618 | 113201 | .each = .{ .once = &.{ |
| 111619 | | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 111620 | | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111621 | | .{ ._, ._sd, .cvtsi2, .dst0x, .tmp0d, ._, ._ }, |
| 113202 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113203 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 | 113210 | .required_features = .{ .avx, null, null, null }, |
| 111625 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 111626 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113211 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 113212 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111627 | 113213 | .patterns = &.{ |
| 111628 | 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 | 113218 | .each = .{ .once = &.{ |
| 111633 | | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 111634 | | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .src0d, ._ }, |
| 113219 | .{ ._, .v_pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, |
| 111635 | 113220 | } }, |
| 111636 | 113221 | }, .{ |
| 111637 | 113222 | .required_features = .{ .sse2, null, null, null }, |
| 111638 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 111639 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113223 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 113224 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111640 | 113225 | .patterns = &.{ |
| 111641 | 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 | 113230 | .each = .{ .once = &.{ |
| 111646 | | .{ ._, ._pd, .xor, .dst0x, .dst0x, ._, ._ }, |
| 111647 | | .{ ._, ._sd, .cvtsi2, .dst0x, .src0d, ._, ._ }, |
| 113231 | .{ ._, ._pd, .cvtdq2, .dst0x, .src0q, ._, ._ }, |
| 111648 | 113232 | } }, |
| 111649 | 113233 | }, .{ |
| 111650 | | .required_features = .{ .avx, null, null, null }, |
| 111651 | | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 111652 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113234 | .required_features = .{ .avx2, null, null, null }, |
| 113235 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 113236 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111653 | 113237 | .patterns = &.{ |
| 111654 | 113238 | .{ .src = .{ .mem, .none, .none } }, |
| 111655 | | .{ .src = .{ .to_gpr, .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, |
| 113239 | .{ .src = .{ .to_sse, .none, .none } }, |
| 111669 | 113240 | }, |
| 111670 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113241 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 111671 | 113242 | .each = .{ .once = &.{ |
| 111672 | | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 111673 | | .{ ._, .v_pd, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| 111674 | | .{ ._, .v_sd, .cvtsi2, .dst0x, .dst0x, .tmp0q, ._ }, |
| 113243 | .{ ._, .v_pd, .cvtdq2, .dst0y, .src0x, ._, ._ }, |
| 111675 | 113244 | } }, |
| 111676 | 113245 | }, .{ |
| 111677 | | .required_features = .{ .sse2, null, null, null }, |
| 111678 | | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 111679 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113246 | .required_features = .{ .avx2, null, null, null }, |
| 113247 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any, .any }, |
| 113248 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 111680 | 113249 | .patterns = &.{ |
| 111681 | | .{ .src = .{ .mem, .none, .none } }, |
| 111682 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113250 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111683 | 113251 | }, |
| 111684 | 113252 | .extra_temps = .{ |
| 111685 | | .{ .type = .u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111686 | | .unused, |
| 111687 | | .unused, |
| 111688 | | .unused, |
| 111689 | | .unused, |
| 111690 | | .unused, |
| 111691 | | .unused, |
| 111692 | | .unused, |
| 111693 | | .unused, |
| 111694 | | .unused, |
| 113253 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113254 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111695 | 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 | 113256 | .unused, |
| 111716 | 113257 | .unused, |
| 111717 | 113258 | .unused, |
| ... | ... | @@ -111722,24 +113263,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111722 | 113263 | .unused, |
| 111723 | 113264 | }, |
| 111724 | 113265 | .dst_temps = .{ .mem, .unused }, |
| 113266 | .clobbers = .{ .eflags = true }, |
| 111725 | 113267 | .each = .{ .once = &.{ |
| 111726 | | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 111727 | | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 111728 | | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 111729 | | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 113268 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113269 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113270 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 113271 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 113272 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111730 | 113273 | } }, |
| 111731 | 113274 | }, .{ |
| 111732 | | .required_features = .{ .x87, null, null, null }, |
| 111733 | | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 111734 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113275 | .required_features = .{ .avx, null, null, null }, |
| 113276 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 113277 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111735 | 113278 | .patterns = &.{ |
| 111736 | | .{ .src = .{ .mem, .none, .none } }, |
| 111737 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113279 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111738 | 113280 | }, |
| 111739 | 113281 | .extra_temps = .{ |
| 111740 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111741 | | .{ .type = .i16, .kind = .mem }, |
| 111742 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 113282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113283 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 113284 | .unused, |
| 111743 | 113285 | .unused, |
| 111744 | 113286 | .unused, |
| 111745 | 113287 | .unused, |
| ... | ... | @@ -111750,22 +113292,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111750 | 113292 | .unused, |
| 111751 | 113293 | }, |
| 111752 | 113294 | .dst_temps = .{ .mem, .unused }, |
| 113295 | .clobbers = .{ .eflags = true }, |
| 111753 | 113296 | .each = .{ .once = &.{ |
| 111754 | | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 111755 | | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 111756 | | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 111757 | | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 113297 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113298 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113299 | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113300 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113301 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111758 | 113302 | } }, |
| 111759 | 113303 | }, .{ |
| 111760 | | .required_features = .{ .x87, null, null, null }, |
| 111761 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, |
| 111762 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113304 | .required_features = .{ .sse2, null, null, null }, |
| 113305 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 113306 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 111763 | 113307 | .patterns = &.{ |
| 111764 | 113308 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111765 | 113309 | }, |
| 111766 | 113310 | .extra_temps = .{ |
| 111767 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 111768 | | .unused, |
| 113311 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113312 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111769 | 113313 | .unused, |
| 111770 | 113314 | .unused, |
| 111771 | 113315 | .unused, |
| ... | ... | @@ -111777,23 +113321,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111777 | 113321 | .unused, |
| 111778 | 113322 | }, |
| 111779 | 113323 | .dst_temps = .{ .mem, .unused }, |
| 113324 | .clobbers = .{ .eflags = true }, |
| 111780 | 113325 | .each = .{ .once = &.{ |
| 111781 | | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, |
| 111782 | | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 113326 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 111786 | | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, |
| 111787 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113333 | .required_features = .{ .avx, null, null, null }, |
| 113334 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113335 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111788 | 113336 | .patterns = &.{ |
| 111789 | | .{ .src = .{ .mem, .none, .none } }, |
| 111790 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113337 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111791 | 113338 | }, |
| 113339 | .call_frame = .{ .alignment = .@"16" }, |
| 111792 | 113340 | .extra_temps = .{ |
| 111793 | | .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111794 | | .{ .type = .i32, .kind = .mem }, |
| 111795 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 111796 | | .unused, |
| 113341 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113342 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113343 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113344 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111797 | 113345 | .unused, |
| 111798 | 113346 | .unused, |
| 111799 | 113347 | .unused, |
| ... | ... | @@ -111803,24 +113351,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111803 | 113351 | .unused, |
| 111804 | 113352 | }, |
| 111805 | 113353 | .dst_temps = .{ .mem, .unused }, |
| 113354 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111806 | 113355 | .each = .{ .once = &.{ |
| 111807 | | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 111808 | | .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, |
| 111809 | | .{ ._, .fi_, .ld, .tmp1d, ._, ._, ._ }, |
| 111810 | | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 113356 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113357 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113358 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 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 }, |
| 111814 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 111815 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113364 | .required_features = .{ .sse2, null, null, null }, |
| 113365 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113366 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111816 | 113367 | .patterns = &.{ |
| 111817 | 113368 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111818 | 113369 | }, |
| 113370 | .call_frame = .{ .alignment = .@"16" }, |
| 111819 | 113371 | .extra_temps = .{ |
| 111820 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 111821 | | .unused, |
| 111822 | | .unused, |
| 111823 | | .unused, |
| 113372 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113373 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113374 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113375 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111824 | 113376 | .unused, |
| 111825 | 113377 | .unused, |
| 111826 | 113378 | .unused, |
| ... | ... | @@ -111830,23 +113382,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111830 | 113382 | .unused, |
| 111831 | 113383 | }, |
| 111832 | 113384 | .dst_temps = .{ .mem, .unused }, |
| 113385 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111833 | 113386 | .each = .{ .once = &.{ |
| 111834 | | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, |
| 111835 | | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 113387 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 111839 | | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 111840 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113395 | .required_features = .{ .sse, null, null, null }, |
| 113396 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113397 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111841 | 113398 | .patterns = &.{ |
| 111842 | | .{ .src = .{ .mem, .none, .none } }, |
| 111843 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113399 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111844 | 113400 | }, |
| 113401 | .call_frame = .{ .alignment = .@"16" }, |
| 111845 | 113402 | .extra_temps = .{ |
| 111846 | | .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 111847 | | .{ .type = .i64, .kind = .mem }, |
| 111848 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 111849 | | .unused, |
| 113403 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113404 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113405 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113406 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111850 | 113407 | .unused, |
| 111851 | 113408 | .unused, |
| 111852 | 113409 | .unused, |
| ... | ... | @@ -111856,51 +113413,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111856 | 113413 | .unused, |
| 111857 | 113414 | }, |
| 111858 | 113415 | .dst_temps = .{ .mem, .unused }, |
| 113416 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111859 | 113417 | .each = .{ .once = &.{ |
| 111860 | | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 111861 | | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, |
| 111862 | | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, |
| 111863 | | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 111864 | | } }, |
| 111865 | | }, .{ |
| 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, ._, ._ }, |
| 113418 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113419 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113420 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113421 | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113422 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113423 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111890 | 113424 | } }, |
| 111891 | 113425 | }, .{ |
| 111892 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 111893 | | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 111894 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113426 | .required_features = .{ .avx, null, null, null }, |
| 113427 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113428 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111895 | 113429 | .patterns = &.{ |
| 111896 | | .{ .src = .{ .mem, .none, .none } }, |
| 111897 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113430 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111898 | 113431 | }, |
| 113432 | .call_frame = .{ .alignment = .@"16" }, |
| 111899 | 113433 | .extra_temps = .{ |
| 111900 | | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 111901 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 111902 | | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, |
| 111903 | | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, |
| 113434 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113435 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113436 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113437 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111904 | 113438 | .unused, |
| 111905 | 113439 | .unused, |
| 111906 | 113440 | .unused, |
| ... | ... | @@ -111909,29 +113443,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111909 | 113443 | .unused, |
| 111910 | 113444 | .unused, |
| 111911 | 113445 | }, |
| 111912 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113446 | .dst_temps = .{ .mem, .unused }, |
| 113447 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111913 | 113448 | .each = .{ .once = &.{ |
| 111914 | | .{ ._, .v_q, .mov, .tmp0x, .src0q, ._, ._ }, |
| 111915 | | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 111916 | | .{ ._, .vp_, .unpckldq, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, |
| 111917 | | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 111918 | | .{ ._, .v_pd, .sub, .tmp0x, .tmp0x, .lea(.tmp1x), ._ }, |
| 111919 | | .{ ._, .v_pd, .unpckh, .dst0x, .tmp0x, .tmp0x, ._ }, |
| 111920 | | .{ ._, .v_sd, .add, .dst0x, .dst0x, .tmp0x, ._ }, |
| 113449 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113450 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113451 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113452 | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113453 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113454 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111921 | 113455 | } }, |
| 111922 | 113456 | }, .{ |
| 111923 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 111924 | | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 111925 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113457 | .required_features = .{ .sse2, null, null, null }, |
| 113458 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113459 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111926 | 113460 | .patterns = &.{ |
| 111927 | | .{ .src = .{ .mem, .none, .none } }, |
| 111928 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113461 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111929 | 113462 | }, |
| 113463 | .call_frame = .{ .alignment = .@"16" }, |
| 111930 | 113464 | .extra_temps = .{ |
| 111931 | | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 111932 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 111933 | | .{ .type = .vector_4_u32, .kind = .u32_0x1p52_hi_0x1p84_hi_0_0_mem }, |
| 111934 | | .{ .type = .vector_2_f64, .kind = .f64_0x1p52_0x1p84_mem }, |
| 113465 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113466 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113467 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113468 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111935 | 113469 | .unused, |
| 111936 | 113470 | .unused, |
| 111937 | 113471 | .unused, |
| ... | ... | @@ -111940,29 +113474,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111940 | 113474 | .unused, |
| 111941 | 113475 | .unused, |
| 111942 | 113476 | }, |
| 111943 | | .dst_temps = .{ .{ .rc = .sse }, .unused }, |
| 113477 | .dst_temps = .{ .mem, .unused }, |
| 113478 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111944 | 113479 | .each = .{ .once = &.{ |
| 111945 | | .{ ._, ._q, .mov, .tmp0x, .src0q, ._, ._ }, |
| 111946 | | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 111947 | | .{ ._, .p_, .unpckldq, .tmp0x, .lea(.tmp1x), ._, ._ }, |
| 111948 | | .{ ._, ._, .lea, .tmp1p, .mem(.tmp3), ._, ._ }, |
| 111949 | | .{ ._, ._pd, .sub, .tmp0x, .lea(.tmp1x), ._, ._ }, |
| 111950 | | .{ ._, ._pd, .mova, .dst0x, .tmp0x, ._, ._ }, |
| 111951 | | .{ ._, ._pd, .unpckh, .dst0x, .dst0x, ._, ._ }, |
| 111952 | | .{ ._, ._sd, .add, .dst0x, .tmp0x, ._, ._ }, |
| 113480 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113481 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113482 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113483 | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113484 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113485 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111953 | 113486 | } }, |
| 111954 | 113487 | }, .{ |
| 111955 | | .required_features = .{ .x87, null, null, null }, |
| 111956 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 111957 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113488 | .required_features = .{ .sse, null, null, null }, |
| 113489 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113490 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111958 | 113491 | .patterns = &.{ |
| 111959 | 113492 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111960 | 113493 | }, |
| 113494 | .call_frame = .{ .alignment = .@"16" }, |
| 111961 | 113495 | .extra_temps = .{ |
| 111962 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 111963 | | .unused, |
| 111964 | | .unused, |
| 111965 | | .unused, |
| 113496 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113497 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113498 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113499 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 111966 | 113500 | .unused, |
| 111967 | 113501 | .unused, |
| 111968 | 113502 | .unused, |
| ... | ... | @@ -111972,20 +113506,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111972 | 113506 | .unused, |
| 111973 | 113507 | }, |
| 111974 | 113508 | .dst_temps = .{ .mem, .unused }, |
| 113509 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111975 | 113510 | .each = .{ .once = &.{ |
| 111976 | | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 111977 | | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 113511 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 111981 | | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 111982 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113519 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113520 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113521 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 111983 | 113522 | .patterns = &.{ |
| 111984 | | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| 113523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111985 | 113524 | }, |
| 111986 | 113525 | .extra_temps = .{ |
| 111987 | | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 111988 | | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 113526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113527 | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 111989 | 113528 | .unused, |
| 111990 | 113529 | .unused, |
| 111991 | 113530 | .unused, |
| ... | ... | @@ -111999,32 +113538,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111999 | 113538 | .dst_temps = .{ .mem, .unused }, |
| 112000 | 113539 | .clobbers = .{ .eflags = true }, |
| 112001 | 113540 | .each = .{ .once = &.{ |
| 112002 | | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| 112003 | | .{ ._, ._ns, .j, .@"1f", ._, ._, ._ }, |
| 112004 | | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 112005 | | .{ ._, ._r, .sh, .src0q, .ui(1), ._, ._ }, |
| 112006 | | .{ ._, ._, .@"and", .tmp0d, .si(1), ._, ._ }, |
| 112007 | | .{ ._, ._, .@"or", .src0q, .tmp0q, ._, ._ }, |
| 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, ._, ._, ._ }, |
| 113541 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113542 | .{ .@"0:", .v_pd, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 113543 | .{ ._, .v_sd, .cvtsi2, .tmp1x, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ }, |
| 113544 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113545 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113546 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112016 | 113547 | } }, |
| 112017 | 113548 | }, .{ |
| 112018 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112019 | | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 112020 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113549 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113550 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113551 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112021 | 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 | 113555 | .extra_temps = .{ |
| 112026 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 112027 | | .unused, |
| 113556 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113557 | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 112028 | 113558 | .unused, |
| 112029 | 113559 | .unused, |
| 112030 | 113560 | .unused, |
| ... | ... | @@ -112035,24 +113565,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112035 | 113565 | .unused, |
| 112036 | 113566 | .unused, |
| 112037 | 113567 | }, |
| 112038 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 112039 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113568 | .dst_temps = .{ .mem, .unused }, |
| 113569 | .clobbers = .{ .eflags = true }, |
| 112040 | 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 }, |
| 112045 | | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 112046 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113579 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113580 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113581 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112047 | 113582 | .patterns = &.{ |
| 112048 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 113583 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112049 | 113584 | }, |
| 112050 | 113585 | .call_frame = .{ .alignment = .@"16" }, |
| 112051 | 113586 | .extra_temps = .{ |
| 112052 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112053 | | .unused, |
| 112054 | | .unused, |
| 112055 | | .unused, |
| 113587 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113588 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113589 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 113590 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112056 | 113591 | .unused, |
| 112057 | 113592 | .unused, |
| 112058 | 113593 | .unused, |
| ... | ... | @@ -112061,24 +113596,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112061 | 113596 | .unused, |
| 112062 | 113597 | .unused, |
| 112063 | 113598 | }, |
| 112064 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113599 | .dst_temps = .{ .mem, .unused }, |
| 112065 | 113600 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112066 | 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 }, |
| 112071 | | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112072 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113610 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113611 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113612 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112073 | 113613 | .patterns = &.{ |
| 112074 | 113614 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112075 | 113615 | }, |
| 112076 | 113616 | .call_frame = .{ .alignment = .@"16" }, |
| 112077 | 113617 | .extra_temps = .{ |
| 112078 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112079 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 112080 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112081 | | .unused, |
| 113618 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113619 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113620 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 113621 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112082 | 113622 | .unused, |
| 112083 | 113623 | .unused, |
| 112084 | 113624 | .unused, |
| ... | ... | @@ -112087,26 +113627,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112087 | 113627 | .unused, |
| 112088 | 113628 | .unused, |
| 112089 | 113629 | }, |
| 112090 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113630 | .dst_temps = .{ .mem, .unused }, |
| 112091 | 113631 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112092 | 113632 | .each = .{ .once = &.{ |
| 112093 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112094 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 113633 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113634 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112095 | 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 | 113641 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 112099 | | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112100 | | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113642 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113643 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112101 | 113644 | .patterns = &.{ |
| 112102 | 113645 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112103 | 113646 | }, |
| 112104 | 113647 | .call_frame = .{ .alignment = .@"16" }, |
| 112105 | 113648 | .extra_temps = .{ |
| 112106 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112107 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 112108 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112109 | | .unused, |
| 113649 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113650 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113651 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 113652 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112110 | 113653 | .unused, |
| 112111 | 113654 | .unused, |
| 112112 | 113655 | .unused, |
| ... | ... | @@ -112115,103 +113658,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112115 | 113658 | .unused, |
| 112116 | 113659 | .unused, |
| 112117 | 113660 | }, |
| 112118 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113661 | .dst_temps = .{ .mem, .unused }, |
| 112119 | 113662 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112120 | 113663 | .each = .{ .once = &.{ |
| 112121 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112122 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 113664 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113665 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112123 | 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 }, |
| 112127 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112128 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .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 }, |
| 113672 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113673 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113674 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112207 | 113675 | .patterns = &.{ |
| 112208 | 113676 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112209 | 113677 | }, |
| 113678 | .call_frame = .{ .alignment = .@"16" }, |
| 112210 | 113679 | .extra_temps = .{ |
| 112211 | 113680 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112212 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 112213 | | .unused, |
| 112214 | | .unused, |
| 113681 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113682 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 113683 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112215 | 113684 | .unused, |
| 112216 | 113685 | .unused, |
| 112217 | 113686 | .unused, |
| ... | ... | @@ -112221,27 +113690,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112221 | 113690 | .unused, |
| 112222 | 113691 | }, |
| 112223 | 113692 | .dst_temps = .{ .mem, .unused }, |
| 112224 | | .clobbers = .{ .eflags = true }, |
| 113693 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112225 | 113694 | .each = .{ .once = &.{ |
| 112226 | 113695 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112227 | | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112228 | | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 112229 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112230 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113696 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113697 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113698 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113699 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112231 | 113700 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112232 | 113701 | } }, |
| 112233 | 113702 | }, .{ |
| 112234 | | .required_features = .{ .avx, null, null, null }, |
| 112235 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112236 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 113703 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113704 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113705 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112237 | 113706 | .patterns = &.{ |
| 112238 | 113707 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112239 | 113708 | }, |
| 113709 | .call_frame = .{ .alignment = .@"16" }, |
| 112240 | 113710 | .extra_temps = .{ |
| 112241 | 113711 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112242 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112243 | | .unused, |
| 112244 | | .unused, |
| 113712 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113713 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 113714 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112245 | 113715 | .unused, |
| 112246 | 113716 | .unused, |
| 112247 | 113717 | .unused, |
| ... | ... | @@ -112251,29 +113721,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112251 | 113721 | .unused, |
| 112252 | 113722 | }, |
| 112253 | 113723 | .dst_temps = .{ .mem, .unused }, |
| 112254 | | .clobbers = .{ .eflags = true }, |
| 113724 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112255 | 113725 | .each = .{ .once = &.{ |
| 112256 | 113726 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112257 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 112258 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 112259 | | .{ ._, .vp_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112260 | | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112261 | | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112262 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113727 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113728 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113729 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113730 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112263 | 113731 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112264 | 113732 | } }, |
| 112265 | 113733 | }, .{ |
| 112266 | | .required_features = .{ .sse4_1, null, null, null }, |
| 112267 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112268 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 113734 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113735 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113736 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112269 | 113737 | .patterns = &.{ |
| 112270 | 113738 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112271 | 113739 | }, |
| 113740 | .call_frame = .{ .alignment = .@"16" }, |
| 112272 | 113741 | .extra_temps = .{ |
| 112273 | 113742 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112274 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112275 | | .unused, |
| 112276 | | .unused, |
| 113743 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113744 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 113745 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112277 | 113746 | .unused, |
| 112278 | 113747 | .unused, |
| 112279 | 113748 | .unused, |
| ... | ... | @@ -112283,30 +113752,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112283 | 113752 | .unused, |
| 112284 | 113753 | }, |
| 112285 | 113754 | .dst_temps = .{ .mem, .unused }, |
| 112286 | | .clobbers = .{ .eflags = true }, |
| 113755 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112287 | 113756 | .each = .{ .once = &.{ |
| 112288 | 113757 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112289 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 112290 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 112291 | | .{ ._, .p_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112292 | | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112293 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112294 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113758 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113759 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113760 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113761 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112295 | 113762 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112296 | 113763 | } }, |
| 112297 | 113764 | }, .{ |
| 112298 | | .required_features = .{ .avx2, null, null, null }, |
| 112299 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .byte } }, .any, .any }, |
| 112300 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 113765 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113766 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113767 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112301 | 113768 | .patterns = &.{ |
| 112302 | 113769 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112303 | 113770 | }, |
| 113771 | .call_frame = .{ .alignment = .@"16" }, |
| 112304 | 113772 | .extra_temps = .{ |
| 112305 | 113773 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112306 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 112307 | | .unused, |
| 112308 | | .unused, |
| 112309 | | .unused, |
| 113774 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113775 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113776 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 113777 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112310 | 113778 | .unused, |
| 112311 | 113779 | .unused, |
| 112312 | 113780 | .unused, |
| ... | ... | @@ -112315,28 +113783,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112315 | 113783 | .unused, |
| 112316 | 113784 | }, |
| 112317 | 113785 | .dst_temps = .{ .mem, .unused }, |
| 112318 | | .clobbers = .{ .eflags = true }, |
| 113786 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112319 | 113787 | .each = .{ .once = &.{ |
| 112320 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112321 | | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112322 | | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 112323 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112324 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113788 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113789 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113790 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113791 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113792 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 113793 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112325 | 113794 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112326 | 113795 | } }, |
| 112327 | 113796 | }, .{ |
| 112328 | | .required_features = .{ .avx, null, null, null }, |
| 112329 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112330 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 113797 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113798 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113799 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112331 | 113800 | .patterns = &.{ |
| 112332 | 113801 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112333 | 113802 | }, |
| 113803 | .call_frame = .{ .alignment = .@"16" }, |
| 112334 | 113804 | .extra_temps = .{ |
| 112335 | 113805 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112336 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112337 | | .unused, |
| 112338 | | .unused, |
| 112339 | | .unused, |
| 113806 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113807 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113808 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 113809 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112340 | 113810 | .unused, |
| 112341 | 113811 | .unused, |
| 112342 | 113812 | .unused, |
| ... | ... | @@ -112345,30 +113815,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112345 | 113815 | .unused, |
| 112346 | 113816 | }, |
| 112347 | 113817 | .dst_temps = .{ .mem, .unused }, |
| 112348 | | .clobbers = .{ .eflags = true }, |
| 113818 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112349 | 113819 | .each = .{ .once = &.{ |
| 112350 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112351 | | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 112352 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 112353 | | .{ ._, .vp_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112354 | | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112355 | | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112356 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113820 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113821 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113822 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113823 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113824 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 113825 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112357 | 113826 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112358 | 113827 | } }, |
| 112359 | 113828 | }, .{ |
| 112360 | | .required_features = .{ .sse4_1, null, null, null }, |
| 112361 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .byte } }, .any, .any }, |
| 112362 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 113829 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113830 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113831 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112363 | 113832 | .patterns = &.{ |
| 112364 | 113833 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112365 | 113834 | }, |
| 113835 | .call_frame = .{ .alignment = .@"16" }, |
| 112366 | 113836 | .extra_temps = .{ |
| 112367 | 113837 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112368 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112369 | | .unused, |
| 112370 | | .unused, |
| 112371 | | .unused, |
| 113838 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113839 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113840 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 113841 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112372 | 113842 | .unused, |
| 112373 | 113843 | .unused, |
| 112374 | 113844 | .unused, |
| ... | ... | @@ -112377,20 +113847,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112377 | 113847 | .unused, |
| 112378 | 113848 | }, |
| 112379 | 113849 | .dst_temps = .{ .mem, .unused }, |
| 112380 | | .clobbers = .{ .eflags = true }, |
| 113850 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112381 | 113851 | .each = .{ .once = &.{ |
| 112382 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112383 | | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 112384 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 112385 | | .{ ._, .p_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 112386 | | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112387 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112388 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113852 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113853 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113854 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113855 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113856 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 113857 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112389 | 113858 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112390 | 113859 | } }, |
| 112391 | 113860 | }, .{ |
| 112392 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 112393 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113861 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113862 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112394 | 113863 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112395 | 113864 | .patterns = &.{ |
| 112396 | 113865 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -112398,8 +113867,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112398 | 113867 | .call_frame = .{ .alignment = .@"16" }, |
| 112399 | 113868 | .extra_temps = .{ |
| 112400 | 113869 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112401 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112402 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113870 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113871 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 113872 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112403 | 113873 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112404 | 113874 | .unused, |
| 112405 | 113875 | .unused, |
| ... | ... | @@ -112407,21 +113877,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112407 | 113877 | .unused, |
| 112408 | 113878 | .unused, |
| 112409 | 113879 | .unused, |
| 112410 | | .unused, |
| 112411 | 113880 | }, |
| 112412 | 113881 | .dst_temps = .{ .mem, .unused }, |
| 112413 | 113882 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112414 | 113883 | .each = .{ .once = &.{ |
| 112415 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112416 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112417 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112418 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112419 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113884 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113885 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113886 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113887 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113888 | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 113889 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112420 | 113890 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112421 | 113891 | } }, |
| 112422 | 113892 | }, .{ |
| 112423 | | .required_features = .{ .avx, null, null, null }, |
| 112424 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113893 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113894 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112425 | 113895 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112426 | 113896 | .patterns = &.{ |
| 112427 | 113897 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -112429,8 +113899,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112429 | 113899 | .call_frame = .{ .alignment = .@"16" }, |
| 112430 | 113900 | .extra_temps = .{ |
| 112431 | 113901 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112432 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112433 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113902 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113903 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 113904 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112434 | 113905 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112435 | 113906 | .unused, |
| 112436 | 113907 | .unused, |
| ... | ... | @@ -112438,21 +113909,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112438 | 113909 | .unused, |
| 112439 | 113910 | .unused, |
| 112440 | 113911 | .unused, |
| 112441 | | .unused, |
| 112442 | 113912 | }, |
| 112443 | 113913 | .dst_temps = .{ .mem, .unused }, |
| 112444 | 113914 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112445 | 113915 | .each = .{ .once = &.{ |
| 112446 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112447 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112448 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112449 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112450 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112451 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 113916 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113917 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113918 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113919 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113920 | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 113921 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113922 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112452 | 113923 | } }, |
| 112453 | 113924 | }, .{ |
| 112454 | | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 112455 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113925 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113926 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112456 | 113927 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112457 | 113928 | .patterns = &.{ |
| 112458 | 113929 | .{ .src = .{ .to_mem, .none, .none } }, |
| ... | ... | @@ -112460,8 +113931,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112460 | 113931 | .call_frame = .{ .alignment = .@"16" }, |
| 112461 | 113932 | .extra_temps = .{ |
| 112462 | 113933 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112463 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112464 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113934 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113935 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 113936 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 112465 | 113937 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112466 | 113938 | .unused, |
| 112467 | 113939 | .unused, |
| ... | ... | @@ -112469,217 +113941,235 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112469 | 113941 | .unused, |
| 112470 | 113942 | .unused, |
| 112471 | 113943 | .unused, |
| 112472 | | .unused, |
| 112473 | 113944 | }, |
| 112474 | 113945 | .dst_temps = .{ .mem, .unused }, |
| 112475 | 113946 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112476 | 113947 | .each = .{ .once = &.{ |
| 112477 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112478 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112479 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112480 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112481 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113948 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113949 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113950 | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113951 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113952 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 113953 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 112482 | 113954 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112483 | 113955 | } }, |
| 112484 | 113956 | }, .{ |
| 112485 | | .required_features = .{ .sse2, null, null, null }, |
| 112486 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113957 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113958 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112487 | 113959 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112488 | 113960 | .patterns = &.{ |
| 112489 | 113961 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112490 | 113962 | }, |
| 112491 | 113963 | .call_frame = .{ .alignment = .@"16" }, |
| 112492 | 113964 | .extra_temps = .{ |
| 113965 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112493 | 113966 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112494 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112495 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113967 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113968 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 113969 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112496 | 113970 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112497 | 113971 | .unused, |
| 112498 | 113972 | .unused, |
| 112499 | 113973 | .unused, |
| 112500 | 113974 | .unused, |
| 112501 | 113975 | .unused, |
| 112502 | | .unused, |
| 112503 | | .unused, |
| 112504 | 113976 | }, |
| 112505 | 113977 | .dst_temps = .{ .mem, .unused }, |
| 112506 | 113978 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112507 | 113979 | .each = .{ .once = &.{ |
| 112508 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112509 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112510 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112511 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112512 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112513 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 113980 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 113981 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113982 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 113983 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 113984 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 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 }, |
| 112517 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 113991 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113992 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112518 | 113993 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112519 | 113994 | .patterns = &.{ |
| 112520 | 113995 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112521 | 113996 | }, |
| 112522 | 113997 | .call_frame = .{ .alignment = .@"16" }, |
| 112523 | 113998 | .extra_temps = .{ |
| 113999 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112524 | 114000 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112525 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112526 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 114001 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114002 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114003 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112527 | 114004 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112528 | 114005 | .unused, |
| 112529 | 114006 | .unused, |
| 112530 | 114007 | .unused, |
| 112531 | 114008 | .unused, |
| 112532 | 114009 | .unused, |
| 112533 | | .unused, |
| 112534 | | .unused, |
| 112535 | 114010 | }, |
| 112536 | 114011 | .dst_temps = .{ .mem, .unused }, |
| 112537 | 114012 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112538 | 114013 | .each = .{ .once = &.{ |
| 112539 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112540 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112541 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112542 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112543 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114014 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114015 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114016 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114017 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 114022 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112545 | 114023 | } }, |
| 112546 | 114024 | }, .{ |
| 112547 | | .required_features = .{ .sse, null, null, null }, |
| 112548 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114025 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114026 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112549 | 114027 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112550 | 114028 | .patterns = &.{ |
| 112551 | 114029 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112552 | 114030 | }, |
| 112553 | 114031 | .call_frame = .{ .alignment = .@"16" }, |
| 112554 | 114032 | .extra_temps = .{ |
| 114033 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112555 | 114034 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112556 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112557 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 114035 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114036 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114037 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 112558 | 114038 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112559 | 114039 | .unused, |
| 112560 | 114040 | .unused, |
| 112561 | 114041 | .unused, |
| 112562 | 114042 | .unused, |
| 112563 | 114043 | .unused, |
| 112564 | | .unused, |
| 112565 | | .unused, |
| 112566 | 114044 | }, |
| 112567 | 114045 | .dst_temps = .{ .mem, .unused }, |
| 112568 | 114046 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112569 | 114047 | .each = .{ .once = &.{ |
| 112570 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112571 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112572 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112573 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112574 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112575 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114048 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114049 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114050 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114051 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114052 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 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 }, |
| 112579 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114059 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 114060 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112580 | 114061 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112581 | 114062 | .patterns = &.{ |
| 112582 | 114063 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112583 | 114064 | }, |
| 112584 | 114065 | .call_frame = .{ .alignment = .@"16" }, |
| 112585 | 114066 | .extra_temps = .{ |
| 114067 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112586 | 114068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112587 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112588 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 114069 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114070 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114071 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112589 | 114072 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112590 | 114073 | .unused, |
| 112591 | 114074 | .unused, |
| 112592 | 114075 | .unused, |
| 112593 | 114076 | .unused, |
| 112594 | 114077 | .unused, |
| 112595 | | .unused, |
| 112596 | | .unused, |
| 112597 | 114078 | }, |
| 112598 | 114079 | .dst_temps = .{ .mem, .unused }, |
| 112599 | 114080 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112600 | 114081 | .each = .{ .once = &.{ |
| 112601 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112602 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112603 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112604 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112605 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114082 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114083 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114084 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114085 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 114090 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112607 | 114091 | } }, |
| 112608 | 114092 | }, .{ |
| 112609 | | .required_features = .{ .avx, null, null, null }, |
| 112610 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114093 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 114094 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112611 | 114095 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112612 | 114096 | .patterns = &.{ |
| 112613 | 114097 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112614 | 114098 | }, |
| 112615 | 114099 | .call_frame = .{ .alignment = .@"16" }, |
| 112616 | 114100 | .extra_temps = .{ |
| 114101 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112617 | 114102 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112618 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112619 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 114103 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114104 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114105 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112620 | 114106 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112621 | 114107 | .unused, |
| 112622 | 114108 | .unused, |
| 112623 | 114109 | .unused, |
| 112624 | 114110 | .unused, |
| 112625 | 114111 | .unused, |
| 112626 | | .unused, |
| 112627 | | .unused, |
| 112628 | 114112 | }, |
| 112629 | 114113 | .dst_temps = .{ .mem, .unused }, |
| 112630 | 114114 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112631 | 114115 | .each = .{ .once = &.{ |
| 112632 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112633 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112634 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112635 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112636 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112637 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114116 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114117 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114118 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114119 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114120 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 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 }, |
| 112641 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114127 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114128 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 112642 | 114129 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 112643 | 114130 | .patterns = &.{ |
| 112644 | 114131 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112645 | 114132 | }, |
| 112646 | 114133 | .call_frame = .{ .alignment = .@"16" }, |
| 112647 | 114134 | .extra_temps = .{ |
| 114135 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112648 | 114136 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112649 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112650 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 114137 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114138 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114139 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 112651 | 114140 | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 112652 | 114141 | .unused, |
| 112653 | 114142 | .unused, |
| 112654 | 114143 | .unused, |
| 112655 | 114144 | .unused, |
| 112656 | 114145 | .unused, |
| 112657 | | .unused, |
| 112658 | | .unused, |
| 112659 | 114146 | }, |
| 112660 | 114147 | .dst_temps = .{ .mem, .unused }, |
| 112661 | 114148 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112662 | 114149 | .each = .{ .once = &.{ |
| 112663 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112664 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112665 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112666 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112667 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114150 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114151 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114152 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114153 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 114158 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112669 | 114159 | } }, |
| 112670 | 114160 | }, .{ |
| 112671 | | .required_features = .{ .sse2, null, null, null }, |
| 112672 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112673 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114161 | .required_features = .{ .x87, null, null, null }, |
| 114162 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 114163 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112674 | 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 | 114168 | .extra_temps = .{ |
| 112679 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112680 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112681 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112682 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114169 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 114170 | .{ .type = .i16, .kind = .mem }, |
| 114171 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114172 | .unused, |
| 112683 | 114173 | .unused, |
| 112684 | 114174 | .unused, |
| 112685 | 114175 | .unused, |
| ... | ... | @@ -112688,29 +114178,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112688 | 114178 | .unused, |
| 112689 | 114179 | .unused, |
| 112690 | 114180 | }, |
| 112691 | | .dst_temps = .{ .mem, .unused }, |
| 112692 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114181 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112693 | 114182 | .each = .{ .once = &.{ |
| 112694 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112695 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112696 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112697 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112698 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112699 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114183 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 114184 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 114185 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 114186 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112700 | 114187 | } }, |
| 112701 | 114188 | }, .{ |
| 112702 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 112703 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112704 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114189 | .required_features = .{ .x87, null, null, null }, |
| 114190 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 114191 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112705 | 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 | 114196 | .extra_temps = .{ |
| 112710 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112711 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112712 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112713 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114197 | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 114198 | .{ .type = .i16, .kind = .mem }, |
| 114199 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114200 | .unused, |
| 112714 | 114201 | .unused, |
| 112715 | 114202 | .unused, |
| 112716 | 114203 | .unused, |
| ... | ... | @@ -112719,29 +114206,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112719 | 114206 | .unused, |
| 112720 | 114207 | .unused, |
| 112721 | 114208 | }, |
| 112722 | | .dst_temps = .{ .mem, .unused }, |
| 112723 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114209 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112724 | 114210 | .each = .{ .once = &.{ |
| 112725 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112726 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112727 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112728 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112729 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 112730 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114211 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 114212 | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 114213 | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 114214 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112731 | 114215 | } }, |
| 112732 | 114216 | }, .{ |
| 112733 | | .required_features = .{ .sse, null, null, null }, |
| 112734 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 112735 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114217 | .required_features = .{ .x87, null, null, null }, |
| 114218 | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, |
| 114219 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112736 | 114220 | .patterns = &.{ |
| 112737 | 114221 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112738 | 114222 | }, |
| 112739 | | .call_frame = .{ .alignment = .@"16" }, |
| 112740 | 114223 | .extra_temps = .{ |
| 112741 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112742 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112743 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 112744 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114224 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114225 | .unused, |
| 114226 | .unused, |
| 114227 | .unused, |
| 112745 | 114228 | .unused, |
| 112746 | 114229 | .unused, |
| 112747 | 114230 | .unused, |
| ... | ... | @@ -112750,104 +114233,184 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112750 | 114233 | .unused, |
| 112751 | 114234 | .unused, |
| 112752 | 114235 | }, |
| 112753 | | .dst_temps = .{ .mem, .unused }, |
| 112754 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114236 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 112755 | 114237 | .each = .{ .once = &.{ |
| 112756 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112757 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112758 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112759 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112760 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 112761 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114238 | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, |
| 114239 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112762 | 114240 | } }, |
| 112763 | 114241 | }, .{ |
| 112764 | | .required_features = .{ .avx, null, null, null }, |
| 112765 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112766 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114242 | .required_features = .{ .x87, null, null, null }, |
| 114243 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, |
| 114244 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112767 | 114245 | .patterns = &.{ |
| 112768 | 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 | 114263 | .each = .{ .once = &.{ |
| 112773 | | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 112774 | | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 114264 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 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 }, |
| 112778 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112779 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114270 | .required_features = .{ .x87, null, null, null }, |
| 114271 | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 114272 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112780 | 114273 | .patterns = &.{ |
| 112781 | | .{ .src = .{ .mem, .none, .none } }, |
| 112782 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 114274 | .{ .src = .{ .to_mem, .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 | 114290 | .each = .{ .once = &.{ |
| 112786 | | .{ ._, .p_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 112787 | | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 114291 | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, |
| 114292 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112788 | 114293 | } }, |
| 112789 | 114294 | }, .{ |
| 112790 | | .required_features = .{ .avx2, null, null, null }, |
| 112791 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112792 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 114295 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 114296 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 114297 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112793 | 114298 | .patterns = &.{ |
| 112794 | 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 | 114316 | .each = .{ .once = &.{ |
| 112799 | | .{ ._, .vp_d, .movsxw, .dst0x, .src0q, ._, ._ }, |
| 112800 | | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 114317 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 114318 | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, |
| 114319 | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, |
| 114320 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112801 | 114321 | } }, |
| 112802 | 114322 | }, .{ |
| 112803 | | .required_features = .{ .avx, null, null, null }, |
| 112804 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112805 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114323 | .required_features = .{ .x87, null, null, null }, |
| 114324 | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 114325 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112806 | 114326 | .patterns = &.{ |
| 112807 | | .{ .src = .{ .mem, .none, .none } }, |
| 112808 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 114327 | .{ .src = .{ .to_mem, .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 | 114343 | .each = .{ .once = &.{ |
| 112812 | | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 112813 | | .{ ._, .v_pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 114344 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 114345 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 112814 | 114346 | } }, |
| 112815 | 114347 | }, .{ |
| 112816 | | .required_features = .{ .sse4_1, null, null, null }, |
| 112817 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112818 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114348 | .required_features = .{ .x87, null, null, null }, |
| 114349 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 114350 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112819 | 114351 | .patterns = &.{ |
| 112820 | | .{ .src = .{ .mem, .none, .none } }, |
| 112821 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 114352 | .{ .src = .{ .to_mem, .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 | 114369 | .each = .{ .once = &.{ |
| 112825 | | .{ ._, .p_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 112826 | | .{ ._, ._pd, .cvtdq2, .dst0x, .dst0q, ._, ._ }, |
| 114370 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 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 }, |
| 112830 | | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112831 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 114378 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114379 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 114380 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112832 | 114381 | .patterns = &.{ |
| 112833 | | .{ .src = .{ .mem, .none, .none } }, |
| 112834 | | .{ .src = .{ .to_sse, .none, .none } }, |
| 114382 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .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 | 114400 | .each = .{ .once = &.{ |
| 112838 | | .{ ._, .vp_d, .movzxw, .dst0x, .src0q, ._, ._ }, |
| 112839 | | .{ ._, .v_pd, .cvtdq2, .dst0y, .dst0x, ._, ._ }, |
| 114401 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 112840 | 114402 | } }, |
| 112841 | 114403 | }, .{ |
| 112842 | | .required_features = .{ .avx2, null, null, null }, |
| 112843 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112844 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 114404 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114405 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 114406 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112845 | 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 | 114411 | .extra_temps = .{ |
| 112849 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112850 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 114412 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, |
| 114413 | .unused, |
| 112851 | 114414 | .unused, |
| 112852 | 114415 | .unused, |
| 112853 | 114416 | .unused, |
| ... | ... | @@ -112858,27 +114421,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112858 | 114421 | .unused, |
| 112859 | 114422 | .unused, |
| 112860 | 114423 | }, |
| 112861 | | .dst_temps = .{ .mem, .unused }, |
| 112862 | | .clobbers = .{ .eflags = true }, |
| 114424 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 114425 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112863 | 114426 | .each = .{ .once = &.{ |
| 112864 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 114427 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 112870 | 114428 | } }, |
| 112871 | 114429 | }, .{ |
| 112872 | | .required_features = .{ .avx, null, null, null }, |
| 112873 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112874 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114430 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114431 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114432 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112875 | 114433 | .patterns = &.{ |
| 112876 | 114434 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112877 | 114435 | }, |
| 114436 | .call_frame = .{ .alignment = .@"16" }, |
| 112878 | 114437 | .extra_temps = .{ |
| 112879 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112880 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112881 | | .unused, |
| 114438 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114439 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114440 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, |
| 112882 | 114441 | .unused, |
| 112883 | 114442 | .unused, |
| 112884 | 114443 | .unused, |
| ... | ... | @@ -112888,28 +114447,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112888 | 114447 | .unused, |
| 112889 | 114448 | .unused, |
| 112890 | 114449 | }, |
| 112891 | | .dst_temps = .{ .mem, .unused }, |
| 112892 | | .clobbers = .{ .eflags = true }, |
| 114450 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 114451 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112893 | 114452 | .each = .{ .once = &.{ |
| 112894 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112895 | | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112896 | | .{ ._, .vp_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 114453 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114454 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114455 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112901 | 114456 | } }, |
| 112902 | 114457 | }, .{ |
| 112903 | | .required_features = .{ .sse4_1, null, null, null }, |
| 112904 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112905 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114458 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114459 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114460 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 112906 | 114461 | .patterns = &.{ |
| 112907 | 114462 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112908 | 114463 | }, |
| 114464 | .call_frame = .{ .alignment = .@"16" }, |
| 112909 | 114465 | .extra_temps = .{ |
| 112910 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112911 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112912 | | .unused, |
| 114466 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114467 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114468 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, |
| 112913 | 114469 | .unused, |
| 112914 | 114470 | .unused, |
| 112915 | 114471 | .unused, |
| ... | ... | @@ -112919,30 +114475,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112919 | 114475 | .unused, |
| 112920 | 114476 | .unused, |
| 112921 | 114477 | }, |
| 112922 | | .dst_temps = .{ .mem, .unused }, |
| 112923 | | .clobbers = .{ .eflags = true }, |
| 114478 | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 114479 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112924 | 114480 | .each = .{ .once = &.{ |
| 112925 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112926 | | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112927 | | .{ ._, .p_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 114481 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114482 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114483 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112932 | 114484 | } }, |
| 112933 | 114485 | }, .{ |
| 112934 | | .required_features = .{ .avx2, null, null, null }, |
| 112935 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .word } }, .any, .any }, |
| 112936 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 114486 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 114487 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114488 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 112937 | 114489 | .patterns = &.{ |
| 112938 | 114490 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112939 | 114491 | }, |
| 112940 | 114492 | .extra_temps = .{ |
| 112941 | 114493 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112942 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 112943 | | .unused, |
| 112944 | | .unused, |
| 112945 | | .unused, |
| 114494 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114495 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114496 | .{ .type = .i16, .kind = .mem }, |
| 114497 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 112946 | 114498 | .unused, |
| 112947 | 114499 | .unused, |
| 112948 | 114500 | .unused, |
| ... | ... | @@ -112954,25 +114506,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112954 | 114506 | .clobbers = .{ .eflags = true }, |
| 112955 | 114507 | .each = .{ .once = &.{ |
| 112956 | 114508 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112957 | | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112958 | | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 112959 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112960 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114509 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114510 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114511 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114512 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 114513 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114514 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114515 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 112961 | 114516 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112962 | 114517 | } }, |
| 112963 | 114518 | }, .{ |
| 112964 | | .required_features = .{ .avx, null, null, null }, |
| 112965 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112966 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114519 | .required_features = .{ .x87, null, null, null }, |
| 114520 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114521 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 112967 | 114522 | .patterns = &.{ |
| 112968 | 114523 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112969 | 114524 | }, |
| 112970 | 114525 | .extra_temps = .{ |
| 112971 | 114526 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112972 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112973 | | .unused, |
| 112974 | | .unused, |
| 112975 | | .unused, |
| 114527 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114528 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114529 | .{ .type = .i16, .kind = .mem }, |
| 114530 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 112976 | 114531 | .unused, |
| 112977 | 114532 | .unused, |
| 112978 | 114533 | .unused, |
| ... | ... | @@ -112984,26 +114539,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112984 | 114539 | .clobbers = .{ .eflags = true }, |
| 112985 | 114540 | .each = .{ .once = &.{ |
| 112986 | 114541 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112987 | | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112988 | | .{ ._, .vp_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, |
| 112989 | | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 112990 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112991 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112992 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114542 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114543 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114544 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114545 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 114546 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 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 }, |
| 112996 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .word } }, .any, .any }, |
| 112997 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114552 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 114553 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114554 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 112998 | 114555 | .patterns = &.{ |
| 112999 | 114556 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113000 | 114557 | }, |
| 113001 | 114558 | .extra_temps = .{ |
| 113002 | 114559 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113003 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 113004 | | .unused, |
| 113005 | | .unused, |
| 113006 | | .unused, |
| 114560 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114561 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114562 | .{ .type = .i16, .kind = .mem }, |
| 114563 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113007 | 114564 | .unused, |
| 113008 | 114565 | .unused, |
| 113009 | 114566 | .unused, |
| ... | ... | @@ -113015,27 +114572,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113015 | 114572 | .clobbers = .{ .eflags = true }, |
| 113016 | 114573 | .each = .{ .once = &.{ |
| 113017 | 114574 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113018 | | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113019 | | .{ ._, .p_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, |
| 113020 | | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 113021 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113022 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114575 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114576 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114577 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114578 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 114579 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114580 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114581 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113023 | 114582 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113024 | 114583 | } }, |
| 113025 | 114584 | }, .{ |
| 113026 | | .required_features = .{ .avx, null, null, null }, |
| 113027 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113028 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114585 | .required_features = .{ .x87, null, null, null }, |
| 114586 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114587 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113029 | 114588 | .patterns = &.{ |
| 113030 | 114589 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113031 | 114590 | }, |
| 113032 | | .call_frame = .{ .alignment = .@"16" }, |
| 113033 | 114591 | .extra_temps = .{ |
| 113034 | 114592 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113035 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113036 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113037 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 113038 | | .unused, |
| 114593 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114594 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114595 | .{ .type = .i16, .kind = .mem }, |
| 114596 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113039 | 114597 | .unused, |
| 113040 | 114598 | .unused, |
| 113041 | 114599 | .unused, |
| ... | ... | @@ -113044,29 +114602,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113044 | 114602 | .unused, |
| 113045 | 114603 | }, |
| 113046 | 114604 | .dst_temps = .{ .mem, .unused }, |
| 113047 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114605 | .clobbers = .{ .eflags = true }, |
| 113048 | 114606 | .each = .{ .once = &.{ |
| 113049 | 114607 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113050 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113051 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113052 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113053 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113054 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114608 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114609 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114610 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114611 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 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 }, |
| 113058 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113059 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114618 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 114619 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114620 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113060 | 114621 | .patterns = &.{ |
| 113061 | 114622 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113062 | 114623 | }, |
| 113063 | 114624 | .call_frame = .{ .alignment = .@"16" }, |
| 113064 | 114625 | .extra_temps = .{ |
| 113065 | 114626 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114627 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113066 | 114628 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113067 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113068 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 113069 | | .unused, |
| 114629 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114630 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113070 | 114631 | .unused, |
| 113071 | 114632 | .unused, |
| 113072 | 114633 | .unused, |
| ... | ... | @@ -113078,26 +114639,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113078 | 114639 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113079 | 114640 | .each = .{ .once = &.{ |
| 113080 | 114641 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113081 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113082 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113083 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113084 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114642 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114643 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114644 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114645 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114646 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114647 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114648 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113085 | 114649 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113086 | 114650 | } }, |
| 113087 | 114651 | }, .{ |
| 113088 | | .required_features = .{ .sse, null, null, null }, |
| 113089 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113090 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114652 | .required_features = .{ .x87, null, null, null }, |
| 114653 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114654 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113091 | 114655 | .patterns = &.{ |
| 113092 | 114656 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113093 | 114657 | }, |
| 113094 | 114658 | .call_frame = .{ .alignment = .@"16" }, |
| 113095 | 114659 | .extra_temps = .{ |
| 113096 | 114660 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114661 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113097 | 114662 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113098 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113099 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 113100 | | .unused, |
| 114663 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114664 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113101 | 114665 | .unused, |
| 113102 | 114666 | .unused, |
| 113103 | 114667 | .unused, |
| ... | ... | @@ -113109,26 +114673,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113109 | 114673 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113110 | 114674 | .each = .{ .once = &.{ |
| 113111 | 114675 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113112 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113113 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113114 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113115 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113116 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114676 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114677 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114678 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114679 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 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 }, |
| 113120 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113121 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114686 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 114687 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114688 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113122 | 114689 | .patterns = &.{ |
| 113123 | 114690 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113124 | 114691 | }, |
| 113125 | 114692 | .call_frame = .{ .alignment = .@"16" }, |
| 113126 | 114693 | .extra_temps = .{ |
| 113127 | 114694 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114695 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113128 | 114696 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113129 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113130 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 113131 | | .unused, |
| 114697 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114698 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113132 | 114699 | .unused, |
| 113133 | 114700 | .unused, |
| 113134 | 114701 | .unused, |
| ... | ... | @@ -113140,26 +114707,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113140 | 114707 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113141 | 114708 | .each = .{ .once = &.{ |
| 113142 | 114709 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113143 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113144 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113145 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113146 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114710 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114711 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114712 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114713 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114714 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114715 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114716 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113147 | 114717 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113148 | 114718 | } }, |
| 113149 | 114719 | }, .{ |
| 113150 | | .required_features = .{ .sse2, null, null, null }, |
| 113151 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113152 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114720 | .required_features = .{ .x87, null, null, null }, |
| 114721 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114722 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113153 | 114723 | .patterns = &.{ |
| 113154 | 114724 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113155 | 114725 | }, |
| 113156 | 114726 | .call_frame = .{ .alignment = .@"16" }, |
| 113157 | 114727 | .extra_temps = .{ |
| 113158 | 114728 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114729 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113159 | 114730 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113160 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113161 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 113162 | | .unused, |
| 114731 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114732 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113163 | 114733 | .unused, |
| 113164 | 114734 | .unused, |
| 113165 | 114735 | .unused, |
| ... | ... | @@ -113171,25 +114741,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113171 | 114741 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113172 | 114742 | .each = .{ .once = &.{ |
| 113173 | 114743 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113174 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113175 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113176 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113177 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113178 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114744 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114745 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114746 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114747 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 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 }, |
| 113182 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 113183 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114754 | .required_features = .{ .x87, null, null, null }, |
| 114755 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114756 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113184 | 114757 | .patterns = &.{ |
| 113185 | 114758 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113186 | 114759 | }, |
| 113187 | | .call_frame = .{ .alignment = .@"16" }, |
| 113188 | 114760 | .extra_temps = .{ |
| 113189 | 114761 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113190 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113191 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113192 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114762 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114763 | .unused, |
| 114764 | .unused, |
| 113193 | 114765 | .unused, |
| 113194 | 114766 | .unused, |
| 113195 | 114767 | .unused, |
| ... | ... | @@ -113199,63 +114771,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113199 | 114771 | .unused, |
| 113200 | 114772 | }, |
| 113201 | 114773 | .dst_temps = .{ .mem, .unused }, |
| 113202 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114774 | .clobbers = .{ .eflags = true }, |
| 113203 | 114775 | .each = .{ .once = &.{ |
| 113204 | 114776 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113205 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113206 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113207 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114777 | .{ .@"0:", .fi_, .ld, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114778 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 113208 | 114779 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113209 | 114780 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113210 | 114781 | } }, |
| 113211 | 114782 | }, .{ |
| 113212 | | .required_features = .{ .avx, null, null, null }, |
| 113213 | | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 113214 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .qword } }, .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 }, |
| 114783 | .required_features = .{ .x87, null, null, null }, |
| 114784 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114785 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113251 | 114786 | .patterns = &.{ |
| 113252 | 114787 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113253 | 114788 | }, |
| 114789 | .call_frame = .{ .alignment = .@"16" }, |
| 113254 | 114790 | .extra_temps = .{ |
| 113255 | 114791 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113256 | | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 113257 | | .unused, |
| 113258 | | .unused, |
| 114792 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114793 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114794 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113259 | 114795 | .unused, |
| 113260 | 114796 | .unused, |
| 113261 | 114797 | .unused, |
| ... | ... | @@ -113265,26 +114801,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113265 | 114801 | .unused, |
| 113266 | 114802 | }, |
| 113267 | 114803 | .dst_temps = .{ .mem, .unused }, |
| 113268 | | .clobbers = .{ .eflags = true }, |
| 114804 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113269 | 114805 | .each = .{ .once = &.{ |
| 113270 | 114806 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113271 | | .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113272 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 113273 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 114807 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114808 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114809 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114810 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114811 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113274 | 114812 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113275 | 114813 | } }, |
| 113276 | 114814 | }, .{ |
| 113277 | | .required_features = .{ .avx, null, null, null }, |
| 113278 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 113279 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114815 | .required_features = .{ .x87, null, null, null }, |
| 114816 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114817 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113280 | 114818 | .patterns = &.{ |
| 113281 | 114819 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113282 | 114820 | }, |
| 114821 | .call_frame = .{ .alignment = .@"16" }, |
| 113283 | 114822 | .extra_temps = .{ |
| 113284 | 114823 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113285 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 113286 | | .unused, |
| 113287 | | .unused, |
| 114824 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114825 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114826 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113288 | 114827 | .unused, |
| 113289 | 114828 | .unused, |
| 113290 | 114829 | .unused, |
| ... | ... | @@ -113294,24 +114833,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113294 | 114833 | .unused, |
| 113295 | 114834 | }, |
| 113296 | 114835 | .dst_temps = .{ .mem, .unused }, |
| 113297 | | .clobbers = .{ .eflags = true }, |
| 114836 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113298 | 114837 | .each = .{ .once = &.{ |
| 113299 | 114838 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113300 | | .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113301 | | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113302 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114839 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114840 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114841 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114842 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114843 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113303 | 114844 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113304 | 114845 | } }, |
| 113305 | 114846 | }, .{ |
| 113306 | | .required_features = .{ .sse2, null, null, null }, |
| 113307 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any, .any }, |
| 113308 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 114847 | .required_features = .{ .x87, null, null, null }, |
| 114848 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114849 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113309 | 114850 | .patterns = &.{ |
| 113310 | 114851 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113311 | 114852 | }, |
| 113312 | 114853 | .extra_temps = .{ |
| 113313 | 114854 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113314 | | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 114855 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113315 | 114856 | .unused, |
| 113316 | 114857 | .unused, |
| 113317 | 114858 | .unused, |
| ... | ... | @@ -113326,15 +114867,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113326 | 114867 | .clobbers = .{ .eflags = true }, |
| 113327 | 114868 | .each = .{ .once = &.{ |
| 113328 | 114869 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113329 | | .{ .@"0:", ._pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113330 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113331 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114870 | .{ .@"0:", .fi_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114871 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114872 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113332 | 114873 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113333 | 114874 | } }, |
| 113334 | 114875 | }, .{ |
| 113335 | | .required_features = .{ .avx, null, null, null }, |
| 114876 | .required_features = .{ .x87, null, null, null }, |
| 113336 | 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 | 114879 | .patterns = &.{ |
| 113339 | 114880 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113340 | 114881 | }, |
| ... | ... | @@ -113342,8 +114883,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113342 | 114883 | .extra_temps = .{ |
| 113343 | 114884 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113344 | 114885 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113345 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113346 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114886 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114887 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113347 | 114888 | .unused, |
| 113348 | 114889 | .unused, |
| 113349 | 114890 | .unused, |
| ... | ... | @@ -113358,23 +114899,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113358 | 114899 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113359 | 114900 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113360 | 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 | 114904 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113363 | 114905 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113364 | 114906 | } }, |
| 113365 | 114907 | }, .{ |
| 113366 | | .required_features = .{ .sse2, null, null, null }, |
| 113367 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113368 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114908 | .required_features = .{ .x87, null, null, null }, |
| 114909 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114910 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113369 | 114911 | .patterns = &.{ |
| 113370 | 114912 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113371 | 114913 | }, |
| 113372 | 114914 | .call_frame = .{ .alignment = .@"16" }, |
| 113373 | 114915 | .extra_temps = .{ |
| 113374 | 114916 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113375 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113376 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113377 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114917 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114918 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114919 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113378 | 114920 | .unused, |
| 113379 | 114921 | .unused, |
| 113380 | 114922 | .unused, |
| ... | ... | @@ -113389,23 +114931,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113389 | 114931 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113390 | 114932 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113391 | 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 | 114936 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113394 | 114937 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113395 | 114938 | } }, |
| 113396 | 114939 | }, .{ |
| 113397 | | .required_features = .{ .sse, null, null, null }, |
| 113398 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113399 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114940 | .required_features = .{ .x87, null, null, null }, |
| 114941 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114942 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113400 | 114943 | .patterns = &.{ |
| 113401 | 114944 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113402 | 114945 | }, |
| 113403 | | .call_frame = .{ .alignment = .@"16" }, |
| 113404 | 114946 | .extra_temps = .{ |
| 113405 | 114947 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113406 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113407 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsidf" } } }, |
| 113408 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114948 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114949 | .unused, |
| 114950 | .unused, |
| 113409 | 114951 | .unused, |
| 113410 | 114952 | .unused, |
| 113411 | 114953 | .unused, |
| ... | ... | @@ -113415,28 +114957,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113415 | 114957 | .unused, |
| 113416 | 114958 | }, |
| 113417 | 114959 | .dst_temps = .{ .mem, .unused }, |
| 113418 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114960 | .clobbers = .{ .eflags = true }, |
| 113419 | 114961 | .each = .{ .once = &.{ |
| 113420 | 114962 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113421 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113422 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113423 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113424 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114963 | .{ .@"0:", .fi_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114964 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114965 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113425 | 114966 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113426 | 114967 | } }, |
| 113427 | 114968 | }, .{ |
| 113428 | | .required_features = .{ .avx, null, null, null }, |
| 113429 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113430 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 114969 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 114970 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114971 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113431 | 114972 | .patterns = &.{ |
| 113432 | 114973 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113433 | 114974 | }, |
| 113434 | 114975 | .call_frame = .{ .alignment = .@"16" }, |
| 113435 | 114976 | .extra_temps = .{ |
| 113436 | 114977 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113437 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113438 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113439 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 114978 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 114979 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdixf" } } }, |
| 114980 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113440 | 114981 | .unused, |
| 113441 | 114982 | .unused, |
| 113442 | 114983 | .unused, |
| ... | ... | @@ -113449,25 +114990,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113449 | 114990 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113450 | 114991 | .each = .{ .once = &.{ |
| 113451 | 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 | 114994 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113454 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113455 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114995 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114996 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114997 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113456 | 114998 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113457 | 114999 | } }, |
| 113458 | 115000 | }, .{ |
| 113459 | | .required_features = .{ .sse2, null, null, null }, |
| 113460 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113461 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115001 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115002 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 115003 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113462 | 115004 | .patterns = &.{ |
| 113463 | 115005 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113464 | 115006 | }, |
| 113465 | 115007 | .call_frame = .{ .alignment = .@"16" }, |
| 113466 | 115008 | .extra_temps = .{ |
| 113467 | 115009 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113468 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113469 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113470 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115010 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115011 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundixf" } } }, |
| 115012 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113471 | 115013 | .unused, |
| 113472 | 115014 | .unused, |
| 113473 | 115015 | .unused, |
| ... | ... | @@ -113480,26 +115022,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113480 | 115022 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113481 | 115023 | .each = .{ .once = &.{ |
| 113482 | 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 | 115026 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113485 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113486 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 115027 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115028 | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 115029 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113487 | 115030 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113488 | 115031 | } }, |
| 113489 | 115032 | }, .{ |
| 113490 | | .required_features = .{ .sse, null, null, null }, |
| 113491 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113492 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115033 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115034 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115035 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113493 | 115036 | .patterns = &.{ |
| 113494 | 115037 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113495 | 115038 | }, |
| 113496 | 115039 | .call_frame = .{ .alignment = .@"16" }, |
| 113497 | 115040 | .extra_temps = .{ |
| 113498 | 115041 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113499 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113500 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsidf" } } }, |
| 113501 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 113502 | | .unused, |
| 115042 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115043 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 115044 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattixf" } } }, |
| 115045 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113503 | 115046 | .unused, |
| 113504 | 115047 | .unused, |
| 113505 | 115048 | .unused, |
| ... | ... | @@ -113511,25 +115054,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113511 | 115054 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113512 | 115055 | .each = .{ .once = &.{ |
| 113513 | 115056 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113514 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113515 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113516 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113517 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 115057 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115058 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115059 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115060 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115061 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 115062 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 113518 | 115063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113519 | 115064 | } }, |
| 113520 | 115065 | }, .{ |
| 113521 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113522 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113523 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115066 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115067 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115068 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113524 | 115069 | .patterns = &.{ |
| 113525 | 115070 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113526 | 115071 | }, |
| 115072 | .call_frame = .{ .alignment = .@"16" }, |
| 113527 | 115073 | .extra_temps = .{ |
| 113528 | 115074 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113529 | | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 113530 | | .unused, |
| 113531 | | .unused, |
| 113532 | | .unused, |
| 115075 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115076 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 115077 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, |
| 115078 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113533 | 115079 | .unused, |
| 113534 | 115080 | .unused, |
| 113535 | 115081 | .unused, |
| ... | ... | @@ -113538,29 +115084,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113538 | 115084 | .unused, |
| 113539 | 115085 | }, |
| 113540 | 115086 | .dst_temps = .{ .mem, .unused }, |
| 113541 | | .clobbers = .{ .eflags = true }, |
| 115087 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113542 | 115088 | .each = .{ .once = &.{ |
| 113543 | 115089 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113544 | | .{ .@"0:", .v_pd, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 113545 | | .{ ._, .v_sd, .cvtsi2, .tmp1x, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ }, |
| 113546 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113547 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115090 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115091 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115092 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115093 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115094 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 115095 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 113548 | 115096 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113549 | 115097 | } }, |
| 113550 | 115098 | }, .{ |
| 113551 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113552 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113553 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115099 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115100 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115101 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113554 | 115102 | .patterns = &.{ |
| 113555 | 115103 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113556 | 115104 | }, |
| 115105 | .call_frame = .{ .alignment = .@"16" }, |
| 113557 | 115106 | .extra_temps = .{ |
| 115107 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113558 | 115108 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113559 | | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 113560 | | .unused, |
| 113561 | | .unused, |
| 113562 | | .unused, |
| 113563 | | .unused, |
| 115109 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115110 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115111 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, |
| 115112 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113564 | 115113 | .unused, |
| 113565 | 115114 | .unused, |
| 113566 | 115115 | .unused, |
| ... | ... | @@ -113568,30 +115117,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113568 | 115117 | .unused, |
| 113569 | 115118 | }, |
| 113570 | 115119 | .dst_temps = .{ .mem, .unused }, |
| 113571 | | .clobbers = .{ .eflags = true }, |
| 115120 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113572 | 115121 | .each = .{ .once = &.{ |
| 113573 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113574 | | .{ .@"0:", ._pd, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 113575 | | .{ ._, ._sd, .cvtsi2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113576 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113577 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115122 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115123 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115124 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115125 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 115131 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113579 | 115132 | } }, |
| 113580 | 115133 | }, .{ |
| 113581 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113582 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113583 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115134 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115135 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115136 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 113584 | 115137 | .patterns = &.{ |
| 113585 | 115138 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113586 | 115139 | }, |
| 113587 | 115140 | .call_frame = .{ .alignment = .@"16" }, |
| 113588 | 115141 | .extra_temps = .{ |
| 115142 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113589 | 115143 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113590 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113591 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 113592 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 113593 | | .unused, |
| 113594 | | .unused, |
| 115144 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115145 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115146 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, |
| 115147 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 113595 | 115148 | .unused, |
| 113596 | 115149 | .unused, |
| 113597 | 115150 | .unused, |
| ... | ... | @@ -113601,26 +115154,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113601 | 115154 | .dst_temps = .{ .mem, .unused }, |
| 113602 | 115155 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113603 | 115156 | .each = .{ .once = &.{ |
| 113604 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113605 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113606 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113607 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113608 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115157 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115158 | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115159 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115160 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 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 | 115166 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113610 | 115167 | } }, |
| 113611 | 115168 | }, .{ |
| 113612 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113613 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113614 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115169 | .required_features = .{ .sse, null, null, null }, |
| 115170 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 115171 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113615 | 115172 | .patterns = &.{ |
| 113616 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115173 | .{ .src = .{ .mem, .none, .none } }, |
| 115174 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113617 | 115175 | }, |
| 113618 | 115176 | .call_frame = .{ .alignment = .@"16" }, |
| 113619 | 115177 | .extra_temps = .{ |
| 113620 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113621 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113622 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 113623 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115178 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115179 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115180 | .unused, |
| 115181 | .unused, |
| 113624 | 115182 | .unused, |
| 113625 | 115183 | .unused, |
| 113626 | 115184 | .unused, |
| ... | ... | @@ -113629,29 +115187,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113629 | 115187 | .unused, |
| 113630 | 115188 | .unused, |
| 113631 | 115189 | }, |
| 113632 | | .dst_temps = .{ .mem, .unused }, |
| 115190 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113633 | 115191 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113634 | 115192 | .each = .{ .once = &.{ |
| 113635 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113636 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113637 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113638 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113639 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113640 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115193 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 115194 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113641 | 115195 | } }, |
| 113642 | 115196 | }, .{ |
| 113643 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113644 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113645 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115197 | .required_features = .{ .sse, null, null, null }, |
| 115198 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 115199 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113646 | 115200 | .patterns = &.{ |
| 113647 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115201 | .{ .src = .{ .mem, .none, .none } }, |
| 115202 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113648 | 115203 | }, |
| 113649 | 115204 | .call_frame = .{ .alignment = .@"16" }, |
| 113650 | 115205 | .extra_temps = .{ |
| 113651 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113652 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113653 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdidf" } } }, |
| 113654 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115206 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115207 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115208 | .unused, |
| 115209 | .unused, |
| 113655 | 115210 | .unused, |
| 113656 | 115211 | .unused, |
| 113657 | 115212 | .unused, |
| ... | ... | @@ -113660,29 +115215,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113660 | 115215 | .unused, |
| 113661 | 115216 | .unused, |
| 113662 | 115217 | }, |
| 113663 | | .dst_temps = .{ .mem, .unused }, |
| 115218 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113664 | 115219 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113665 | 115220 | .each = .{ .once = &.{ |
| 113666 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113667 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113668 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113669 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113670 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113671 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115221 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 115222 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113672 | 115223 | } }, |
| 113673 | 115224 | }, .{ |
| 113674 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113675 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113676 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115225 | .required_features = .{ .sse, null, null, null }, |
| 115226 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 115227 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113677 | 115228 | .patterns = &.{ |
| 113678 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115229 | .{ .src = .{ .mem, .none, .none } }, |
| 115230 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113679 | 115231 | }, |
| 113680 | 115232 | .call_frame = .{ .alignment = .@"16" }, |
| 113681 | 115233 | .extra_temps = .{ |
| 113682 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113683 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113684 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 113685 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115234 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115235 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115236 | .unused, |
| 115237 | .unused, |
| 113686 | 115238 | .unused, |
| 113687 | 115239 | .unused, |
| 113688 | 115240 | .unused, |
| ... | ... | @@ -113691,29 +115243,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113691 | 115243 | .unused, |
| 113692 | 115244 | .unused, |
| 113693 | 115245 | }, |
| 113694 | | .dst_temps = .{ .mem, .unused }, |
| 115246 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113695 | 115247 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113696 | 115248 | .each = .{ .once = &.{ |
| 113697 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113698 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113699 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113700 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113701 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113702 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115249 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 115250 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113703 | 115251 | } }, |
| 113704 | 115252 | }, .{ |
| 113705 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113706 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113707 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115253 | .required_features = .{ .sse, null, null, null }, |
| 115254 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 115255 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113708 | 115256 | .patterns = &.{ |
| 113709 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115257 | .{ .src = .{ .mem, .none, .none } }, |
| 115258 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 113710 | 115259 | }, |
| 113711 | 115260 | .call_frame = .{ .alignment = .@"16" }, |
| 113712 | 115261 | .extra_temps = .{ |
| 113713 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113714 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113715 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 113716 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115262 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115263 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115264 | .unused, |
| 115265 | .unused, |
| 113717 | 115266 | .unused, |
| 113718 | 115267 | .unused, |
| 113719 | 115268 | .unused, |
| ... | ... | @@ -113722,29 +115271,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113722 | 115271 | .unused, |
| 113723 | 115272 | .unused, |
| 113724 | 115273 | }, |
| 113725 | | .dst_temps = .{ .mem, .unused }, |
| 115274 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113726 | 115275 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113727 | 115276 | .each = .{ .once = &.{ |
| 113728 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113729 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113730 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113731 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113732 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113733 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115277 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 115278 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 113734 | 115279 | } }, |
| 113735 | 115280 | }, .{ |
| 113736 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113737 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 113738 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115281 | .required_features = .{ .sse, null, null, null }, |
| 115282 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 115283 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113739 | 115284 | .patterns = &.{ |
| 113740 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115285 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 113741 | 115286 | }, |
| 113742 | 115287 | .call_frame = .{ .alignment = .@"16" }, |
| 113743 | 115288 | .extra_temps = .{ |
| 113744 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113745 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113746 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundidf" } } }, |
| 113747 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115289 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115290 | .unused, |
| 115291 | .unused, |
| 115292 | .unused, |
| 113748 | 115293 | .unused, |
| 113749 | 115294 | .unused, |
| 113750 | 115295 | .unused, |
| ... | ... | @@ -113753,30 +115298,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113753 | 115298 | .unused, |
| 113754 | 115299 | .unused, |
| 113755 | 115300 | }, |
| 113756 | | .dst_temps = .{ .mem, .unused }, |
| 115301 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113757 | 115302 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113758 | 115303 | .each = .{ .once = &.{ |
| 113759 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 115304 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113765 | 115305 | } }, |
| 113766 | 115306 | }, .{ |
| 113767 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113768 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113769 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115307 | .required_features = .{ .sse, null, null, null }, |
| 115308 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 115309 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113770 | 115310 | .patterns = &.{ |
| 113771 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115311 | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 113772 | 115312 | }, |
| 113773 | 115313 | .call_frame = .{ .alignment = .@"16" }, |
| 113774 | 115314 | .extra_temps = .{ |
| 113775 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113776 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113777 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113778 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 113779 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115315 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115316 | .unused, |
| 115317 | .unused, |
| 115318 | .unused, |
| 115319 | .unused, |
| 113780 | 115320 | .unused, |
| 113781 | 115321 | .unused, |
| 113782 | 115322 | .unused, |
| ... | ... | @@ -113784,31 +115324,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113784 | 115324 | .unused, |
| 113785 | 115325 | .unused, |
| 113786 | 115326 | }, |
| 113787 | | .dst_temps = .{ .mem, .unused }, |
| 115327 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113788 | 115328 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113789 | 115329 | .each = .{ .once = &.{ |
| 113790 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 115330 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113797 | 115331 | } }, |
| 113798 | 115332 | }, .{ |
| 113799 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113800 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113801 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115333 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115334 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 115335 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113802 | 115336 | .patterns = &.{ |
| 113803 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115337 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 113804 | 115338 | }, |
| 113805 | 115339 | .call_frame = .{ .alignment = .@"16" }, |
| 113806 | 115340 | .extra_temps = .{ |
| 113807 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113808 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113809 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113810 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 113811 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115341 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 115342 | .unused, |
| 115343 | .unused, |
| 115344 | .unused, |
| 115345 | .unused, |
| 113812 | 115346 | .unused, |
| 113813 | 115347 | .unused, |
| 113814 | 115348 | .unused, |
| ... | ... | @@ -113816,31 +115350,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113816 | 115350 | .unused, |
| 113817 | 115351 | .unused, |
| 113818 | 115352 | }, |
| 113819 | | .dst_temps = .{ .mem, .unused }, |
| 115353 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113820 | 115354 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113821 | 115355 | .each = .{ .once = &.{ |
| 113822 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 115356 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113829 | 115357 | } }, |
| 113830 | 115358 | }, .{ |
| 113831 | 115359 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113832 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113833 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115360 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 115361 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113834 | 115362 | .patterns = &.{ |
| 113835 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115363 | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 113836 | 115364 | }, |
| 113837 | 115365 | .call_frame = .{ .alignment = .@"16" }, |
| 113838 | 115366 | .extra_temps = .{ |
| 113839 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113840 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113841 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113842 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattidf" } } }, |
| 113843 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115367 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 115368 | .unused, |
| 115369 | .unused, |
| 115370 | .unused, |
| 115371 | .unused, |
| 113844 | 115372 | .unused, |
| 113845 | 115373 | .unused, |
| 113846 | 115374 | .unused, |
| ... | ... | @@ -113848,31 +115376,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113848 | 115376 | .unused, |
| 113849 | 115377 | .unused, |
| 113850 | 115378 | }, |
| 113851 | | .dst_temps = .{ .mem, .unused }, |
| 115379 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113852 | 115380 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113853 | 115381 | .each = .{ .once = &.{ |
| 113854 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 115382 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113861 | 115383 | } }, |
| 113862 | 115384 | }, .{ |
| 113863 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113864 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113865 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115385 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115386 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 115387 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113866 | 115388 | .patterns = &.{ |
| 113867 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115389 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 113868 | 115390 | }, |
| 113869 | 115391 | .call_frame = .{ .alignment = .@"16" }, |
| 113870 | 115392 | .extra_temps = .{ |
| 113871 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113872 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113873 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 113874 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 113875 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115393 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 115394 | .unused, |
| 115395 | .unused, |
| 115396 | .unused, |
| 115397 | .unused, |
| 113876 | 115398 | .unused, |
| 113877 | 115399 | .unused, |
| 113878 | 115400 | .unused, |
| ... | ... | @@ -113880,31 +115402,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113880 | 115402 | .unused, |
| 113881 | 115403 | .unused, |
| 113882 | 115404 | }, |
| 113883 | | .dst_temps = .{ .mem, .unused }, |
| 115405 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113884 | 115406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113885 | 115407 | .each = .{ .once = &.{ |
| 113886 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 115408 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113893 | 115409 | } }, |
| 113894 | 115410 | }, .{ |
| 113895 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113896 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113897 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115411 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115412 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 115413 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113898 | 115414 | .patterns = &.{ |
| 113899 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115415 | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 113900 | 115416 | }, |
| 113901 | 115417 | .call_frame = .{ .alignment = .@"16" }, |
| 113902 | 115418 | .extra_temps = .{ |
| 113903 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113904 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113905 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 113906 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 113907 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115419 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 115420 | .unused, |
| 115421 | .unused, |
| 115422 | .unused, |
| 115423 | .unused, |
| 113908 | 115424 | .unused, |
| 113909 | 115425 | .unused, |
| 113910 | 115426 | .unused, |
| ... | ... | @@ -113912,31 +115428,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113912 | 115428 | .unused, |
| 113913 | 115429 | .unused, |
| 113914 | 115430 | }, |
| 113915 | | .dst_temps = .{ .mem, .unused }, |
| 115431 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113916 | 115432 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113917 | 115433 | .each = .{ .once = &.{ |
| 113918 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 115434 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113925 | 115435 | } }, |
| 113926 | 115436 | }, .{ |
| 113927 | 115437 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113928 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113929 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115438 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115439 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113930 | 115440 | .patterns = &.{ |
| 113931 | 115441 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113932 | 115442 | }, |
| 113933 | 115443 | .call_frame = .{ .alignment = .@"16" }, |
| 113934 | 115444 | .extra_temps = .{ |
| 113935 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113936 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113937 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 113938 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntidf" } } }, |
| 113939 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115445 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115446 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115447 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 115448 | .unused, |
| 115449 | .unused, |
| 113940 | 115450 | .unused, |
| 113941 | 115451 | .unused, |
| 113942 | 115452 | .unused, |
| ... | ... | @@ -113944,66 +115454,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113944 | 115454 | .unused, |
| 113945 | 115455 | .unused, |
| 113946 | 115456 | }, |
| 113947 | | .dst_temps = .{ .mem, .unused }, |
| 115457 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113948 | 115458 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113949 | 115459 | .each = .{ .once = &.{ |
| 113950 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113951 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113952 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 113953 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 113954 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 113955 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 113956 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115460 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115461 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115462 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113957 | 115463 | } }, |
| 113958 | 115464 | }, .{ |
| 113959 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113960 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113961 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115465 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115466 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115467 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 113962 | 115468 | .patterns = &.{ |
| 113963 | 115469 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113964 | 115470 | }, |
| 113965 | 115471 | .call_frame = .{ .alignment = .@"16" }, |
| 113966 | 115472 | .extra_temps = .{ |
| 113967 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 113968 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113969 | 115473 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113970 | 115474 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 113971 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 113972 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115475 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 115476 | .unused, |
| 115477 | .unused, |
| 115478 | .unused, |
| 113973 | 115479 | .unused, |
| 113974 | 115480 | .unused, |
| 113975 | 115481 | .unused, |
| 113976 | 115482 | .unused, |
| 113977 | 115483 | .unused, |
| 113978 | 115484 | }, |
| 113979 | | .dst_temps = .{ .mem, .unused }, |
| 115485 | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 113980 | 115486 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113981 | 115487 | .each = .{ .once = &.{ |
| 113982 | 115488 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 113983 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113984 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 115489 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115490 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113991 | 115491 | } }, |
| 113992 | 115492 | }, .{ |
| 113993 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113994 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 113995 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115493 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 115494 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115495 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 113996 | 115496 | .patterns = &.{ |
| 113997 | 115497 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113998 | 115498 | }, |
| 113999 | 115499 | .call_frame = .{ .alignment = .@"16" }, |
| 114000 | 115500 | .extra_temps = .{ |
| 114001 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114002 | 115501 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114003 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114004 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114005 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 114006 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115502 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115503 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115504 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115505 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115506 | .unused, |
| 114007 | 115507 | .unused, |
| 114008 | 115508 | .unused, |
| 114009 | 115509 | .unused, |
| ... | ... | @@ -114013,31 +115513,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114013 | 115513 | .dst_temps = .{ .mem, .unused }, |
| 114014 | 115514 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114015 | 115515 | .each = .{ .once = &.{ |
| 114016 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114017 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114018 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114019 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114020 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 114021 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 114022 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 114023 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115516 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115517 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115518 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115519 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115520 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115521 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115522 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114024 | 115523 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114025 | 115524 | } }, |
| 114026 | 115525 | }, .{ |
| 114027 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114028 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114029 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115526 | .required_features = .{ .avx, null, null, null }, |
| 115527 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115528 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114030 | 115529 | .patterns = &.{ |
| 114031 | 115530 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114032 | 115531 | }, |
| 114033 | 115532 | .call_frame = .{ .alignment = .@"16" }, |
| 114034 | 115533 | .extra_temps = .{ |
| 114035 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114036 | 115534 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114037 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114038 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114039 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateidf" } } }, |
| 114040 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115535 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115536 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115537 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115538 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115539 | .unused, |
| 114041 | 115540 | .unused, |
| 114042 | 115541 | .unused, |
| 114043 | 115542 | .unused, |
| ... | ... | @@ -114047,31 +115546,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114047 | 115546 | .dst_temps = .{ .mem, .unused }, |
| 114048 | 115547 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114049 | 115548 | .each = .{ .once = &.{ |
| 114050 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114051 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114052 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114053 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114054 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 114055 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 114056 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 114057 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 114058 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115549 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115550 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115551 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115552 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115553 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115554 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115555 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115556 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114059 | 115557 | } }, |
| 114060 | 115558 | }, .{ |
| 114061 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 114062 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114063 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115559 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 115560 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115561 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114064 | 115562 | .patterns = &.{ |
| 114065 | 115563 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114066 | 115564 | }, |
| 114067 | 115565 | .call_frame = .{ .alignment = .@"16" }, |
| 114068 | 115566 | .extra_temps = .{ |
| 114069 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114070 | 115567 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114071 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114072 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114073 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 114074 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115568 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115569 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115570 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115571 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115572 | .unused, |
| 114075 | 115573 | .unused, |
| 114076 | 115574 | .unused, |
| 114077 | 115575 | .unused, |
| ... | ... | @@ -114081,31 +115579,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114081 | 115579 | .dst_temps = .{ .mem, .unused }, |
| 114082 | 115580 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114083 | 115581 | .each = .{ .once = &.{ |
| 114084 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114085 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114086 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114087 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114088 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 114089 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 114090 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 114091 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115582 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115583 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115584 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115585 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115586 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115587 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115588 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114092 | 115589 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114093 | 115590 | } }, |
| 114094 | 115591 | }, .{ |
| 114095 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 114096 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114097 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115592 | .required_features = .{ .sse2, null, null, null }, |
| 115593 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115594 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114098 | 115595 | .patterns = &.{ |
| 114099 | 115596 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114100 | 115597 | }, |
| 114101 | 115598 | .call_frame = .{ .alignment = .@"16" }, |
| 114102 | 115599 | .extra_temps = .{ |
| 114103 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114104 | 115600 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114105 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114106 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114107 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 114108 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115601 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115602 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115603 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115604 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115605 | .unused, |
| 114109 | 115606 | .unused, |
| 114110 | 115607 | .unused, |
| 114111 | 115608 | .unused, |
| ... | ... | @@ -114115,31 +115612,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114115 | 115612 | .dst_temps = .{ .mem, .unused }, |
| 114116 | 115613 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114117 | 115614 | .each = .{ .once = &.{ |
| 114118 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114119 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114120 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114121 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114122 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 114123 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 114124 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 114125 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 114126 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115615 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115616 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115617 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115618 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115619 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115620 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115621 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115622 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 114127 | 115623 | } }, |
| 114128 | 115624 | }, .{ |
| 114129 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114130 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114131 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115625 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 115626 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115627 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114132 | 115628 | .patterns = &.{ |
| 114133 | 115629 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114134 | 115630 | }, |
| 114135 | 115631 | .call_frame = .{ .alignment = .@"16" }, |
| 114136 | 115632 | .extra_temps = .{ |
| 114137 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114138 | 115633 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114139 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114140 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114141 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneidf" } } }, |
| 114142 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 115634 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115635 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115636 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115637 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115638 | .unused, |
| 114143 | 115639 | .unused, |
| 114144 | 115640 | .unused, |
| 114145 | 115641 | .unused, |
| ... | ... | @@ -114149,30 +115645,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114149 | 115645 | .dst_temps = .{ .mem, .unused }, |
| 114150 | 115646 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114151 | 115647 | .each = .{ .once = &.{ |
| 114152 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114153 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114154 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 114155 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 114156 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 114157 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 114158 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 114159 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115648 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115649 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115650 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115651 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115652 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115653 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115654 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114160 | 115655 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114161 | 115656 | } }, |
| 114162 | 115657 | }, .{ |
| 114163 | | .required_features = .{ .x87, null, null, null }, |
| 114164 | | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 114165 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115658 | .required_features = .{ .sse, null, null, null }, |
| 115659 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115660 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114166 | 115661 | .patterns = &.{ |
| 114167 | | .{ .src = .{ .mem, .none, .none } }, |
| 114168 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115662 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114169 | 115663 | }, |
| 115664 | .call_frame = .{ .alignment = .@"16" }, |
| 114170 | 115665 | .extra_temps = .{ |
| 114171 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 114172 | | .{ .type = .i16, .kind = .mem }, |
| 114173 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114174 | | .unused, |
| 114175 | | .unused, |
| 115666 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115667 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115668 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115669 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115670 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114176 | 115671 | .unused, |
| 114177 | 115672 | .unused, |
| 114178 | 115673 | .unused, |
| ... | ... | @@ -114180,27 +115675,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114180 | 115675 | .unused, |
| 114181 | 115676 | .unused, |
| 114182 | 115677 | }, |
| 114183 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 115678 | .dst_temps = .{ .mem, .unused }, |
| 115679 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114184 | 115680 | .each = .{ .once = &.{ |
| 114185 | | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 114186 | | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 114187 | | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 114188 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115681 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115682 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115683 | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 114192 | | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 114193 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115691 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 115692 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115693 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114194 | 115694 | .patterns = &.{ |
| 114195 | | .{ .src = .{ .mem, .none, .none } }, |
| 114196 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115695 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114197 | 115696 | }, |
| 115697 | .call_frame = .{ .alignment = .@"16" }, |
| 114198 | 115698 | .extra_temps = .{ |
| 114199 | | .{ .type = .i16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 114200 | | .{ .type = .i16, .kind = .mem }, |
| 114201 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114202 | | .unused, |
| 114203 | | .unused, |
| 115699 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115700 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115701 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115702 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115703 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114204 | 115704 | .unused, |
| 114205 | 115705 | .unused, |
| 114206 | 115706 | .unused, |
| ... | ... | @@ -114208,26 +115708,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114208 | 115708 | .unused, |
| 114209 | 115709 | .unused, |
| 114210 | 115710 | }, |
| 114211 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 115711 | .dst_temps = .{ .mem, .unused }, |
| 115712 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114212 | 115713 | .each = .{ .once = &.{ |
| 114213 | | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 114214 | | .{ ._, ._, .mov, .tmp1w, .tmp0w, ._, ._ }, |
| 114215 | | .{ ._, .fi_, .ld, .tmp1w, ._, ._, ._ }, |
| 114216 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115714 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115715 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115716 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 114220 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .word }, .any, .any }, |
| 114221 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115724 | .required_features = .{ .avx, null, null, null }, |
| 115725 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115726 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114222 | 115727 | .patterns = &.{ |
| 114223 | 115728 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114224 | 115729 | }, |
| 115730 | .call_frame = .{ .alignment = .@"16" }, |
| 114225 | 115731 | .extra_temps = .{ |
| 114226 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114227 | | .unused, |
| 114228 | | .unused, |
| 114229 | | .unused, |
| 114230 | | .unused, |
| 115732 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115733 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115734 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115735 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115736 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114231 | 115737 | .unused, |
| 114232 | 115738 | .unused, |
| 114233 | 115739 | .unused, |
| ... | ... | @@ -114235,25 +115741,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114235 | 115741 | .unused, |
| 114236 | 115742 | .unused, |
| 114237 | 115743 | }, |
| 114238 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 115744 | .dst_temps = .{ .mem, .unused }, |
| 115745 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114239 | 115746 | .each = .{ .once = &.{ |
| 114240 | | .{ ._, .fi_, .ld, .src0w, ._, ._, ._ }, |
| 114241 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115747 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 114245 | | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .any, .any }, |
| 114246 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115757 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 115758 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115759 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114247 | 115760 | .patterns = &.{ |
| 114248 | | .{ .src = .{ .mem, .none, .none } }, |
| 114249 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115761 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114250 | 115762 | }, |
| 115763 | .call_frame = .{ .alignment = .@"16" }, |
| 114251 | 115764 | .extra_temps = .{ |
| 114252 | | .{ .type = .i32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 114253 | | .{ .type = .i32, .kind = .mem }, |
| 114254 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114255 | | .unused, |
| 114256 | | .unused, |
| 115765 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115766 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115767 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115768 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115769 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114257 | 115770 | .unused, |
| 114258 | 115771 | .unused, |
| 114259 | 115772 | .unused, |
| ... | ... | @@ -114261,26 +115774,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114261 | 115774 | .unused, |
| 114262 | 115775 | .unused, |
| 114263 | 115776 | }, |
| 114264 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 115777 | .dst_temps = .{ .mem, .unused }, |
| 115778 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114265 | 115779 | .each = .{ .once = &.{ |
| 114266 | | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 114267 | | .{ ._, ._, .mov, .tmp1d, .tmp0d, ._, ._ }, |
| 114268 | | .{ ._, .fi_, .ld, .tmp1d, ._, ._, ._ }, |
| 114269 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115780 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115781 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115782 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 114273 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .dword }, .any, .any }, |
| 114274 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115790 | .required_features = .{ .sse2, null, null, null }, |
| 115791 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115792 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114275 | 115793 | .patterns = &.{ |
| 114276 | 115794 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114277 | 115795 | }, |
| 115796 | .call_frame = .{ .alignment = .@"16" }, |
| 114278 | 115797 | .extra_temps = .{ |
| 114279 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114280 | | .unused, |
| 114281 | | .unused, |
| 114282 | | .unused, |
| 114283 | | .unused, |
| 115798 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115799 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115800 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115801 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115802 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114284 | 115803 | .unused, |
| 114285 | 115804 | .unused, |
| 114286 | 115805 | .unused, |
| ... | ... | @@ -114288,25 +115807,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114288 | 115807 | .unused, |
| 114289 | 115808 | .unused, |
| 114290 | 115809 | }, |
| 114291 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 115810 | .dst_temps = .{ .mem, .unused }, |
| 115811 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114292 | 115812 | .each = .{ .once = &.{ |
| 114293 | | .{ ._, .fi_, .ld, .src0d, ._, ._, ._ }, |
| 114294 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115813 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 114298 | | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .any, .any }, |
| 114299 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115823 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 115824 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115825 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114300 | 115826 | .patterns = &.{ |
| 114301 | | .{ .src = .{ .mem, .none, .none } }, |
| 114302 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115827 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114303 | 115828 | }, |
| 115829 | .call_frame = .{ .alignment = .@"16" }, |
| 114304 | 115830 | .extra_temps = .{ |
| 114305 | | .{ .type = .i64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| 114306 | | .{ .type = .i64, .kind = .mem }, |
| 114307 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114308 | | .unused, |
| 114309 | | .unused, |
| 115831 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115832 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115833 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115834 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115835 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114310 | 115836 | .unused, |
| 114311 | 115837 | .unused, |
| 114312 | 115838 | .unused, |
| ... | ... | @@ -114314,26 +115840,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114314 | 115840 | .unused, |
| 114315 | 115841 | .unused, |
| 114316 | 115842 | }, |
| 114317 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 115843 | .dst_temps = .{ .mem, .unused }, |
| 115844 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114318 | 115845 | .each = .{ .once = &.{ |
| 114319 | | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 114320 | | .{ ._, ._, .mov, .tmp1q, .tmp0q, ._, ._ }, |
| 114321 | | .{ ._, .fi_, .ld, .tmp1q, ._, ._, ._ }, |
| 114322 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115846 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115847 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115848 | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 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 }, |
| 114326 | | .src_constraints = .{ .{ .signed_or_exclusive_int = .qword }, .any, .any }, |
| 114327 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115856 | .required_features = .{ .sse, null, null, null }, |
| 115857 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115858 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114328 | 115859 | .patterns = &.{ |
| 114329 | 115860 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114330 | 115861 | }, |
| 115862 | .call_frame = .{ .alignment = .@"16" }, |
| 114331 | 115863 | .extra_temps = .{ |
| 114332 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114333 | | .unused, |
| 114334 | | .unused, |
| 114335 | | .unused, |
| 114336 | | .unused, |
| 115864 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115865 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115866 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115867 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115868 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114337 | 115869 | .unused, |
| 114338 | 115870 | .unused, |
| 114339 | 115871 | .unused, |
| ... | ... | @@ -114341,23 +115873,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114341 | 115873 | .unused, |
| 114342 | 115874 | .unused, |
| 114343 | 115875 | }, |
| 114344 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 115876 | .dst_temps = .{ .mem, .unused }, |
| 115877 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114345 | 115878 | .each = .{ .once = &.{ |
| 114346 | | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 114347 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115879 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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 }, |
| 114351 | | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 114352 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115889 | .required_features = .{ .avx, null, null, null }, |
| 115890 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115891 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114353 | 115892 | .patterns = &.{ |
| 114354 | 115893 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114355 | 115894 | }, |
| 115895 | .call_frame = .{ .alignment = .@"16" }, |
| 114356 | 115896 | .extra_temps = .{ |
| 114357 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114358 | | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 114359 | | .{ .type = .vector_2_f32, .kind = .f32_0_0x1p64_mem }, |
| 114360 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 115897 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115898 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115899 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115900 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114361 | 115901 | .unused, |
| 114362 | 115902 | .unused, |
| 114363 | 115903 | .unused, |
| ... | ... | @@ -114366,29 +115906,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114366 | 115906 | .unused, |
| 114367 | 115907 | .unused, |
| 114368 | 115908 | }, |
| 114369 | | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 114370 | | .clobbers = .{ .eflags = true }, |
| 115909 | .dst_temps = .{ .mem, .unused }, |
| 115910 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114371 | 115911 | .each = .{ .once = &.{ |
| 114372 | | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 114373 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 114374 | | .{ ._, ._, .mov, .tmp1d, .memd(.src0d, 4), ._, ._ }, |
| 114375 | | .{ ._, ._r, .sh, .tmp1d, .ui(31), ._, ._ }, |
| 114376 | | .{ ._, .f_, .add, .leasi(.tmp0d, .@"4", .tmp1), ._, ._, ._ }, |
| 114377 | | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115912 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115913 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115914 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115915 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 115916 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 115917 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114378 | 115918 | } }, |
| 114379 | 115919 | }, .{ |
| 114380 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114381 | | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 114382 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115920 | .required_features = .{ .sse2, null, null, null }, |
| 115921 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115922 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114383 | 115923 | .patterns = &.{ |
| 114384 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 115924 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114385 | 115925 | }, |
| 114386 | 115926 | .call_frame = .{ .alignment = .@"16" }, |
| 114387 | 115927 | .extra_temps = .{ |
| 114388 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattixf" } } }, |
| 114389 | | .unused, |
| 114390 | | .unused, |
| 114391 | | .unused, |
| 115928 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115929 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115930 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115931 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114392 | 115932 | .unused, |
| 114393 | 115933 | .unused, |
| 114394 | 115934 | .unused, |
| ... | ... | @@ -114397,24 +115937,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114397 | 115937 | .unused, |
| 114398 | 115938 | .unused, |
| 114399 | 115939 | }, |
| 114400 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 115940 | .dst_temps = .{ .mem, .unused }, |
| 114401 | 115941 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114402 | 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 }, |
| 114407 | | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 114408 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115951 | .required_features = .{ .sse, null, null, null }, |
| 115952 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115953 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114409 | 115954 | .patterns = &.{ |
| 114410 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 115955 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114411 | 115956 | }, |
| 114412 | 115957 | .call_frame = .{ .alignment = .@"16" }, |
| 114413 | 115958 | .extra_temps = .{ |
| 114414 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, |
| 114415 | | .unused, |
| 114416 | | .unused, |
| 114417 | | .unused, |
| 115959 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115960 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115961 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115962 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114418 | 115963 | .unused, |
| 114419 | 115964 | .unused, |
| 114420 | 115965 | .unused, |
| ... | ... | @@ -114423,24 +115968,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114423 | 115968 | .unused, |
| 114424 | 115969 | .unused, |
| 114425 | 115970 | }, |
| 114426 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 115971 | .dst_temps = .{ .mem, .unused }, |
| 114427 | 115972 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114428 | 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 }, |
| 114433 | | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114434 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115982 | .required_features = .{ .avx, null, null, null }, |
| 115983 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115984 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114435 | 115985 | .patterns = &.{ |
| 114436 | 115986 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114437 | 115987 | }, |
| 114438 | 115988 | .call_frame = .{ .alignment = .@"16" }, |
| 114439 | 115989 | .extra_temps = .{ |
| 114440 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114441 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114442 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, |
| 114443 | | .unused, |
| 115990 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115991 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115992 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115993 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114444 | 115994 | .unused, |
| 114445 | 115995 | .unused, |
| 114446 | 115996 | .unused, |
| ... | ... | @@ -114449,26 +115999,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114449 | 115999 | .unused, |
| 114450 | 116000 | .unused, |
| 114451 | 116001 | }, |
| 114452 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 116002 | .dst_temps = .{ .mem, .unused }, |
| 114453 | 116003 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114454 | 116004 | .each = .{ .once = &.{ |
| 114455 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114456 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116005 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116006 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114457 | 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 }, |
| 114461 | | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114462 | | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 116013 | .required_features = .{ .sse2, null, null, null }, |
| 116014 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 116015 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114463 | 116016 | .patterns = &.{ |
| 114464 | 116017 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114465 | 116018 | }, |
| 114466 | 116019 | .call_frame = .{ .alignment = .@"16" }, |
| 114467 | 116020 | .extra_temps = .{ |
| 114468 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 114469 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114470 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, |
| 114471 | | .unused, |
| 116021 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116022 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116023 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116024 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114472 | 116025 | .unused, |
| 114473 | 116026 | .unused, |
| 114474 | 116027 | .unused, |
| ... | ... | @@ -114477,26 +116030,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114477 | 116030 | .unused, |
| 114478 | 116031 | .unused, |
| 114479 | 116032 | }, |
| 114480 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 116033 | .dst_temps = .{ .mem, .unused }, |
| 114481 | 116034 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114482 | 116035 | .each = .{ .once = &.{ |
| 114483 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 114484 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116036 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116037 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114485 | 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 }, |
| 114489 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114490 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116044 | .required_features = .{ .sse, null, null, null }, |
| 116045 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 116046 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114491 | 116047 | .patterns = &.{ |
| 114492 | 116048 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114493 | 116049 | }, |
| 116050 | .call_frame = .{ .alignment = .@"16" }, |
| 114494 | 116051 | .extra_temps = .{ |
| 114495 | 116052 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114496 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114497 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114498 | | .{ .type = .i16, .kind = .mem }, |
| 114499 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116053 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116054 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116055 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116056 | .unused, |
| 114500 | 116057 | .unused, |
| 114501 | 116058 | .unused, |
| 114502 | 116059 | .unused, |
| ... | ... | @@ -114505,31 +116062,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114505 | 116062 | .unused, |
| 114506 | 116063 | }, |
| 114507 | 116064 | .dst_temps = .{ .mem, .unused }, |
| 114508 | | .clobbers = .{ .eflags = true }, |
| 116065 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114509 | 116066 | .each = .{ .once = &.{ |
| 114510 | 116067 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114511 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114512 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114513 | | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114514 | | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 114515 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114516 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114517 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 116068 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116069 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116070 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116071 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114518 | 116072 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114519 | 116073 | } }, |
| 114520 | 116074 | }, .{ |
| 114521 | | .required_features = .{ .x87, null, null, null }, |
| 114522 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114523 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116075 | .required_features = .{ .avx, null, null, null }, |
| 116076 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116077 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114524 | 116078 | .patterns = &.{ |
| 114525 | 116079 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114526 | 116080 | }, |
| 116081 | .call_frame = .{ .alignment = .@"16" }, |
| 114527 | 116082 | .extra_temps = .{ |
| 114528 | 116083 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114529 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114530 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114531 | | .{ .type = .i16, .kind = .mem }, |
| 114532 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116084 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116085 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 116086 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116087 | .unused, |
| 114533 | 116088 | .unused, |
| 114534 | 116089 | .unused, |
| 114535 | 116090 | .unused, |
| ... | ... | @@ -114538,31 +116093,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114538 | 116093 | .unused, |
| 114539 | 116094 | }, |
| 114540 | 116095 | .dst_temps = .{ .mem, .unused }, |
| 114541 | | .clobbers = .{ .eflags = true }, |
| 116096 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114542 | 116097 | .each = .{ .once = &.{ |
| 114543 | 116098 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114544 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114545 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114546 | | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114547 | | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 114548 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114549 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114550 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 114551 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 116099 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116100 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116101 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116102 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116103 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114552 | 116104 | } }, |
| 114553 | 116105 | }, .{ |
| 114554 | | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 114555 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114556 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116106 | .required_features = .{ .sse2, null, null, null }, |
| 116107 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116108 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114557 | 116109 | .patterns = &.{ |
| 114558 | 116110 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114559 | 116111 | }, |
| 116112 | .call_frame = .{ .alignment = .@"16" }, |
| 114560 | 116113 | .extra_temps = .{ |
| 114561 | 116114 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114562 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114563 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114564 | | .{ .type = .i16, .kind = .mem }, |
| 114565 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116115 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116116 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 116117 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116118 | .unused, |
| 114566 | 116119 | .unused, |
| 114567 | 116120 | .unused, |
| 114568 | 116121 | .unused, |
| ... | ... | @@ -114571,31 +116124,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114571 | 116124 | .unused, |
| 114572 | 116125 | }, |
| 114573 | 116126 | .dst_temps = .{ .mem, .unused }, |
| 114574 | | .clobbers = .{ .eflags = true }, |
| 116127 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114575 | 116128 | .each = .{ .once = &.{ |
| 114576 | 116129 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114577 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114578 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114579 | | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114580 | | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 114581 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114582 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114583 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 116130 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116131 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116132 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116133 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114584 | 116134 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114585 | 116135 | } }, |
| 114586 | 116136 | }, .{ |
| 114587 | | .required_features = .{ .x87, null, null, null }, |
| 114588 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114589 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116137 | .required_features = .{ .sse, null, null, null }, |
| 116138 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116139 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114590 | 116140 | .patterns = &.{ |
| 114591 | 116141 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114592 | 116142 | }, |
| 116143 | .call_frame = .{ .alignment = .@"16" }, |
| 114593 | 116144 | .extra_temps = .{ |
| 114594 | 116145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114595 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114596 | | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 114597 | | .{ .type = .i16, .kind = .mem }, |
| 114598 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116146 | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116147 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 116148 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116149 | .unused, |
| 114599 | 116150 | .unused, |
| 114600 | 116151 | .unused, |
| 114601 | 116152 | .unused, |
| ... | ... | @@ -114604,32 +116155,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114604 | 116155 | .unused, |
| 114605 | 116156 | }, |
| 114606 | 116157 | .dst_temps = .{ .mem, .unused }, |
| 114607 | | .clobbers = .{ .eflags = true }, |
| 116158 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114608 | 116159 | .each = .{ .once = &.{ |
| 114609 | 116160 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114610 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114611 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114612 | | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 114613 | | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 114614 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114615 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114616 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 114617 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 116161 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116162 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116163 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116164 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116165 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114618 | 116166 | } }, |
| 114619 | 116167 | }, .{ |
| 114620 | | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 114621 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114622 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116168 | .required_features = .{ .avx, null, null, null }, |
| 116169 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116170 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114623 | 116171 | .patterns = &.{ |
| 114624 | 116172 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114625 | 116173 | }, |
| 114626 | 116174 | .call_frame = .{ .alignment = .@"16" }, |
| 114627 | 116175 | .extra_temps = .{ |
| 114628 | 116176 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114629 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114630 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114631 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114632 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116177 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116178 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116179 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116180 | .unused, |
| 114633 | 116181 | .unused, |
| 114634 | 116182 | .unused, |
| 114635 | 116183 | .unused, |
| ... | ... | @@ -114641,29 +116189,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114641 | 116189 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114642 | 116190 | .each = .{ .once = &.{ |
| 114643 | 116191 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114644 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114645 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114646 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114647 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114648 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114649 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114650 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 116192 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116193 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116194 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116195 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114651 | 116196 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114652 | 116197 | } }, |
| 114653 | 116198 | }, .{ |
| 114654 | | .required_features = .{ .x87, null, null, null }, |
| 114655 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114656 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116199 | .required_features = .{ .sse2, null, null, null }, |
| 116200 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116201 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114657 | 116202 | .patterns = &.{ |
| 114658 | 116203 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114659 | 116204 | }, |
| 114660 | 116205 | .call_frame = .{ .alignment = .@"16" }, |
| 114661 | 116206 | .extra_temps = .{ |
| 114662 | 116207 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114663 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114664 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114665 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114666 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116208 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116209 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116210 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116211 | .unused, |
| 114667 | 116212 | .unused, |
| 114668 | 116213 | .unused, |
| 114669 | 116214 | .unused, |
| ... | ... | @@ -114675,29 +116220,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114675 | 116220 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114676 | 116221 | .each = .{ .once = &.{ |
| 114677 | 116222 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114678 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114679 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114680 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114681 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114682 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114683 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114684 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 114685 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 116223 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116224 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116225 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116226 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116227 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114686 | 116228 | } }, |
| 114687 | 116229 | }, .{ |
| 114688 | | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 114689 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114690 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116230 | .required_features = .{ .sse, null, null, null }, |
| 116231 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116232 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114691 | 116233 | .patterns = &.{ |
| 114692 | 116234 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114693 | 116235 | }, |
| 114694 | 116236 | .call_frame = .{ .alignment = .@"16" }, |
| 114695 | 116237 | .extra_temps = .{ |
| 114696 | 116238 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114697 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114698 | 116239 | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114699 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114700 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116240 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116241 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116242 | .unused, |
| 114701 | 116243 | .unused, |
| 114702 | 116244 | .unused, |
| 114703 | 116245 | .unused, |
| ... | ... | @@ -114709,29 +116251,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114709 | 116251 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114710 | 116252 | .each = .{ .once = &.{ |
| 114711 | 116253 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114712 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114713 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114714 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114715 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114716 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114717 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114718 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 116254 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116255 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116256 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116257 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114719 | 116258 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114720 | 116259 | } }, |
| 114721 | 116260 | }, .{ |
| 114722 | | .required_features = .{ .x87, null, null, null }, |
| 114723 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 114724 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116261 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116262 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116263 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114725 | 116264 | .patterns = &.{ |
| 114726 | 116265 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114727 | 116266 | }, |
| 114728 | 116267 | .call_frame = .{ .alignment = .@"16" }, |
| 114729 | 116268 | .extra_temps = .{ |
| 114730 | 116269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114731 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 114732 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114733 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114734 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116270 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116271 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 116272 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 116273 | .unused, |
| 114735 | 116274 | .unused, |
| 114736 | 116275 | .unused, |
| 114737 | 116276 | .unused, |
| ... | ... | @@ -114743,27 +116282,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114743 | 116282 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114744 | 116283 | .each = .{ .once = &.{ |
| 114745 | 116284 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114746 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 114747 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114748 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 114749 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114750 | | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 114751 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 114752 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 114753 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 116285 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116286 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116287 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116288 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116289 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114754 | 116290 | } }, |
| 114755 | 116291 | }, .{ |
| 114756 | | .required_features = .{ .x87, null, null, null }, |
| 114757 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114758 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116292 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116293 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116294 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114759 | 116295 | .patterns = &.{ |
| 114760 | 116296 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114761 | 116297 | }, |
| 116298 | .call_frame = .{ .alignment = .@"16" }, |
| 114762 | 116299 | .extra_temps = .{ |
| 114763 | 116300 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114764 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114765 | | .unused, |
| 114766 | | .unused, |
| 116301 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116302 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 116303 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114767 | 116304 | .unused, |
| 114768 | 116305 | .unused, |
| 114769 | 116306 | .unused, |
| ... | ... | @@ -114773,27 +116310,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114773 | 116310 | .unused, |
| 114774 | 116311 | }, |
| 114775 | 116312 | .dst_temps = .{ .mem, .unused }, |
| 114776 | | .clobbers = .{ .eflags = true }, |
| 116313 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114777 | 116314 | .each = .{ .once = &.{ |
| 114778 | 116315 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114779 | | .{ .@"0:", .fi_, .ld, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114780 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114781 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116316 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116317 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116318 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116319 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114782 | 116320 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114783 | 116321 | } }, |
| 114784 | 116322 | }, .{ |
| 114785 | | .required_features = .{ .x87, null, null, null }, |
| 114786 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114787 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116323 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116324 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116325 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114788 | 116326 | .patterns = &.{ |
| 114789 | 116327 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114790 | 116328 | }, |
| 114791 | 116329 | .call_frame = .{ .alignment = .@"16" }, |
| 114792 | 116330 | .extra_temps = .{ |
| 114793 | 116331 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114794 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114795 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114796 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116332 | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116333 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 116334 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114797 | 116335 | .unused, |
| 114798 | 116336 | .unused, |
| 114799 | 116337 | .unused, |
| ... | ... | @@ -114806,26 +116344,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114806 | 116344 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114807 | 116345 | .each = .{ .once = &.{ |
| 114808 | 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 | 116348 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114811 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114812 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114813 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116349 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116350 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114814 | 116351 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114815 | 116352 | } }, |
| 114816 | 116353 | }, .{ |
| 114817 | | .required_features = .{ .x87, null, null, null }, |
| 114818 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 114819 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116354 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116355 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116356 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114820 | 116357 | .patterns = &.{ |
| 114821 | 116358 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114822 | 116359 | }, |
| 114823 | 116360 | .call_frame = .{ .alignment = .@"16" }, |
| 114824 | 116361 | .extra_temps = .{ |
| 114825 | 116362 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114826 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114827 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114828 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116363 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116364 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 116365 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114829 | 116366 | .unused, |
| 114830 | 116367 | .unused, |
| 114831 | 116368 | .unused, |
| ... | ... | @@ -114838,25 +116375,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114838 | 116375 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114839 | 116376 | .each = .{ .once = &.{ |
| 114840 | 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 | 116379 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114843 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114844 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114845 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116380 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116381 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114846 | 116382 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114847 | 116383 | } }, |
| 114848 | 116384 | }, .{ |
| 114849 | | .required_features = .{ .x87, null, null, null }, |
| 114850 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114851 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116385 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116386 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116387 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114852 | 116388 | .patterns = &.{ |
| 114853 | 116389 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114854 | 116390 | }, |
| 116391 | .call_frame = .{ .alignment = .@"16" }, |
| 114855 | 116392 | .extra_temps = .{ |
| 114856 | 116393 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114857 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114858 | | .unused, |
| 114859 | | .unused, |
| 116394 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116395 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 116396 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114860 | 116397 | .unused, |
| 114861 | 116398 | .unused, |
| 114862 | 116399 | .unused, |
| ... | ... | @@ -114866,27 +116403,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114866 | 116403 | .unused, |
| 114867 | 116404 | }, |
| 114868 | 116405 | .dst_temps = .{ .mem, .unused }, |
| 114869 | | .clobbers = .{ .eflags = true }, |
| 116406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114870 | 116407 | .each = .{ .once = &.{ |
| 114871 | 116408 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114872 | | .{ .@"0:", .fi_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114873 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114874 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116409 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116410 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116411 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116412 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114875 | 116413 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114876 | 116414 | } }, |
| 114877 | 116415 | }, .{ |
| 114878 | | .required_features = .{ .x87, null, null, null }, |
| 114879 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114880 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116416 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116417 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116418 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114881 | 116419 | .patterns = &.{ |
| 114882 | 116420 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114883 | 116421 | }, |
| 114884 | 116422 | .call_frame = .{ .alignment = .@"16" }, |
| 114885 | 116423 | .extra_temps = .{ |
| 114886 | 116424 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114887 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 114888 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsixf" } } }, |
| 114889 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116425 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116426 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 116427 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114890 | 116428 | .unused, |
| 114891 | 116429 | .unused, |
| 114892 | 116430 | .unused, |
| ... | ... | @@ -114899,27 +116437,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114899 | 116437 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114900 | 116438 | .each = .{ .once = &.{ |
| 114901 | 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 | 116441 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114904 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114905 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114906 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116442 | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116443 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114907 | 116444 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114908 | 116445 | } }, |
| 114909 | 116446 | }, .{ |
| 114910 | | .required_features = .{ .x87, null, null, null }, |
| 114911 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 114912 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116447 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116448 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116449 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114913 | 116450 | .patterns = &.{ |
| 114914 | 116451 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114915 | 116452 | }, |
| 114916 | 116453 | .call_frame = .{ .alignment = .@"16" }, |
| 114917 | 116454 | .extra_temps = .{ |
| 114918 | 116455 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114919 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 114920 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsixf" } } }, |
| 114921 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114922 | | .unused, |
| 116456 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116457 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116458 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 116459 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114923 | 116460 | .unused, |
| 114924 | 116461 | .unused, |
| 114925 | 116462 | .unused, |
| ... | ... | @@ -114931,26 +116468,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114931 | 116468 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114932 | 116469 | .each = .{ .once = &.{ |
| 114933 | 116470 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114934 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114935 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114936 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114937 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114938 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116471 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116472 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116473 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116474 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116475 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 114939 | 116476 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114940 | 116477 | } }, |
| 114941 | 116478 | }, .{ |
| 114942 | | .required_features = .{ .x87, null, null, null }, |
| 114943 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114944 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116479 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116480 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116481 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114945 | 116482 | .patterns = &.{ |
| 114946 | 116483 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114947 | 116484 | }, |
| 116485 | .call_frame = .{ .alignment = .@"16" }, |
| 114948 | 116486 | .extra_temps = .{ |
| 114949 | 116487 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114950 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114951 | | .unused, |
| 114952 | | .unused, |
| 114953 | | .unused, |
| 116488 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116489 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116490 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 116491 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114954 | 116492 | .unused, |
| 114955 | 116493 | .unused, |
| 114956 | 116494 | .unused, |
| ... | ... | @@ -114959,28 +116497,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114959 | 116497 | .unused, |
| 114960 | 116498 | }, |
| 114961 | 116499 | .dst_temps = .{ .mem, .unused }, |
| 114962 | | .clobbers = .{ .eflags = true }, |
| 116500 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114963 | 116501 | .each = .{ .once = &.{ |
| 114964 | 116502 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114965 | | .{ .@"0:", .fi_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114966 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114967 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116503 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116504 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116505 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116506 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116507 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 114968 | 116508 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114969 | 116509 | } }, |
| 114970 | 116510 | }, .{ |
| 114971 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 114972 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 114973 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116511 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116512 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116513 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 114974 | 116514 | .patterns = &.{ |
| 114975 | 116515 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114976 | 116516 | }, |
| 114977 | 116517 | .call_frame = .{ .alignment = .@"16" }, |
| 114978 | 116518 | .extra_temps = .{ |
| 114979 | 116519 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114980 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 114981 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatdixf" } } }, |
| 114982 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 114983 | | .unused, |
| 116520 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116521 | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116522 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 116523 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 114984 | 116524 | .unused, |
| 114985 | 116525 | .unused, |
| 114986 | 116526 | .unused, |
| ... | ... | @@ -114993,16 +116533,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114993 | 116533 | .each = .{ .once = &.{ |
| 114994 | 116534 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114995 | 116535 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114996 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114997 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 114998 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 114999 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116536 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116537 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116538 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116539 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115000 | 116540 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115001 | 116541 | } }, |
| 115002 | 116542 | }, .{ |
| 115003 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115004 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 115005 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116543 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116544 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116545 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115006 | 116546 | .patterns = &.{ |
| 115007 | 116547 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115008 | 116548 | }, |
| ... | ... | @@ -115010,9 +116550,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115010 | 116550 | .extra_temps = .{ |
| 115011 | 116551 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115012 | 116552 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115013 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatundixf" } } }, |
| 115014 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 115015 | | .unused, |
| 116553 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 116554 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 116555 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115016 | 116556 | .unused, |
| 115017 | 116557 | .unused, |
| 115018 | 116558 | .unused, |
| ... | ... | @@ -115025,16 +116565,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115025 | 116565 | .each = .{ .once = &.{ |
| 115026 | 116566 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115027 | 116567 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115028 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115029 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115030 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 115031 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116568 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116569 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116570 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116571 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115032 | 116572 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115033 | 116573 | } }, |
| 115034 | 116574 | }, .{ |
| 115035 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115036 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115037 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116575 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116576 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116577 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115038 | 116578 | .patterns = &.{ |
| 115039 | 116579 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115040 | 116580 | }, |
| ... | ... | @@ -115042,9 +116582,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115042 | 116582 | .extra_temps = .{ |
| 115043 | 116583 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115044 | 116584 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115045 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 115046 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattixf" } } }, |
| 115047 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116585 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 116586 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 116587 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115048 | 116588 | .unused, |
| 115049 | 116589 | .unused, |
| 115050 | 116590 | .unused, |
| ... | ... | @@ -115059,15 +116599,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115059 | 116599 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115060 | 116600 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115061 | 116601 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115062 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115063 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116602 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115064 | 116603 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115065 | 116604 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115066 | 116605 | } }, |
| 115067 | 116606 | }, .{ |
| 115068 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 116607 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115069 | 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 | 116610 | .patterns = &.{ |
| 115072 | 116611 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115073 | 116612 | }, |
| ... | ... | @@ -115076,8 +116615,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115076 | 116615 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115077 | 116616 | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115078 | 116617 | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 115079 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntixf" } } }, |
| 115080 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116618 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 116619 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115081 | 116620 | .unused, |
| 115082 | 116621 | .unused, |
| 115083 | 116622 | .unused, |
| ... | ... | @@ -115092,15 +116631,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115092 | 116631 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115093 | 116632 | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115094 | 116633 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115095 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115096 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116634 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115097 | 116635 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 115098 | 116636 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115099 | 116637 | } }, |
| 115100 | 116638 | }, .{ |
| 115101 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 116639 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 115102 | 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 | 116642 | .patterns = &.{ |
| 115105 | 116643 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115106 | 116644 | }, |
| ... | ... | @@ -115110,8 +116648,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115110 | 116648 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115111 | 116649 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115112 | 116650 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115113 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateixf" } } }, |
| 115114 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116651 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 116652 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115115 | 116653 | .unused, |
| 115116 | 116654 | .unused, |
| 115117 | 116655 | .unused, |
| ... | ... | @@ -115126,16 +116664,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115126 | 116664 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115127 | 116665 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115128 | 116666 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115129 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115130 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 116667 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115131 | 116668 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115132 | 116669 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 115133 | 116670 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115134 | 116671 | } }, |
| 115135 | 116672 | }, .{ |
| 115136 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 115137 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115138 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116673 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116674 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116675 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115139 | 116676 | .patterns = &.{ |
| 115140 | 116677 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115141 | 116678 | }, |
| ... | ... | @@ -115145,8 +116682,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115145 | 116682 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115146 | 116683 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115147 | 116684 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115148 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneixf" } } }, |
| 115149 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116685 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 116686 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115150 | 116687 | .unused, |
| 115151 | 116688 | .unused, |
| 115152 | 116689 | .unused, |
| ... | ... | @@ -115161,134 +116698,185 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115161 | 116698 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115162 | 116699 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115163 | 116700 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115164 | | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115165 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 116701 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115166 | 116702 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115167 | 116703 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 115168 | 116704 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115169 | 116705 | } }, |
| 115170 | 116706 | }, .{ |
| 115171 | | .required_features = .{ .sse, null, null, null }, |
| 115172 | | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 115173 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116707 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116708 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116709 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115174 | 116710 | .patterns = &.{ |
| 115175 | | .{ .src = .{ .mem, .none, .none } }, |
| 115176 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116711 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115177 | 116712 | }, |
| 115178 | 116713 | .call_frame = .{ .alignment = .@"16" }, |
| 115179 | 116714 | .extra_temps = .{ |
| 115180 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115181 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115182 | | .unused, |
| 115183 | | .unused, |
| 115184 | | .unused, |
| 115185 | | .unused, |
| 116715 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116716 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116717 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116718 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116719 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 116720 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115186 | 116721 | .unused, |
| 115187 | 116722 | .unused, |
| 115188 | 116723 | .unused, |
| 115189 | 116724 | .unused, |
| 115190 | 116725 | .unused, |
| 115191 | 116726 | }, |
| 115192 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 116727 | .dst_temps = .{ .mem, .unused }, |
| 115193 | 116728 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115194 | 116729 | .each = .{ .once = &.{ |
| 115195 | | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| 115196 | | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 116730 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 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 }, |
| 115200 | | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 115201 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116741 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116742 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116743 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115202 | 116744 | .patterns = &.{ |
| 115203 | | .{ .src = .{ .mem, .none, .none } }, |
| 115204 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116745 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115205 | 116746 | }, |
| 115206 | 116747 | .call_frame = .{ .alignment = .@"16" }, |
| 115207 | 116748 | .extra_temps = .{ |
| 115208 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115209 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115210 | | .unused, |
| 115211 | | .unused, |
| 115212 | | .unused, |
| 115213 | | .unused, |
| 116749 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116750 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116751 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116752 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116753 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 116754 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115214 | 116755 | .unused, |
| 115215 | 116756 | .unused, |
| 115216 | 116757 | .unused, |
| 115217 | 116758 | .unused, |
| 115218 | 116759 | .unused, |
| 115219 | 116760 | }, |
| 115220 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 116761 | .dst_temps = .{ .mem, .unused }, |
| 115221 | 116762 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115222 | 116763 | .each = .{ .once = &.{ |
| 115223 | | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| 115224 | | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 116764 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 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 }, |
| 115228 | | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 115229 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116775 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116776 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116777 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115230 | 116778 | .patterns = &.{ |
| 115231 | | .{ .src = .{ .mem, .none, .none } }, |
| 115232 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116779 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115233 | 116780 | }, |
| 115234 | 116781 | .call_frame = .{ .alignment = .@"16" }, |
| 115235 | 116782 | .extra_temps = .{ |
| 115236 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115237 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115238 | | .unused, |
| 115239 | | .unused, |
| 115240 | | .unused, |
| 115241 | | .unused, |
| 116783 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116784 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116785 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116786 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116787 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 116788 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115242 | 116789 | .unused, |
| 115243 | 116790 | .unused, |
| 115244 | 116791 | .unused, |
| 115245 | 116792 | .unused, |
| 115246 | 116793 | .unused, |
| 115247 | 116794 | }, |
| 115248 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 116795 | .dst_temps = .{ .mem, .unused }, |
| 115249 | 116796 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115250 | 116797 | .each = .{ .once = &.{ |
| 115251 | | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| 115252 | | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 116798 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 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 }, |
| 115256 | | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 115257 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116809 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116810 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116811 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 115258 | 116812 | .patterns = &.{ |
| 115259 | | .{ .src = .{ .mem, .none, .none } }, |
| 115260 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116813 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115261 | 116814 | }, |
| 115262 | 116815 | .call_frame = .{ .alignment = .@"16" }, |
| 115263 | 116816 | .extra_temps = .{ |
| 115264 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115265 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115266 | | .unused, |
| 115267 | | .unused, |
| 115268 | | .unused, |
| 115269 | | .unused, |
| 116817 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116818 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116819 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116820 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116821 | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 116822 | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 115270 | 116823 | .unused, |
| 115271 | 116824 | .unused, |
| 115272 | 116825 | .unused, |
| 115273 | 116826 | .unused, |
| 115274 | 116827 | .unused, |
| 115275 | 116828 | }, |
| 115276 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 116829 | .dst_temps = .{ .mem, .unused }, |
| 115277 | 116830 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115278 | 116831 | .each = .{ .once = &.{ |
| 115279 | | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| 115280 | | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 116832 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 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 }, |
| 115284 | | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 115285 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116872 | .required_features = .{ .avx, null, null, null }, |
| 116873 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 116874 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115286 | 116875 | .patterns = &.{ |
| 115287 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 116876 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115288 | 116877 | }, |
| 115289 | | .call_frame = .{ .alignment = .@"16" }, |
| 115290 | 116878 | .extra_temps = .{ |
| 115291 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 116879 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 115292 | 116880 | .unused, |
| 115293 | 116881 | .unused, |
| 115294 | 116882 | .unused, |
| ... | ... | @@ -115300,21 +116888,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115300 | 116888 | .unused, |
| 115301 | 116889 | .unused, |
| 115302 | 116890 | }, |
| 115303 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115304 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116891 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 115305 | 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 }, |
| 115310 | | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 115311 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116897 | .required_features = .{ .ssse3, null, null, null }, |
| 116898 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 116899 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115312 | 116900 | .patterns = &.{ |
| 115313 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 116901 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115314 | 116902 | }, |
| 115315 | | .call_frame = .{ .alignment = .@"16" }, |
| 115316 | 116903 | .extra_temps = .{ |
| 115317 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116904 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 115318 | 116905 | .unused, |
| 115319 | 116906 | .unused, |
| 115320 | 116907 | .unused, |
| ... | ... | @@ -115326,22 +116913,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115326 | 116913 | .unused, |
| 115327 | 116914 | .unused, |
| 115328 | 116915 | }, |
| 115329 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115330 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116916 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 115331 | 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 }, |
| 115336 | | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 115337 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116922 | .required_features = .{ .sse2, null, null, null }, |
| 116923 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 116924 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115338 | 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 | 116954 | .extra_temps = .{ |
| 115343 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 115344 | | .unused, |
| 116955 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116956 | .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115345 | 116957 | .unused, |
| 115346 | 116958 | .unused, |
| 115347 | 116959 | .unused, |
| ... | ... | @@ -115352,23 +116964,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115352 | 116964 | .unused, |
| 115353 | 116965 | .unused, |
| 115354 | 116966 | }, |
| 115355 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115356 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116967 | .dst_temps = .{ .mem, .unused }, |
| 115357 | 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 }, |
| 115362 | | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 115363 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116976 | .required_features = .{ .avx, null, null, null }, |
| 116977 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 116978 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115364 | 116979 | .patterns = &.{ |
| 115365 | | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 116980 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115366 | 116981 | }, |
| 115367 | | .call_frame = .{ .alignment = .@"16" }, |
| 115368 | 116982 | .extra_temps = .{ |
| 115369 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 115370 | | .unused, |
| 115371 | | .unused, |
| 116983 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 116984 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116985 | .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 115372 | 116986 | .unused, |
| 115373 | 116987 | .unused, |
| 115374 | 116988 | .unused, |
| ... | ... | @@ -115378,22 +116992,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115378 | 116992 | .unused, |
| 115379 | 116993 | .unused, |
| 115380 | 116994 | }, |
| 115381 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115382 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116995 | .dst_temps = .{ .mem, .unused }, |
| 115383 | 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 }, |
| 115388 | | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 115389 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 117005 | .required_features = .{ .ssse3, null, null, null }, |
| 117006 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 117007 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115390 | 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 | 117011 | .extra_temps = .{ |
| 115395 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 115396 | | .unused, |
| 117012 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 117013 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115397 | 117014 | .unused, |
| 115398 | 117015 | .unused, |
| 115399 | 117016 | .unused, |
| ... | ... | @@ -115404,21 +117021,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115404 | 117021 | .unused, |
| 115405 | 117022 | .unused, |
| 115406 | 117023 | }, |
| 115407 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115408 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117024 | .dst_temps = .{ .mem, .unused }, |
| 115409 | 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 }, |
| 115414 | | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 115415 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 117034 | .required_features = .{ .sse2, null, null, null }, |
| 117035 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 117036 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115416 | 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 | 117040 | .extra_temps = .{ |
| 115421 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 117041 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115422 | 117042 | .unused, |
| 115423 | 117043 | .unused, |
| 115424 | 117044 | .unused, |
| ... | ... | @@ -115430,23 +117050,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115430 | 117050 | .unused, |
| 115431 | 117051 | .unused, |
| 115432 | 117052 | }, |
| 115433 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115434 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117053 | .dst_temps = .{ .mem, .unused }, |
| 115435 | 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 }, |
| 115440 | | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115441 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 117064 | .required_features = .{ .slow_incdec, null, null, null }, |
| 117065 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 117066 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115442 | 117067 | .patterns = &.{ |
| 115443 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117068 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115444 | 117069 | }, |
| 115445 | | .call_frame = .{ .alignment = .@"16" }, |
| 115446 | 117070 | .extra_temps = .{ |
| 115447 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115448 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115449 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 117071 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117072 | .unused, |
| 117073 | .unused, |
| 115450 | 117074 | .unused, |
| 115451 | 117075 | .unused, |
| 115452 | 117076 | .unused, |
| ... | ... | @@ -115456,25 +117080,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115456 | 117080 | .unused, |
| 115457 | 117081 | .unused, |
| 115458 | 117082 | }, |
| 115459 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115460 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117083 | .dst_temps = .{ .mem, .unused }, |
| 115461 | 117084 | .each = .{ .once = &.{ |
| 115462 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115463 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115464 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117085 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ }, |
| 117086 | .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ }, |
| 117087 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 117088 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115465 | 117089 | } }, |
| 115466 | 117090 | }, .{ |
| 115467 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 115468 | | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115469 | | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 117091 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .byte, .is = .byte } }, .any }, |
| 117092 | .src_constraints = .{ .{ .int = .byte }, .any, .any }, |
| 115470 | 117093 | .patterns = &.{ |
| 115471 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117094 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115472 | 117095 | }, |
| 115473 | | .call_frame = .{ .alignment = .@"16" }, |
| 115474 | 117096 | .extra_temps = .{ |
| 115475 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115476 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115477 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 117097 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117098 | .unused, |
| 117099 | .unused, |
| 115478 | 117100 | .unused, |
| 115479 | 117101 | .unused, |
| 115480 | 117102 | .unused, |
| ... | ... | @@ -115484,60 +117106,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115484 | 117106 | .unused, |
| 115485 | 117107 | .unused, |
| 115486 | 117108 | }, |
| 115487 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115488 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117109 | .dst_temps = .{ .mem, .unused }, |
| 115489 | 117110 | .each = .{ .once = &.{ |
| 115490 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115491 | | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115492 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117111 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_size), ._, ._ }, |
| 117112 | .{ .@"0:", ._, .mov, .memi(.dst0b, .tmp0), .src0b, ._, ._ }, |
| 117113 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 117114 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 115493 | 117115 | } }, |
| 115494 | 117116 | }, .{ |
| 115495 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 115496 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115497 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117117 | .required_features = .{ .avx2, null, null, null }, |
| 117118 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 117119 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115498 | 117120 | .patterns = &.{ |
| 115499 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 115500 | | }, |
| 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, |
| 117121 | .{ .src = .{ .mem, .none, .none } }, |
| 117122 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115514 | 117123 | }, |
| 115515 | | .dst_temps = .{ .mem, .unused }, |
| 115516 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117124 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 115517 | 117125 | .each = .{ .once = &.{ |
| 115518 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 117126 | .{ ._, .vp_w, .broadcast, .dst0x, .src0w, ._, ._ }, |
| 115526 | 117127 | } }, |
| 115527 | 117128 | }, .{ |
| 115528 | 117129 | .required_features = .{ .avx, null, null, null }, |
| 115529 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115530 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117130 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 117131 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115531 | 117132 | .patterns = &.{ |
| 115532 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117133 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115533 | 117134 | }, |
| 115534 | | .call_frame = .{ .alignment = .@"16" }, |
| 115535 | 117135 | .extra_temps = .{ |
| 115536 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115537 | 117136 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115538 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115539 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115540 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117137 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 117138 | .unused, |
| 117139 | .unused, |
| 117140 | .unused, |
| 115541 | 117141 | .unused, |
| 115542 | 117142 | .unused, |
| 115543 | 117143 | .unused, |
| ... | ... | @@ -115545,32 +117145,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115545 | 117145 | .unused, |
| 115546 | 117146 | .unused, |
| 115547 | 117147 | }, |
| 115548 | | .dst_temps = .{ .mem, .unused }, |
| 115549 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117148 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, |
| 115550 | 117149 | .each = .{ .once = &.{ |
| 115551 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115552 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 117150 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 117151 | .{ ._, .vp_b, .shuf, .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| 115559 | 117152 | } }, |
| 115560 | 117153 | }, .{ |
| 115561 | | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 115562 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115563 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117154 | .required_features = .{ .ssse3, null, null, null }, |
| 117155 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 117156 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115564 | 117157 | .patterns = &.{ |
| 115565 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117158 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115566 | 117159 | }, |
| 115567 | | .call_frame = .{ .alignment = .@"16" }, |
| 115568 | 117160 | .extra_temps = .{ |
| 115569 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115570 | 117161 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115571 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115572 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115573 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117162 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 117163 | .unused, |
| 117164 | .unused, |
| 117165 | .unused, |
| 115574 | 117166 | .unused, |
| 115575 | 117167 | .unused, |
| 115576 | 117168 | .unused, |
| ... | ... | @@ -115578,32 +117170,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115578 | 117170 | .unused, |
| 115579 | 117171 | .unused, |
| 115580 | 117172 | }, |
| 115581 | | .dst_temps = .{ .mem, .unused }, |
| 115582 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117173 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 115583 | 117174 | .each = .{ .once = &.{ |
| 115584 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115585 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 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", ._, ._, ._ }, |
| 117175 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 117176 | .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp0x), ._, ._ }, |
| 115592 | 117177 | } }, |
| 115593 | 117178 | }, .{ |
| 115594 | 117179 | .required_features = .{ .sse2, null, null, null }, |
| 115595 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115596 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117180 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 117181 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115597 | 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 | 117210 | .extra_temps = .{ |
| 115602 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115603 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115604 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115605 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115606 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117211 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117212 | .{ .type = .vector_16_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117213 | .unused, |
| 117214 | .unused, |
| 117215 | .unused, |
| 115607 | 117216 | .unused, |
| 115608 | 117217 | .unused, |
| 115609 | 117218 | .unused, |
| ... | ... | @@ -115612,31 +117221,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115612 | 117221 | .unused, |
| 115613 | 117222 | }, |
| 115614 | 117223 | .dst_temps = .{ .mem, .unused }, |
| 115615 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115616 | 117224 | .each = .{ .once = &.{ |
| 115617 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115618 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115619 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115620 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115621 | | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115622 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115623 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115624 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 117225 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 117226 | .{ ._, .vp_w, .broadcast, .tmp1y, .src0w, ._, ._ }, |
| 117227 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 117228 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 117229 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115625 | 117230 | } }, |
| 115626 | 117231 | }, .{ |
| 115627 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 115628 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115629 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117232 | .required_features = .{ .avx, null, null, null }, |
| 117233 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 117234 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115630 | 117235 | .patterns = &.{ |
| 115631 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117236 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115632 | 117237 | }, |
| 115633 | | .call_frame = .{ .alignment = .@"16" }, |
| 115634 | 117238 | .extra_temps = .{ |
| 115635 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115636 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115637 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115638 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115639 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117239 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117240 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 117241 | .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117242 | .unused, |
| 117243 | .unused, |
| 115640 | 117244 | .unused, |
| 115641 | 117245 | .unused, |
| 115642 | 117246 | .unused, |
| ... | ... | @@ -115645,31 +117249,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115645 | 117249 | .unused, |
| 115646 | 117250 | }, |
| 115647 | 117251 | .dst_temps = .{ .mem, .unused }, |
| 115648 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115649 | 117252 | .each = .{ .once = &.{ |
| 115650 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115651 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115652 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115653 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115654 | | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115655 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115656 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115657 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117253 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 117254 | .{ ._, .vp_b, .shuf, .tmp2x, .src0x, .lea(.tmp0x), ._ }, |
| 117255 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117256 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp2x, ._, ._ }, |
| 117257 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117258 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115658 | 117259 | } }, |
| 115659 | 117260 | }, .{ |
| 115660 | | .required_features = .{ .sse, null, null, null }, |
| 115661 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115662 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117261 | .required_features = .{ .ssse3, null, null, null }, |
| 117262 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 117263 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115663 | 117264 | .patterns = &.{ |
| 115664 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117265 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115665 | 117266 | }, |
| 115666 | | .call_frame = .{ .alignment = .@"16" }, |
| 115667 | 117267 | .extra_temps = .{ |
| 115668 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115669 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115670 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115671 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115672 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117268 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117269 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_splat_mem = .{ .size = .word } } }, |
| 117270 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 117271 | .unused, |
| 117272 | .unused, |
| 115673 | 117273 | .unused, |
| 115674 | 117274 | .unused, |
| 115675 | 117275 | .unused, |
| ... | ... | @@ -115678,31 +117278,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115678 | 117278 | .unused, |
| 115679 | 117279 | }, |
| 115680 | 117280 | .dst_temps = .{ .mem, .unused }, |
| 115681 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115682 | 117281 | .each = .{ .once = &.{ |
| 115683 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115684 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115685 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115686 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115687 | | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115688 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115689 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115690 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 117282 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 117283 | .{ ._, .p_b, .shuf, .src0x, .lea(.tmp0x), ._, ._ }, |
| 117284 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117285 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 117286 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117287 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115691 | 117288 | } }, |
| 115692 | 117289 | }, .{ |
| 115693 | | .required_features = .{ .avx, .slow_incdec, null, null }, |
| 115694 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115695 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117290 | .required_features = .{ .sse2, null, null, null }, |
| 117291 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .word } }, .any }, |
| 117292 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115696 | 117293 | .patterns = &.{ |
| 115697 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117294 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 115698 | 117295 | }, |
| 115699 | | .call_frame = .{ .alignment = .@"16" }, |
| 115700 | 117296 | .extra_temps = .{ |
| 115701 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115702 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115703 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115704 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115705 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117297 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117298 | .unused, |
| 117299 | .unused, |
| 117300 | .unused, |
| 117301 | .unused, |
| 115706 | 117302 | .unused, |
| 115707 | 117303 | .unused, |
| 115708 | 117304 | .unused, |
| ... | ... | @@ -115711,31 +117307,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115711 | 117307 | .unused, |
| 115712 | 117308 | }, |
| 115713 | 117309 | .dst_temps = .{ .mem, .unused }, |
| 115714 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115715 | 117310 | .each = .{ .once = &.{ |
| 115716 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115717 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115718 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115719 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115720 | | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115721 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115722 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115723 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117311 | .{ ._, .p_w, .shufl, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 117312 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117313 | .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 117314 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 117315 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117316 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115724 | 117317 | } }, |
| 115725 | 117318 | }, .{ |
| 115726 | | .required_features = .{ .avx, null, null, null }, |
| 115727 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115728 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117319 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .word, .is = .word } }, .any }, |
| 117320 | .src_constraints = .{ .{ .int_or_float = .word }, .any, .any }, |
| 115729 | 117321 | .patterns = &.{ |
| 115730 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117322 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 115731 | 117323 | }, |
| 115732 | | .call_frame = .{ .alignment = .@"16" }, |
| 115733 | 117324 | .extra_temps = .{ |
| 115734 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115735 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115736 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115737 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115738 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117325 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117326 | .unused, |
| 117327 | .unused, |
| 117328 | .unused, |
| 117329 | .unused, |
| 115739 | 117330 | .unused, |
| 115740 | 117331 | .unused, |
| 115741 | 117332 | .unused, |
| ... | ... | @@ -115744,31 +117335,151 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115744 | 117335 | .unused, |
| 115745 | 117336 | }, |
| 115746 | 117337 | .dst_temps = .{ .mem, .unused }, |
| 115747 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115748 | 117338 | .each = .{ .once = &.{ |
| 115749 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115750 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115751 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115752 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115753 | | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115754 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115755 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115756 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 117339 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_size), ._, ._ }, |
| 117340 | .{ .@"0:", ._, .mov, .memi(.dst0w, .tmp0), .src0w, ._, ._ }, |
| 117341 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 117342 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115757 | 117343 | } }, |
| 115758 | 117344 | }, .{ |
| 115759 | | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| 115760 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115761 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117345 | .required_features = .{ .avx2, null, null, null }, |
| 117346 | .dst_constraints = .{ .{ .scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 117347 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| 115762 | 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 | 117477 | .extra_temps = .{ |
| 115767 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115768 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115769 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115770 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115771 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117478 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117479 | .{ .type = .vector_8_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117480 | .unused, |
| 117481 | .unused, |
| 117482 | .unused, |
| 115772 | 117483 | .unused, |
| 115773 | 117484 | .unused, |
| 115774 | 117485 | .unused, |
| ... | ... | @@ -115777,31 +117488,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115777 | 117488 | .unused, |
| 115778 | 117489 | }, |
| 115779 | 117490 | .dst_temps = .{ .mem, .unused }, |
| 115780 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115781 | 117491 | .each = .{ .once = &.{ |
| 115782 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115783 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115784 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115785 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115786 | | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115787 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115788 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115789 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117492 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 117493 | .{ ._, .vp_d, .broadcast, .tmp1y, .src0d, ._, ._ }, |
| 117494 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 117495 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 117496 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115790 | 117497 | } }, |
| 115791 | 117498 | }, .{ |
| 115792 | | .required_features = .{ .sse2, null, null, null }, |
| 115793 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115794 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117499 | .required_features = .{ .avx2, null, null, null }, |
| 117500 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, .any }, |
| 117501 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115795 | 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 | 117506 | .extra_temps = .{ |
| 115800 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115801 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115802 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115803 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115804 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117507 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117508 | .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117509 | .unused, |
| 117510 | .unused, |
| 117511 | .unused, |
| 115805 | 117512 | .unused, |
| 115806 | 117513 | .unused, |
| 115807 | 117514 | .unused, |
| ... | ... | @@ -115810,31 +117517,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115810 | 117517 | .unused, |
| 115811 | 117518 | }, |
| 115812 | 117519 | .dst_temps = .{ .mem, .unused }, |
| 115813 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115814 | 117520 | .each = .{ .once = &.{ |
| 115815 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115816 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115817 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115818 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115819 | | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115820 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115821 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115822 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 117521 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 117522 | .{ ._, .v_ss, .broadcast, .tmp1y, .src0d, ._, ._ }, |
| 117523 | .{ .@"0:", .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 117524 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 117525 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115823 | 117526 | } }, |
| 115824 | 117527 | }, .{ |
| 115825 | | .required_features = .{ .sse, .slow_incdec, null, null }, |
| 115826 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115827 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117528 | .required_features = .{ .avx, null, null, null }, |
| 117529 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any }, |
| 117530 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| 115828 | 117531 | .patterns = &.{ |
| 115829 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117532 | .{ .src = .{ .mem, .none, .none } }, |
| 115830 | 117533 | }, |
| 115831 | | .call_frame = .{ .alignment = .@"16" }, |
| 115832 | 117534 | .extra_temps = .{ |
| 115833 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115834 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115835 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115836 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115837 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117535 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117536 | .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117537 | .unused, |
| 117538 | .unused, |
| 117539 | .unused, |
| 115838 | 117540 | .unused, |
| 115839 | 117541 | .unused, |
| 115840 | 117542 | .unused, |
| ... | ... | @@ -115843,31 +117545,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115843 | 117545 | .unused, |
| 115844 | 117546 | }, |
| 115845 | 117547 | .dst_temps = .{ .mem, .unused }, |
| 115846 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115847 | 117548 | .each = .{ .once = &.{ |
| 115848 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115849 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115850 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115851 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115852 | | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115853 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115854 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115855 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117549 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117550 | .{ ._, .v_ss, .broadcast, .tmp1x, .src0d, ._, ._ }, |
| 117551 | .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 117552 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117553 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115856 | 117554 | } }, |
| 115857 | 117555 | }, .{ |
| 115858 | | .required_features = .{ .sse, null, null, null }, |
| 115859 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115860 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117556 | .required_features = .{ .avx, null, null, null }, |
| 117557 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 117558 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| 115861 | 117559 | .patterns = &.{ |
| 115862 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117560 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115863 | 117561 | }, |
| 115864 | | .call_frame = .{ .alignment = .@"16" }, |
| 115865 | 117562 | .extra_temps = .{ |
| 115866 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115867 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115868 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115869 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115870 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117563 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117564 | .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117565 | .unused, |
| 117566 | .unused, |
| 117567 | .unused, |
| 115871 | 117568 | .unused, |
| 115872 | 117569 | .unused, |
| 115873 | 117570 | .unused, |
| ... | ... | @@ -115876,30 +117573,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115876 | 117573 | .unused, |
| 115877 | 117574 | }, |
| 115878 | 117575 | .dst_temps = .{ .mem, .unused }, |
| 115879 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115880 | 117576 | .each = .{ .once = &.{ |
| 115881 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115882 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115883 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115884 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115885 | | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 115886 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115887 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115888 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 117577 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117578 | .{ ._, .vp_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 117579 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 117580 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117581 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115889 | 117582 | } }, |
| 115890 | 117583 | }, .{ |
| 115891 | 117584 | .required_features = .{ .avx, null, null, null }, |
| 115892 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115893 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117585 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 117586 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115894 | 117587 | .patterns = &.{ |
| 115895 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117588 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115896 | 117589 | }, |
| 115897 | | .call_frame = .{ .alignment = .@"16" }, |
| 115898 | 117590 | .extra_temps = .{ |
| 115899 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115900 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115901 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115902 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117591 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117592 | .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117593 | .unused, |
| 117594 | .unused, |
| 115903 | 117595 | .unused, |
| 115904 | 117596 | .unused, |
| 115905 | 117597 | .unused, |
| ... | ... | @@ -115909,28 +117601,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115909 | 117601 | .unused, |
| 115910 | 117602 | }, |
| 115911 | 117603 | .dst_temps = .{ .mem, .unused }, |
| 115912 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115913 | 117604 | .each = .{ .once = &.{ |
| 115914 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115915 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115916 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115917 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 115918 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 115919 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117605 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117606 | .{ ._, .v_ps, .shuf, .tmp1x, .tmp1x, .src0x, .ui(0b00_00_00_00) }, |
| 117607 | .{ .@"0:", .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 117608 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117609 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115920 | 117610 | } }, |
| 115921 | 117611 | }, .{ |
| 115922 | 117612 | .required_features = .{ .sse2, null, null, null }, |
| 115923 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115924 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117613 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 117614 | .src_constraints = .{ .{ .int = .dword }, .any, .any }, |
| 115925 | 117615 | .patterns = &.{ |
| 115926 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117616 | .{ .src = .{ .to_sse, .none, .none } }, |
| 115927 | 117617 | }, |
| 115928 | | .call_frame = .{ .alignment = .@"16" }, |
| 115929 | 117618 | .extra_temps = .{ |
| 115930 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115931 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115932 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115933 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117619 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117620 | .{ .type = .vector_4_u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117621 | .unused, |
| 117622 | .unused, |
| 115934 | 117623 | .unused, |
| 115935 | 117624 | .unused, |
| 115936 | 117625 | .unused, |
| ... | ... | @@ -115940,28 +117629,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115940 | 117629 | .unused, |
| 115941 | 117630 | }, |
| 115942 | 117631 | .dst_temps = .{ .mem, .unused }, |
| 115943 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115944 | 117632 | .each = .{ .once = &.{ |
| 115945 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115946 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115947 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115948 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 115949 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 115950 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117633 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117634 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 117635 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 117636 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117637 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115951 | 117638 | } }, |
| 115952 | 117639 | }, .{ |
| 115953 | 117640 | .required_features = .{ .sse, null, null, null }, |
| 115954 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115955 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117641 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 117642 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115956 | 117643 | .patterns = &.{ |
| 115957 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117644 | .{ .src = .{ .mut_sse, .none, .none } }, |
| 115958 | 117645 | }, |
| 115959 | | .call_frame = .{ .alignment = .@"16" }, |
| 115960 | 117646 | .extra_temps = .{ |
| 115961 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115962 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115963 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 115964 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117647 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117648 | .unused, |
| 117649 | .unused, |
| 117650 | .unused, |
| 115965 | 117651 | .unused, |
| 115966 | 117652 | .unused, |
| 115967 | 117653 | .unused, |
| ... | ... | @@ -115971,28 +117657,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115971 | 117657 | .unused, |
| 115972 | 117658 | }, |
| 115973 | 117659 | .dst_temps = .{ .mem, .unused }, |
| 115974 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115975 | 117660 | .each = .{ .once = &.{ |
| 115976 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115977 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115978 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115979 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 115980 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 115981 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117661 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117662 | .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 117663 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 117664 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117665 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 115982 | 117666 | } }, |
| 115983 | 117667 | }, .{ |
| 115984 | | .required_features = .{ .avx, null, null, null }, |
| 115985 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 115986 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117668 | .required_features = .{ .sse2, null, null, null }, |
| 117669 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, .any }, |
| 117670 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 115987 | 117671 | .patterns = &.{ |
| 115988 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117672 | .{ .src = .{ .sse, .none, .none } }, |
| 115989 | 117673 | }, |
| 115990 | | .call_frame = .{ .alignment = .@"16" }, |
| 115991 | 117674 | .extra_temps = .{ |
| 115992 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115993 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115994 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 115995 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117675 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117676 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| 117677 | .unused, |
| 117678 | .unused, |
| 115996 | 117679 | .unused, |
| 115997 | 117680 | .unused, |
| 115998 | 117681 | .unused, |
| ... | ... | @@ -116002,28 +117685,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116002 | 117685 | .unused, |
| 116003 | 117686 | }, |
| 116004 | 117687 | .dst_temps = .{ .mem, .unused }, |
| 116005 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116006 | 117688 | .each = .{ .once = &.{ |
| 116007 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116008 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116009 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116010 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116011 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116012 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117689 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117690 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 117691 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 117692 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117693 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116013 | 117694 | } }, |
| 116014 | 117695 | }, .{ |
| 116015 | | .required_features = .{ .sse2, null, null, null }, |
| 116016 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 116017 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117696 | .required_features = .{ .sse, null, null, null }, |
| 117697 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .dword } }, .any }, |
| 117698 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| 116018 | 117699 | .patterns = &.{ |
| 116019 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117700 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 116020 | 117701 | }, |
| 116021 | | .call_frame = .{ .alignment = .@"16" }, |
| 116022 | 117702 | .extra_temps = .{ |
| 116023 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116024 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116025 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116026 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117703 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117704 | .unused, |
| 117705 | .unused, |
| 117706 | .unused, |
| 116027 | 117707 | .unused, |
| 116028 | 117708 | .unused, |
| 116029 | 117709 | .unused, |
| ... | ... | @@ -116033,28 +117713,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116033 | 117713 | .unused, |
| 116034 | 117714 | }, |
| 116035 | 117715 | .dst_temps = .{ .mem, .unused }, |
| 116036 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116037 | 117716 | .each = .{ .once = &.{ |
| 116038 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116039 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116040 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116041 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116042 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116043 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117717 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117718 | .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b00_00_00_00), ._ }, |
| 117719 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 117720 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117721 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116044 | 117722 | } }, |
| 116045 | 117723 | }, .{ |
| 116046 | | .required_features = .{ .sse, null, null, null }, |
| 116047 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 116048 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117724 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .dword, .is = .dword } }, .any }, |
| 117725 | .src_constraints = .{ .{ .int_or_float = .dword }, .any, .any }, |
| 116049 | 117726 | .patterns = &.{ |
| 116050 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117727 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116051 | 117728 | }, |
| 116052 | | .call_frame = .{ .alignment = .@"16" }, |
| 116053 | 117729 | .extra_temps = .{ |
| 116054 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116055 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116056 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116057 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117730 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117731 | .unused, |
| 117732 | .unused, |
| 117733 | .unused, |
| 116058 | 117734 | .unused, |
| 116059 | 117735 | .unused, |
| 116060 | 117736 | .unused, |
| ... | ... | @@ -116064,28 +117740,152 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116064 | 117740 | .unused, |
| 116065 | 117741 | }, |
| 116066 | 117742 | .dst_temps = .{ .mem, .unused }, |
| 116067 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116068 | 117743 | .each = .{ .once = &.{ |
| 116069 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116070 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116071 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116072 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116073 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116074 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117744 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 117745 | .{ .@"0:", ._, .mov, .memi(.dst0d, .tmp0), .src0d, ._, ._ }, |
| 117746 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 117747 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 117748 | } }, |
| 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 | 117774 | .required_features = .{ .avx, null, null, null }, |
| 116078 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116079 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117775 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 117776 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116080 | 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 | 117884 | .extra_temps = .{ |
| 116085 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116086 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116087 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 116088 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117885 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117886 | .{ .type = .vector_4_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117887 | .unused, |
| 117888 | .unused, |
| 116089 | 117889 | .unused, |
| 116090 | 117890 | .unused, |
| 116091 | 117891 | .unused, |
| ... | ... | @@ -116095,28 +117895,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116095 | 117895 | .unused, |
| 116096 | 117896 | }, |
| 116097 | 117897 | .dst_temps = .{ .mem, .unused }, |
| 116098 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116099 | 117898 | .each = .{ .once = &.{ |
| 116100 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116101 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116102 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116103 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116104 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116105 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117899 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 117900 | .{ ._, .vp_q, .broadcast, .tmp1y, .src0q, ._, ._ }, |
| 117901 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 117902 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 117903 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116106 | 117904 | } }, |
| 116107 | 117905 | }, .{ |
| 116108 | | .required_features = .{ .sse2, null, null, null }, |
| 116109 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116110 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117906 | .required_features = .{ .avx2, null, null, null }, |
| 117907 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, .any }, |
| 117908 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116111 | 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 | 117913 | .extra_temps = .{ |
| 116116 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116117 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116118 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 116119 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117914 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117915 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117916 | .unused, |
| 117917 | .unused, |
| 116120 | 117918 | .unused, |
| 116121 | 117919 | .unused, |
| 116122 | 117920 | .unused, |
| ... | ... | @@ -116126,28 +117924,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116126 | 117924 | .unused, |
| 116127 | 117925 | }, |
| 116128 | 117926 | .dst_temps = .{ .mem, .unused }, |
| 116129 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116130 | 117927 | .each = .{ .once = &.{ |
| 116131 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116132 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116133 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116134 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116135 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116136 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117928 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 117929 | .{ ._, .v_sd, .broadcast, .tmp1y, .src0q, ._, ._ }, |
| 117930 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 117931 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 117932 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116137 | 117933 | } }, |
| 116138 | 117934 | }, .{ |
| 116139 | | .required_features = .{ .sse, null, null, null }, |
| 116140 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116141 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117935 | .required_features = .{ .avx, null, null, null }, |
| 117936 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 117937 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116142 | 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 | 117942 | .extra_temps = .{ |
| 116147 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116148 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116149 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatsitf" } } }, |
| 116150 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117943 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117944 | .{ .type = .vector_2_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117945 | .unused, |
| 117946 | .unused, |
| 116151 | 117947 | .unused, |
| 116152 | 117948 | .unused, |
| 116153 | 117949 | .unused, |
| ... | ... | @@ -116157,28 +117953,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116157 | 117953 | .unused, |
| 116158 | 117954 | }, |
| 116159 | 117955 | .dst_temps = .{ .mem, .unused }, |
| 116160 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116161 | 117956 | .each = .{ .once = &.{ |
| 116162 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116163 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116164 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116165 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116166 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116167 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117957 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117958 | .{ ._, .v_, .movddup, .tmp1x, .src0q, ._, ._ }, |
| 117959 | .{ .@"0:", .v_pd, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 117960 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117961 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116168 | 117962 | } }, |
| 116169 | 117963 | }, .{ |
| 116170 | | .required_features = .{ .avx, null, null, null }, |
| 116171 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116172 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117964 | .required_features = .{ .sse3, null, null, null }, |
| 117965 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 117966 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116173 | 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 | 117971 | .extra_temps = .{ |
| 116178 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116179 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116180 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116181 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 117972 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117973 | .{ .type = .vector_2_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 117974 | .unused, |
| 117975 | .unused, |
| 116182 | 117976 | .unused, |
| 116183 | 117977 | .unused, |
| 116184 | 117978 | .unused, |
| ... | ... | @@ -116188,28 +117982,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116188 | 117982 | .unused, |
| 116189 | 117983 | }, |
| 116190 | 117984 | .dst_temps = .{ .mem, .unused }, |
| 116191 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116192 | 117985 | .each = .{ .once = &.{ |
| 116193 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116194 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116195 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116196 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116197 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116198 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117986 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 117987 | .{ ._, ._, .movddup, .tmp1x, .src0q, ._, ._ }, |
| 117988 | .{ .@"0:", ._pd, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 117989 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 117990 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116199 | 117991 | } }, |
| 116200 | 117992 | }, .{ |
| 116201 | 117993 | .required_features = .{ .sse2, null, null, null }, |
| 116202 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116203 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117994 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }, .any }, |
| 117995 | .src_constraints = .{ .{ .int = .qword }, .any, .any }, |
| 116204 | 117996 | .patterns = &.{ |
| 116205 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 117997 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116206 | 117998 | }, |
| 116207 | | .call_frame = .{ .alignment = .@"16" }, |
| 116208 | 117999 | .extra_temps = .{ |
| 116209 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116210 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116211 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116212 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118000 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118001 | .{ .type = .vector_2_u64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 118002 | .unused, |
| 118003 | .unused, |
| 116213 | 118004 | .unused, |
| 116214 | 118005 | .unused, |
| 116215 | 118006 | .unused, |
| ... | ... | @@ -116219,28 +118010,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116219 | 118010 | .unused, |
| 116220 | 118011 | }, |
| 116221 | 118012 | .dst_temps = .{ .mem, .unused }, |
| 116222 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116223 | 118013 | .each = .{ .once = &.{ |
| 116224 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116225 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116226 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116227 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116228 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116229 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118014 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118015 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b01_00_01_00), ._ }, |
| 118016 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 118017 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118018 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116230 | 118019 | } }, |
| 116231 | 118020 | }, .{ |
| 116232 | | .required_features = .{ .sse, null, null, null }, |
| 116233 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116234 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118021 | .required_features = .{ .sse2, null, null, null }, |
| 118022 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 118023 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116235 | 118024 | .patterns = &.{ |
| 116236 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118025 | .{ .src = .{ .mut_sse, .none, .none } }, |
| 116237 | 118026 | }, |
| 116238 | | .call_frame = .{ .alignment = .@"16" }, |
| 116239 | 118027 | .extra_temps = .{ |
| 116240 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116241 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116242 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunsitf" } } }, |
| 116243 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118028 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118029 | .unused, |
| 118030 | .unused, |
| 118031 | .unused, |
| 116244 | 118032 | .unused, |
| 116245 | 118033 | .unused, |
| 116246 | 118034 | .unused, |
| ... | ... | @@ -116250,28 +118038,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116250 | 118038 | .unused, |
| 116251 | 118039 | }, |
| 116252 | 118040 | .dst_temps = .{ .mem, .unused }, |
| 116253 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116254 | 118041 | .each = .{ .once = &.{ |
| 116255 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116256 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116257 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116258 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116259 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116260 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118042 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118043 | .{ ._, ._pd, .shuf, .src0x, .src0x, .ui(0b0_0), ._ }, |
| 118044 | .{ .@"0:", ._pd, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 118045 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118046 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116261 | 118047 | } }, |
| 116262 | 118048 | }, .{ |
| 116263 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116264 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116265 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118049 | .required_features = .{ .sse2, null, null, null }, |
| 118050 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 118051 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116266 | 118052 | .patterns = &.{ |
| 116267 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118053 | .{ .src = .{ .sse, .none, .none } }, |
| 116268 | 118054 | }, |
| 116269 | | .call_frame = .{ .alignment = .@"16" }, |
| 116270 | 118055 | .extra_temps = .{ |
| 116271 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116272 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116273 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 116274 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118056 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118057 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| 118058 | .unused, |
| 118059 | .unused, |
| 116275 | 118060 | .unused, |
| 116276 | 118061 | .unused, |
| 116277 | 118062 | .unused, |
| ... | ... | @@ -116281,28 +118066,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116281 | 118066 | .unused, |
| 116282 | 118067 | }, |
| 116283 | 118068 | .dst_temps = .{ .mem, .unused }, |
| 116284 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116285 | 118069 | .each = .{ .once = &.{ |
| 116286 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116287 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116288 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116289 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116290 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116291 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118070 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118071 | .{ ._, .p_d, .shuf, .tmp1x, .src0x, .ui(0b01_00_01_00), ._ }, |
| 118072 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 118073 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118074 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116292 | 118075 | } }, |
| 116293 | 118076 | }, .{ |
| 116294 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116295 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116296 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118077 | .required_features = .{ .sse2, null, null, null }, |
| 118078 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any }, |
| 118079 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 116297 | 118080 | .patterns = &.{ |
| 116298 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118081 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 116299 | 118082 | }, |
| 116300 | | .call_frame = .{ .alignment = .@"16" }, |
| 116301 | 118083 | .extra_temps = .{ |
| 116302 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116303 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116304 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 116305 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118084 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118085 | .unused, |
| 118086 | .unused, |
| 118087 | .unused, |
| 116306 | 118088 | .unused, |
| 116307 | 118089 | .unused, |
| 116308 | 118090 | .unused, |
| ... | ... | @@ -116312,28 +118094,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116312 | 118094 | .unused, |
| 116313 | 118095 | }, |
| 116314 | 118096 | .dst_temps = .{ .mem, .unused }, |
| 116315 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116316 | 118097 | .each = .{ .once = &.{ |
| 116317 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116318 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116319 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116320 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116321 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116322 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118098 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118099 | .{ ._, ._pd, .shuf, .src0x, .src0x, .ui(0b0_0), ._ }, |
| 118100 | .{ .@"0:", ._pd, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 118101 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118102 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116323 | 118103 | } }, |
| 116324 | 118104 | }, .{ |
| 116325 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116326 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116327 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118105 | .required_features = .{ .sse, null, null, null }, |
| 118106 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .qword } }, .any }, |
| 118107 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116328 | 118108 | .patterns = &.{ |
| 116329 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118109 | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 116330 | 118110 | }, |
| 116331 | | .call_frame = .{ .alignment = .@"16" }, |
| 116332 | 118111 | .extra_temps = .{ |
| 116333 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116334 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116335 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatditf" } } }, |
| 116336 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118112 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118113 | .unused, |
| 118114 | .unused, |
| 118115 | .unused, |
| 116337 | 118116 | .unused, |
| 116338 | 118117 | .unused, |
| 116339 | 118118 | .unused, |
| ... | ... | @@ -116343,28 +118122,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116343 | 118122 | .unused, |
| 116344 | 118123 | }, |
| 116345 | 118124 | .dst_temps = .{ .mem, .unused }, |
| 116346 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116347 | 118125 | .each = .{ .once = &.{ |
| 116348 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116349 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116350 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116351 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116352 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116353 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118126 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118127 | .{ ._, ._ps, .shuf, .src0x, .src0x, .ui(0b01_00_01_00), ._ }, |
| 118128 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 118129 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118130 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116354 | 118131 | } }, |
| 116355 | 118132 | }, .{ |
| 116356 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116357 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116358 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118133 | .required_features = .{ .@"64bit", null, null, null }, |
| 118134 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .qword, .is = .qword } }, .any }, |
| 118135 | .src_constraints = .{ .{ .int_or_float = .qword }, .any, .any }, |
| 116359 | 118136 | .patterns = &.{ |
| 116360 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118137 | .{ .src = .{ .to_gpr, .none, .none } }, |
| 116361 | 118138 | }, |
| 116362 | | .call_frame = .{ .alignment = .@"16" }, |
| 116363 | 118139 | .extra_temps = .{ |
| 116364 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116365 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116366 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 116367 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118140 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118141 | .unused, |
| 118142 | .unused, |
| 118143 | .unused, |
| 116368 | 118144 | .unused, |
| 116369 | 118145 | .unused, |
| 116370 | 118146 | .unused, |
| ... | ... | @@ -116374,28 +118150,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116374 | 118150 | .unused, |
| 116375 | 118151 | }, |
| 116376 | 118152 | .dst_temps = .{ .mem, .unused }, |
| 116377 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116378 | 118153 | .each = .{ .once = &.{ |
| 116379 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116380 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116381 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116382 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116383 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116384 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118154 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 118155 | .{ .@"0:", ._, .mov, .memi(.dst0q, .tmp0), .src0q, ._, ._ }, |
| 118156 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 118157 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116385 | 118158 | } }, |
| 116386 | 118159 | }, .{ |
| 116387 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116388 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116389 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118160 | .required_features = .{ .sse, null, null, null }, |
| 118161 | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 118162 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116390 | 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 | 118220 | .extra_temps = .{ |
| 116395 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116396 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116397 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 116398 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118221 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118222 | .{ .type = .vector_2_u128, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 118223 | .unused, |
| 118224 | .unused, |
| 116399 | 118225 | .unused, |
| 116400 | 118226 | .unused, |
| 116401 | 118227 | .unused, |
| ... | ... | @@ -116405,28 +118231,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116405 | 118231 | .unused, |
| 116406 | 118232 | }, |
| 116407 | 118233 | .dst_temps = .{ .mem, .unused }, |
| 116408 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116409 | 118234 | .each = .{ .once = &.{ |
| 116410 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116411 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116412 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116413 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116414 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116415 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118235 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 118236 | .{ ._, .v_i128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 118237 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 118238 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 118239 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116416 | 118240 | } }, |
| 116417 | 118241 | }, .{ |
| 116418 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116419 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116420 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118242 | .required_features = .{ .avx2, null, null, null }, |
| 118243 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| 118244 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116421 | 118245 | .patterns = &.{ |
| 116422 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118246 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116423 | 118247 | }, |
| 116424 | | .call_frame = .{ .alignment = .@"16" }, |
| 116425 | 118248 | .extra_temps = .{ |
| 116426 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116427 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116428 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatunditf" } } }, |
| 116429 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118249 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118250 | .{ .type = .vector_2_u128, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 118251 | .unused, |
| 118252 | .unused, |
| 116430 | 118253 | .unused, |
| 116431 | 118254 | .unused, |
| 116432 | 118255 | .unused, |
| ... | ... | @@ -116436,29 +118259,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116436 | 118259 | .unused, |
| 116437 | 118260 | }, |
| 116438 | 118261 | .dst_temps = .{ .mem, .unused }, |
| 116439 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116440 | 118262 | .each = .{ .once = &.{ |
| 116441 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116442 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116443 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116444 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 116445 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116446 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118263 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 118264 | .{ ._, .v_i128, .insert, .tmp1y, .src0y, .src0x, .ui(1) }, |
| 118265 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 118266 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 118267 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116447 | 118268 | } }, |
| 116448 | 118269 | }, .{ |
| 116449 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116450 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116451 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118270 | .required_features = .{ .avx, null, null, null }, |
| 118271 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| 118272 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116452 | 118273 | .patterns = &.{ |
| 116453 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118274 | .{ .src = .{ .mem, .none, .none } }, |
| 116454 | 118275 | }, |
| 116455 | | .call_frame = .{ .alignment = .@"16" }, |
| 116456 | 118276 | .extra_temps = .{ |
| 116457 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116458 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116459 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116460 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 116461 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118277 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118278 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 118279 | .unused, |
| 118280 | .unused, |
| 118281 | .unused, |
| 116462 | 118282 | .unused, |
| 116463 | 118283 | .unused, |
| 116464 | 118284 | .unused, |
| ... | ... | @@ -116467,30 +118287,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116467 | 118287 | .unused, |
| 116468 | 118288 | }, |
| 116469 | 118289 | .dst_temps = .{ .mem, .unused }, |
| 116470 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116471 | 118290 | .each = .{ .once = &.{ |
| 116472 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116473 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116474 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116475 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116476 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116477 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116478 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118291 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 118292 | .{ ._, .v_f128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 118293 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 118294 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 118295 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116479 | 118296 | } }, |
| 116480 | 118297 | }, .{ |
| 116481 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116482 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116483 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118298 | .required_features = .{ .avx, null, null, null }, |
| 118299 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| 118300 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116484 | 118301 | .patterns = &.{ |
| 116485 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118302 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116486 | 118303 | }, |
| 116487 | | .call_frame = .{ .alignment = .@"16" }, |
| 116488 | 118304 | .extra_temps = .{ |
| 116489 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116490 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116491 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116492 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 116493 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118305 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118306 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 118307 | .unused, |
| 118308 | .unused, |
| 118309 | .unused, |
| 116494 | 118310 | .unused, |
| 116495 | 118311 | .unused, |
| 116496 | 118312 | .unused, |
| ... | ... | @@ -116499,30 +118315,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116499 | 118315 | .unused, |
| 116500 | 118316 | }, |
| 116501 | 118317 | .dst_temps = .{ .mem, .unused }, |
| 116502 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116503 | 118318 | .each = .{ .once = &.{ |
| 116504 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116505 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116506 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116507 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116508 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116509 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116510 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118319 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 118320 | .{ ._, .v_f128, .insert, .tmp1y, .src0y, .src0x, .ui(1) }, |
| 118321 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 118322 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 118323 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116511 | 118324 | } }, |
| 116512 | 118325 | }, .{ |
| 116513 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116514 | | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116515 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118326 | .required_features = .{ .avx, null, null, null }, |
| 118327 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 118328 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116516 | 118329 | .patterns = &.{ |
| 116517 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118330 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116518 | 118331 | }, |
| 116519 | | .call_frame = .{ .alignment = .@"16" }, |
| 116520 | 118332 | .extra_temps = .{ |
| 116521 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116522 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116523 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116524 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floattitf" } } }, |
| 116525 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118333 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118334 | .unused, |
| 118335 | .unused, |
| 118336 | .unused, |
| 118337 | .unused, |
| 116526 | 118338 | .unused, |
| 116527 | 118339 | .unused, |
| 116528 | 118340 | .unused, |
| ... | ... | @@ -116531,30 +118343,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116531 | 118343 | .unused, |
| 116532 | 118344 | }, |
| 116533 | 118345 | .dst_temps = .{ .mem, .unused }, |
| 116534 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116535 | 118346 | .each = .{ .once = &.{ |
| 116536 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116537 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116538 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116539 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116540 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116541 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116542 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118347 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118348 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 118349 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118350 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116543 | 118351 | } }, |
| 116544 | 118352 | }, .{ |
| 116545 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116546 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116547 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118353 | .required_features = .{ .sse2, null, null, null }, |
| 118354 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 118355 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116548 | 118356 | .patterns = &.{ |
| 116549 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118357 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116550 | 118358 | }, |
| 116551 | | .call_frame = .{ .alignment = .@"16" }, |
| 116552 | 118359 | .extra_temps = .{ |
| 116553 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116554 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116555 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 116556 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 116557 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118360 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118361 | .unused, |
| 118362 | .unused, |
| 118363 | .unused, |
| 118364 | .unused, |
| 116558 | 118365 | .unused, |
| 116559 | 118366 | .unused, |
| 116560 | 118367 | .unused, |
| ... | ... | @@ -116563,30 +118370,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116563 | 118370 | .unused, |
| 116564 | 118371 | }, |
| 116565 | 118372 | .dst_temps = .{ .mem, .unused }, |
| 116566 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116567 | 118373 | .each = .{ .once = &.{ |
| 116568 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116569 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116570 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116571 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116572 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116573 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116574 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118374 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118375 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 118376 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118377 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116575 | 118378 | } }, |
| 116576 | 118379 | }, .{ |
| 116577 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116578 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116579 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118380 | .required_features = .{ .sse, null, null, null }, |
| 118381 | .dst_constraints = .{ .{ .multiple_scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 118382 | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 116580 | 118383 | .patterns = &.{ |
| 116581 | | .{ .src = .{ .to_mem, .none, .none } }, |
| 118384 | .{ .src = .{ .to_sse, .none, .none } }, |
| 116582 | 118385 | }, |
| 116583 | | .call_frame = .{ .alignment = .@"16" }, |
| 116584 | 118386 | .extra_temps = .{ |
| 116585 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116586 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116587 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 116588 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 116589 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118387 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118388 | .unused, |
| 118389 | .unused, |
| 118390 | .unused, |
| 118391 | .unused, |
| 116590 | 118392 | .unused, |
| 116591 | 118393 | .unused, |
| 116592 | 118394 | .unused, |
| ... | ... | @@ -116595,30 +118397,79 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116595 | 118397 | .unused, |
| 116596 | 118398 | }, |
| 116597 | 118399 | .dst_temps = .{ .mem, .unused }, |
| 116598 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116599 | 118400 | .each = .{ .once = &.{ |
| 116600 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116601 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116602 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116603 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116604 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116605 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116606 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118401 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118402 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .src0x, ._, ._ }, |
| 118403 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118404 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116607 | 118405 | } }, |
| 116608 | 118406 | }, .{ |
| 116609 | 118407 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116610 | | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116611 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118408 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .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 | 118464 | .patterns = &.{ |
| 116613 | 118465 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116614 | 118466 | }, |
| 116615 | | .call_frame = .{ .alignment = .@"16" }, |
| 116616 | 118467 | .extra_temps = .{ |
| 116617 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116618 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116619 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 116620 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuntitf" } } }, |
| 116621 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118468 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118469 | .{ .type = .vector_2_u128, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 118470 | .unused, |
| 118471 | .unused, |
| 118472 | .unused, |
| 116622 | 118473 | .unused, |
| 116623 | 118474 | .unused, |
| 116624 | 118475 | .unused, |
| ... | ... | @@ -116627,31 +118478,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116627 | 118478 | .unused, |
| 116628 | 118479 | }, |
| 116629 | 118480 | .dst_temps = .{ .mem, .unused }, |
| 116630 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116631 | 118481 | .each = .{ .once = &.{ |
| 116632 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116633 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116634 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116635 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116636 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 116637 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116638 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118482 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 118483 | .{ ._, .v_i128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 118484 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 118485 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 118486 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116639 | 118487 | } }, |
| 116640 | 118488 | }, .{ |
| 116641 | 118489 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116642 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116643 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118490 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| 118491 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116644 | 118492 | .patterns = &.{ |
| 116645 | 118493 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116646 | 118494 | }, |
| 116647 | | .call_frame = .{ .alignment = .@"16" }, |
| 116648 | 118495 | .extra_temps = .{ |
| 116649 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116650 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116651 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116652 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116653 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 116654 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118496 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118497 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, |
| 118498 | .unused, |
| 118499 | .unused, |
| 118500 | .unused, |
| 118501 | .unused, |
| 116655 | 118502 | .unused, |
| 116656 | 118503 | .unused, |
| 116657 | 118504 | .unused, |
| ... | ... | @@ -116659,33 +118506,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116659 | 118506 | .unused, |
| 116660 | 118507 | }, |
| 116661 | 118508 | .dst_temps = .{ .mem, .unused }, |
| 116662 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116663 | 118509 | .each = .{ .once = &.{ |
| 116664 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116665 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116666 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116667 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116668 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 118510 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .dst0, .add_size), ._, ._ }, |
| 118511 | .{ ._, .v_f128, .broadcast, .tmp1y, .src0x, ._, ._ }, |
| 118512 | .{ .@"0:", .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 118513 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 118514 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116673 | 118515 | } }, |
| 116674 | 118516 | }, .{ |
| 116675 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116676 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116677 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118517 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 118518 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 118519 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116678 | 118520 | .patterns = &.{ |
| 116679 | 118521 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116680 | 118522 | }, |
| 116681 | | .call_frame = .{ .alignment = .@"16" }, |
| 116682 | 118523 | .extra_temps = .{ |
| 116683 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116684 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116685 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116686 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116687 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 116688 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118524 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118525 | .{ .type = .f80, .kind = .{ .rc = .sse } }, |
| 118526 | .unused, |
| 118527 | .unused, |
| 118528 | .unused, |
| 118529 | .unused, |
| 116689 | 118530 | .unused, |
| 116690 | 118531 | .unused, |
| 116691 | 118532 | .unused, |
| ... | ... | @@ -116693,33 +118534,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116693 | 118534 | .unused, |
| 116694 | 118535 | }, |
| 116695 | 118536 | .dst_temps = .{ .mem, .unused }, |
| 116696 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116697 | 118537 | .each = .{ .once = &.{ |
| 116698 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116699 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116700 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116701 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116702 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 118538 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118539 | .{ ._, .v_dqa, .mov, .tmp1x, .mem(.src0x), ._, ._ }, |
| 118540 | .{ .@"0:", .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 118541 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118542 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116707 | 118543 | } }, |
| 116708 | 118544 | }, .{ |
| 116709 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116710 | | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116711 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118545 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 118546 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 118547 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116712 | 118548 | .patterns = &.{ |
| 116713 | 118549 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116714 | 118550 | }, |
| 116715 | | .call_frame = .{ .alignment = .@"16" }, |
| 116716 | 118551 | .extra_temps = .{ |
| 116717 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116718 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116719 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116720 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116721 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floateitf" } } }, |
| 116722 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118552 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118553 | .{ .type = .f80, .kind = .{ .rc = .sse } }, |
| 118554 | .unused, |
| 118555 | .unused, |
| 118556 | .unused, |
| 118557 | .unused, |
| 116723 | 118558 | .unused, |
| 116724 | 118559 | .unused, |
| 116725 | 118560 | .unused, |
| ... | ... | @@ -116727,33 +118562,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116727 | 118562 | .unused, |
| 116728 | 118563 | }, |
| 116729 | 118564 | .dst_temps = .{ .mem, .unused }, |
| 116730 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116731 | 118565 | .each = .{ .once = &.{ |
| 116732 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116733 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116734 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116735 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116736 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 118566 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118567 | .{ ._, ._dqa, .mov, .tmp1x, .mem(.src0x), ._, ._ }, |
| 118568 | .{ .@"0:", ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 118569 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118570 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116741 | 118571 | } }, |
| 116742 | 118572 | }, .{ |
| 116743 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116744 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116745 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118573 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 118574 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 118575 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 116746 | 118576 | .patterns = &.{ |
| 116747 | 118577 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116748 | 118578 | }, |
| 116749 | | .call_frame = .{ .alignment = .@"16" }, |
| 116750 | 118579 | .extra_temps = .{ |
| 116751 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116752 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116753 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116754 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116755 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 116756 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118580 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118581 | .{ .type = .f80, .kind = .{ .rc = .sse } }, |
| 118582 | .unused, |
| 118583 | .unused, |
| 118584 | .unused, |
| 118585 | .unused, |
| 116757 | 118586 | .unused, |
| 116758 | 118587 | .unused, |
| 116759 | 118588 | .unused, |
| ... | ... | @@ -116761,33 +118590,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116761 | 118590 | .unused, |
| 116762 | 118591 | }, |
| 116763 | 118592 | .dst_temps = .{ .mem, .unused }, |
| 116764 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116765 | 118593 | .each = .{ .once = &.{ |
| 116766 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116767 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116768 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116769 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116770 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 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", ._, ._, ._ }, |
| 118594 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 118595 | .{ ._, ._ps, .mova, .tmp1x, .mem(.src0x), ._, ._ }, |
| 118596 | .{ .@"0:", ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 118597 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118598 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 116775 | 118599 | } }, |
| 116776 | 118600 | }, .{ |
| 116777 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 116778 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116779 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118601 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 118602 | .dst_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 118603 | .src_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116780 | 118604 | .patterns = &.{ |
| 116781 | 118605 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116782 | 118606 | }, |
| 116783 | | .call_frame = .{ .alignment = .@"16" }, |
| 116784 | 118607 | .extra_temps = .{ |
| 116785 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116786 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118608 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116787 | 118609 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116788 | 118610 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116789 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 116790 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118611 | .{ .type = .usize, .kind = .{ .reg = .rcx } }, |
| 118612 | .unused, |
| 118613 | .unused, |
| 116791 | 118614 | .unused, |
| 116792 | 118615 | .unused, |
| 116793 | 118616 | .unused, |
| ... | ... | @@ -116795,33 +118618,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116795 | 118618 | .unused, |
| 116796 | 118619 | }, |
| 116797 | 118620 | .dst_temps = .{ .mem, .unused }, |
| 116798 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116799 | 118621 | .each = .{ .once = &.{ |
| 116800 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116801 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116802 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116803 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116804 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 116805 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 116806 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 116807 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 116808 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118622 | .{ ._, ._, .mov, .tmp0d, .sa(.dst0, .add_len), ._, ._ }, |
| 118623 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 118624 | .{ .@"0:", ._, .lea, .tmp2q, .mem(.src0), ._, ._ }, |
| 118625 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_size_div_8), ._, ._ }, |
| 118626 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 118627 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 118628 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 116809 | 118629 | } }, |
| 116810 | 118630 | }, .{ |
| 116811 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116812 | | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116813 | | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 118631 | .required_features = .{ .@"64bit", null, null, null }, |
| 118632 | .dst_constraints = .{ .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 118633 | .src_constraints = .{ .{ .remainder_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116814 | 118634 | .patterns = &.{ |
| 116815 | 118635 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116816 | 118636 | }, |
| 116817 | | .call_frame = .{ .alignment = .@"16" }, |
| 116818 | 118637 | .extra_temps = .{ |
| 116819 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116820 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118638 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116821 | 118639 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116822 | 118640 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116823 | | .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__floatuneitf" } } }, |
| 116824 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 118641 | .{ .type = .usize, .kind = .{ .reg = .rcx } }, |
| 118642 | .unused, |
| 118643 | .unused, |
| 116825 | 118644 | .unused, |
| 116826 | 118645 | .unused, |
| 116827 | 118646 | .unused, |
| ... | ... | @@ -116829,23 +118648,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116829 | 118648 | .unused, |
| 116830 | 118649 | }, |
| 116831 | 118650 | .dst_temps = .{ .mem, .unused }, |
| 116832 | | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116833 | 118651 | .each = .{ .once = &.{ |
| 116834 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116835 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116836 | | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116837 | | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116838 | | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 116839 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 116840 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 116841 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 116842 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118652 | .{ ._, ._, .mov, .tmp0d, .sa(.dst0, .add_len), ._, ._ }, |
| 118653 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| 118654 | .{ .@"0:", ._, .lea, .tmp2q, .mem(.src0), ._, ._ }, |
| 118655 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_size_div_8), ._, ._ }, |
| 118656 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 118657 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 118658 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 116843 | 118659 | } }, |
| 116844 | 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 | 118662 | @tagName(air_tag), |
| 116847 | 118663 | ty_op.ty.toType().fmt(pt), |
| 116848 | | cg.typeOf(ty_op.operand).fmt(pt), |
| 116849 | 118664 | ops[0].tracking(cg), |
| 116850 | 118665 | }), |
| 116851 | 118666 | else => |e| return e, |
| ... | ... | @@ -143084,16 +144899,17 @@ const Select = struct { |
| 143084 | 144899 | any_float, |
| 143085 | 144900 | po2_any, |
| 143086 | 144901 | bool_vec: Memory.Size, |
| 143087 | | vec: Memory.Size, |
| 143088 | 144902 | signed_int_vec: Memory.Size, |
| 143089 | 144903 | signed_int_or_full_vec: Memory.Size, |
| 143090 | 144904 | unsigned_int_vec: Memory.Size, |
| 143091 | 144905 | size: Memory.Size, |
| 143092 | 144906 | multiple_size: Memory.Size, |
| 143093 | 144907 | int: Memory.Size, |
| 144908 | int_or_float: Memory.Size, |
| 143094 | 144909 | scalar_int_is: Memory.Size, |
| 143095 | 144910 | scalar_signed_int_is: Memory.Size, |
| 143096 | 144911 | scalar_unsigned_int_is: Memory.Size, |
| 144912 | scalar: OfIsSizes, |
| 143097 | 144913 | scalar_int: OfIsSizes, |
| 143098 | 144914 | scalar_signed_int: OfIsSizes, |
| 143099 | 144915 | scalar_unsigned_int: OfIsSizes, |
| ... | ... | @@ -143101,6 +144917,7 @@ const Select = struct { |
| 143101 | 144917 | scalar_exact_int: struct { of: Memory.Size, is: u16 }, |
| 143102 | 144918 | scalar_exact_signed_int: struct { of: Memory.Size, is: u16 }, |
| 143103 | 144919 | scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 }, |
| 144920 | multiple_scalar: OfIsSizes, |
| 143104 | 144921 | multiple_scalar_int: OfIsSizes, |
| 143105 | 144922 | multiple_scalar_signed_int: OfIsSizes, |
| 143106 | 144923 | multiple_scalar_unsigned_int: OfIsSizes, |
| ... | ... | @@ -143159,8 +144976,6 @@ const Select = struct { |
| 143159 | 144976 | .po2_any => std.math.isPowerOfTwo(ty.abiSize(zcu)), |
| 143160 | 144977 | .bool_vec => |size| ty.isVector(zcu) and ty.scalarType(zcu).toIntern() == .bool_type and |
| 143161 | 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 | 144979 | .signed_int_vec => |size| ty.isVector(zcu) and @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and |
| 143165 | 144980 | if (cg.intInfo(ty.childType(zcu))) |int_info| int_info.signedness == .signed else false, |
| 143166 | 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 | 144988 | .size => |size| @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu), |
| 143174 | 144989 | .multiple_size => |size| ty.abiSize(zcu) % @divExact(size.bitSize(cg.target), 8) == 0, |
| 143175 | 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 | 144997 | .scalar_int_is => |size| if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| 143177 | 144998 | size.bitSize(cg.target) >= int_info.bits |
| 143178 | 144999 | else |
| ... | ... | @@ -143185,6 +145006,13 @@ const Select = struct { |
| 143185 | 145006 | .signed => false, |
| 143186 | 145007 | .unsigned => size.bitSize(cg.target) >= int_info.bits, |
| 143187 | 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 | 145016 | .scalar_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and |
| 143189 | 145017 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false, |
| 143190 | 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 | 145034 | .scalar_exact_unsigned_int => |of_is| @divExact(of_is.of.bitSize(cg.target), 8) >= cg.unalignedSize(ty) and |
| 143207 | 145035 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| 143208 | 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 | 145044 | .multiple_scalar_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 143210 | 145045 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is.bitSize(cg.target) >= int_info.bits else false, |
| 143211 | 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 | 145392 | f64_0x1p52_0x1p84_mem, |
| 143558 | 145393 | u32_0x1p52_hi_0x1p84_hi_0_0_mem, |
| 143559 | 145394 | f32_0_0x1p64_mem, |
| 145395 | pshufb_splat_mem: struct { of: Memory.Size = .none, size: Memory.Size }, |
| 143560 | 145396 | pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size }, |
| 143561 | 145397 | pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size }, |
| 143562 | 145398 | pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 }, |
| ... | ... | @@ -143809,6 +145645,26 @@ const Select = struct { |
| 143809 | 145645 | (try pt.floatValue(.f32, @as(f32, 0x1p64))).toIntern(), |
| 143810 | 145646 | } }, |
| 143811 | 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 | 145668 | .pshufb_trunc_mem => |trunc_spec| { |
| 143813 | 145669 | const zcu = pt.zcu; |
| 143814 | 145670 | assert(spec.type.isVector(zcu)); |